069f8ac8beec325d3776ed1c0d98f356d48c2c78
[it/otf.git] / otf-service-api / helm / otf-service-api / templates / deployment.yaml
1 apiVersion: extensions/v1beta1\r
2 kind: Deployment\r
3 metadata:\r
4   name: {{ .Values.appName}}\r
5   namespace: {{.Values.namespace}}\r
6   labels:\r
7     app: {{ .Values.appName}}\r
8     version: {{.Values.version}}\r
9 spec:\r
10   revisionHistoryLimit: 1   # keep one replica set to allow rollback\r
11   minReadySeconds: 10\r
12   # strategy:\r
13   #   # indicate which strategy we want for rolling update\r
14   #   type: RollingUpdate\r
15   #   rollingUpdate:\r
16   #     maxSurge: 1\r
17   #     maxUnavailable: 1\r
18   {{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
19   replicas: {{ .Values.replicas.prod}}\r
20   {{ else if  eq .Values.env "st"}}\r
21   replicas: {{ .Values.replicas.st}}\r
22   {{ else }}\r
23   replicas: {{ .Values.replicas.dev}}\r
24   {{ end }}\r
25   selector:\r
26     matchLabels:\r
27       app: {{ .Values.appName}}\r
28       version: {{.Values.version}}\r
29   template:\r
30     metadata:\r
31       labels:\r
32         app: {{ .Values.appName}}\r
33         version: {{.Values.version}}\r
34     spec:\r
35       # revisionHistoryLimit: 1   # keep one replica set to allow rollback\r
36       # minReadySeconds: 10\r
37       # strategy:\r
38       #   # indicate which strategy we want for rolling update\r
39       #   type: RollingUpdate\r
40       #   rollingUpdate:\r
41       #     maxSurge: 1\r
42       #     maxUnavailable: 1\r
43       {{ if .Values.pullSecret }}\r
44       imagePullSecrets:\r
45         - name: {{ .Values.pullSecret }}\r
46       {{ end }}\r
47       serviceAccount: default\r
48       volumes:\r
49 #      - name: {{ .Values.appName}}-aaf-volume\r
50 #        secret:\r
51 #          secretName: {{.Values.sharedSecret}}\r
52       - name: {{ .Values.appName}}-keyfile-volume\r
53         secret:\r
54           secretName: {{.Values.sharedSecret}}\r
55           optional: true\r
56           items:\r
57           - key: cadi_keyfile\r
58             path: keyfile\r
59       - name: {{ .Values.appName}}-cert-volume\r
60         secret:\r
61           secretName: {{.Values.sharedCert}}\r
62           optional: true\r
63           items:\r
64           - key: PKCS12_CERT\r
65             {{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
66             path: {{ .Values.cert.prod.name | quote }}\r
67             {{ else if eq  .Values.env "st" }}\r
68             path: {{ .Values.cert.st.name | quote }}\r
69             {{ else }}\r
70             path: {{ .Values.cert.dev.name | quote }}\r
71             {{ end }}          \r
72       {{ if or (eq .Values.env "st") (eq .Values.env "prod-dr")}}\r
73       {{else}}\r
74 #      - name: logging-pvc\r
75 #        persistentVolumeClaim:\r
76 #          {{if eq .Values.env "prod"}}\r
77 #          claimName: {{ .Values.pvc.prod | quote }}\r
78 #          {{ else }}\r
79 #          claimName: {{ .Values.pvc.dev | quote }}\r
80 #          {{ end }}\r
81       {{end}}\r
82       containers:\r
83       - name: {{ .Values.appName}}\r
84         image: {{ .Values.image}}\r
85         imagePullPolicy: Always\r
86         ports:\r
87         - name: https\r
88           containerPort: 8443\r
89           # nodePort: {{.Values.nodePort}}\r
90           protocol: TCP\r
91        # {{ if eq .Values.env "st"}}\r
92        # resources:\r
93        #   limits: \r
94        #     memory: "3Gi"\r
95        #     cpu: "1.8"\r
96        #   requests:\r
97        #     memory: "2Gi"\r
98        #     cpu: "1"\r
99        # {{else}}  \r
100        # resources:\r
101        #   limits:\r
102        #     memory: "6Gi"\r
103        #     cpu: "4"\r
104        #   requests:\r
105        #     memory: "2Gi"\r
106        #     cpu: "1.5"\r
107        # {{ end }}\r
108         env:\r
109         - name: NAMESPACE\r
110           value: {{.Values.namespace}}\r
111         - name: APP_NAME\r
112           value: {{ .Values.appName}}\r
113         - name: AAF_PERM_TYPE\r
114           {{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
115           value: {{ .Values.aafPermType.prod | quote }}\r
116           {{ else if  eq .Values.env "st"}}\r
117           value: {{ .Values.aafPermType.st | quote }}\r
118           {{ else }}\r
119           value: {{ .Values.aafPermType.dev | quote }}\r
120           {{ end }}                 \r
121         - name: AAF_ID\r
122           valueFrom:\r
123             secretKeyRef:\r
124               name: {{ .Values.sharedSecret}}\r
125               key: aaf_id\r
126               optional: true\r
127         - name: AAF_MECH_PASSWORD\r
128           valueFrom:\r
129             secretKeyRef:\r
130               name: {{ .Values.sharedSecret}}\r
131               key: aaf_mech_password\r
132               optional: true\r
133         - name: AAF_PASSWORD\r
134           valueFrom:\r
135             secretKeyRef:\r
136               name: {{ .Values.sharedSecret}}\r
137               key: aaf_password\r
138               optional: true\r
139         # - name: CADI_KEYFILE\r
140         #   valueFrom:\r
141         #     secretKeyRef:\r
142         #       name: {{ .Values.sharedSecret}}\r
143         #       key: keyfile_secret_path\r
144         #       optional: true\r
145         - name: CADI_HOSTNAME\r
146           {{if eq .Values.env "prod"}}\r
147           value: {{ .Values.cadiHostname.prod | quote }}\r
148           {{else if  eq .Values.env "prod-dr"}}\r
149           value: {{ .Values.cadiHostname.prod_dr | quote }}\r
150           {{else if  eq .Values.env "st"}}\r
151           value: {{ .Values.cadiHostname.st | quote }} \r
152           {{ else }}\r
153           value: {{ .Values.cadiHostname.dev | quote }}\r
154           {{ end }}\r
155         - name: APP_VERSION\r
156           value: {{.Values.version}}\r
157         - name: OTF_MONGO_HOSTS\r
158           value: {{ .Values.one_click.mongo.ip | quote }}\r
159           #valueFrom:\r
160           #  secretKeyRef:\r
161           #    name: {{ .Values.one_click.mongo_secret_name}}\r
162           #    key: mongodb_ip\r
163           #    optional: false\r
164           #{{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
165           #value: {{ .Values.otf.mongo.prod.host | quote }}\r
166           #{{ else if eq  .Values.env "st" }}\r
167           #value: {{ .Values.otf.mongo.st.host | quote }}\r
168           #{{ else }}\r
169           #value: {{ .Values.otf.mongo.dev.host | quote }}\r
170           #{{ end }}\r
171         - name: OTF_MONGO_USERNAME\r
172           #value: root\r
173           #value: otfuser\r
174           valueFrom:\r
175             secretKeyRef:\r
176               name: {{ .Values.one_click.mongo.secret_name}}\r
177               key: mongodb-username\r
178               optional: false\r
179         - name: OTF_MONGO_PASSWORD\r
180           valueFrom:\r
181             secretKeyRef:\r
182               name: {{ .Values.one_click.mongo.secret_name}}\r
183               key: mongodb-password\r
184               optional: false\r
185         - name: OTF_MONGO_REPLICASET\r
186           # value: {{ .Values.one_click.mongo.replicaset | quote }}\r
187           valueFrom:\r
188             secretKeyRef:\r
189               name: {{ .Values.one_click.mongo.secret_name}}\r
190               key: mongodb-replicaSet\r
191               optional: false\r
192           #{{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
193           #value: {{ .Values.otf.mongo.prod.replicaSet | quote }}\r
194           #{{else if  eq .Values.env "st"}}\r
195           #value: {{ .Values.otf.mongo.st.replicaSet | quote }}\r
196           #{{ else }}\r
197           #value: {{ .Values.otf.mongo.dev.replicaSet | quote }}\r
198           #{{ end }}\r
199         - name: OTF_MONGO_DATABASE\r
200           # value: {{ .Values.one_click.mongo.database | quote }}\r
201           valueFrom:\r
202             secretKeyRef:\r
203               name: {{ .Values.one_click.mongo.secret_name}}\r
204               key: mongodb-database\r
205               optional: false\r
206           #{{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
207           #value: {{ .Values.otf.mongo.prod.database | quote }}\r
208           #{{else if  eq .Values.env "st"}}\r
209           #value: {{ .Values.otf.mongo.st.database | quote }}\r
210           #{{ else }}\r
211           #value: {{ .Values.otf.mongo.dev.database | quote }}\r
212           #{{ end }}\r
213         - name: otf.camunda.host\r
214           {{if eq .Values.env "prod"}}\r
215           value: {{ .Values.otf.camunda.prod.host | quote }}\r
216           {{ else if eq  .Values.env "prod-dr" }}\r
217           value: {{ .Values.otf.camunda.prod_dr.host | quote }}\r
218           {{ else if eq  .Values.env "st" }}\r
219           value: {{ .Values.otf.camunda.st.host | quote }}\r
220           {{ else }}\r
221           value: {{ .Values.otf.camunda.dev.host | quote }}\r
222           {{ end }}\r
223         - name: otf.camunda.port\r
224           {{if eq .Values.env "prod"}}\r
225           value: {{ .Values.otf.camunda.prod.port | quote }}\r
226           {{ else if eq  .Values.env "prod-dr" }}\r
227           value: {{ .Values.otf.camunda.prod_dr.port | quote }}\r
228           {{ else if eq .Values.env "st"}}\r
229           value: {{ .Values.otf.camunda.st.port | quote }}\r
230           {{ else }}\r
231           value: {{ .Values.otf.camunda.dev.port | quote }}\r
232           {{ end }}\r
233         - name: otf.camunda.executionUri\r
234           value: {{.Values.otf.camunda.executionUri | quote }}\r
235         - name: otf.camunda.pollingUri\r
236           value: {{.Values.otf.camunda.pollingUri | quote }}\r
237         - name: otf.camunda.deploymentUri\r
238           value: {{.Values.otf.camunda.deploymentUri | quote }}\r
239         - name: otf.camunda.processDefinitionKeyUri\r
240           value: {{.Values.otf.camunda.processDefinitionKeyUri | quote }}\r
241         - name: otf.camunda.deploymentDeletionUri\r
242           value: {{.Values.otf.camunda.deploymentDeletionUri | quote }}\r
243         - name: otf.camunda.testDefinitionDeletionUri\r
244           value: {{.Values.otf.camunda.testDefinitionDeletionUri | quote }}\r
245 \r
246         - name: otf.camunda.uri.execute-test\r
247           value: {{.Values.otf.camunda.uri.execute_test | quote }}\r
248         - name: otf.camunda.uri.process-instance-completion-check\r
249           value: {{.Values.otf.camunda.uri.process_instance_completion_check | quote }}\r
250         - name: otf.camunda.uri.deploy-test-strategy-zip\r
251           value: {{.Values.otf.camunda.uri.deploy_test_strategy_zip | quote }}\r
252         - name: otf.camunda.uri.process-definition\r
253           value: {{.Values.otf.camunda.uri.process_definition | quote }}\r
254         - name: otf.camunda.uri.delete-test-strategy\r
255           value: {{.Values.otf.camunda.uri.delete_test_strategy | quote }}\r
256         - name: otf.camunda.uri.delete-test-strategy-test-definition-id\r
257           value: {{.Values.otf.camunda.uri.delete_test_strategy_test_definition_id | quote }}\r
258         - name: otf.camunda.uri.health\r
259           value: {{.Values.otf.camunda.uri.health | quote }}\r
260 \r
261         - name: otf.api.poll-interval\r
262           value: {{.Values.otf.api.poll_interval | quote}}\r
263         - name: otf.api.poll-attempts\r
264           value: {{.Values.otf.api.poll_attempts | quote}}\r
265 \r
266         - name: OTF_CERT_PATH\r
267           {{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
268           value: {{ .Values.cert.prod.path | quote }}\r
269           {{ else if eq .Values.env "st"}}\r
270           value: {{ .Values.cert.st.path | quote }}\r
271           {{ else }}\r
272           value: {{ .Values.cert.dev.path | quote }}\r
273           {{ end }}\r
274         - name: OTF_CERT_PASS\r
275           valueFrom:\r
276             secretKeyRef:\r
277               name: {{ .Values.sharedCert}}\r
278               key: PKCS12_KEY\r
279               optional: true   \r
280         volumeMounts:\r
281         # - name: {{.Values.appName}}-keyfile-volume\r
282         #   mountPath: /opt/secret\r
283         # - name: {{.Values.appName}}-cert-volume\r
284         #   mountPath: /opt/cert\r
285         {{ if or (eq .Values.env "st") (eq .Values.env "prod-dr")}}\r
286         {{else}}\r
287         # - name: logging-pvc\r
288         #   mountPath: "/otf/logs"\r
289         {{end}} \r
290         livenessProbe:\r
291           httpGet:\r
292             path: /otf/api/health/v1\r
293             port: https\r
294             scheme: HTTP\r
295             httpHeaders:\r
296             - name: X-Custom-Header\r
297               value: Alive\r
298           initialDelaySeconds: 30\r
299           timeoutSeconds: 30\r
300           periodSeconds: 30\r
301         readinessProbe:\r
302           httpGet:\r
303             path: /otf/api/health/v1\r
304             port: https\r
305             scheme: HTTP\r
306             httpHeaders:\r
307             - name: X-Custom-Header\r
308               value: Ready\r
309           initialDelaySeconds: 30\r
310           timeoutSeconds: 30\r
311           periodSeconds: 30\r
312       restartPolicy: Always\r