added svcapi ui and camunda code
[it/otf.git] / otf-camunda / helm / otf-camunda / templates / deployment.yaml
1 apiVersion: apps/v1beta1\r
2 kind: StatefulSet\r
3 metadata:\r
4   name: {{ .Values.appName}}-{{ .Values.env }}\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\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: 3\r
17       maxUnavailable: 1\r
18   replicas: {{ .Values.replicas}}\r
19   selector:\r
20     matchLabels:\r
21       app: {{ .Values.appName}}\r
22       version: {{.Values.version}}\r
23   template:\r
24     metadata:\r
25       labels:\r
26         app: {{ .Values.appName}}\r
27         version: {{.Values.version}}\r
28     spec:\r
29       serviceAccount: default\r
30       volumes:\r
31       - name: {{ .Values.appName}}-aaf-volume\r
32         secret:\r
33           secretName: {{.Values.sharedSecret}}\r
34       - name: {{ .Values.appName}}-keyfile-volume\r
35         secret:\r
36           secretName: {{.Values.sharedSecret}}\r
37           optional: true\r
38           items:\r
39           - key: cadi_keyfile\r
40             path: keyfile\r
41       - name: {{ .Values.appName}}-cert-volume\r
42         secret:\r
43           secretName: {{.Values.sharedCert}}\r
44           optional: true\r
45           items:\r
46           - key: PKCS12_CERT\r
47             {{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
48             path: {{ .Values.cert.prod.name | quote }}\r
49             {{ else if eq  .Values.env "st" }}\r
50             path: {{ .Values.cert.st.name | quote }}\r
51             {{ else }}\r
52             path: {{ .Values.cert.dev.name | quote }}\r
53             {{ end }}\r
54           - key: private_key\r
55             path: {{ .Values.Secret.privateKey.name }}\r
56       - name: {{.Values.appName}}-config-volume\r
57         configMap:\r
58           name: {{.Values.appName}}-config\r
59           items:\r
60           - key: router_config\r
61             path: config.ini\r
62       {{ if or (eq .Values.env "st") (eq .Values.env "prod-dr")}}\r
63       {{else}}\r
64       - name: logging-pvc\r
65         persistentVolumeClaim:\r
66           {{if eq .Values.env "prod"}}\r
67           claimName: {{ .Values.pvc.prod | quote }}\r
68           {{ else }}\r
69           claimName: {{ .Values.pvc.dev | quote }}\r
70           {{ end }}\r
71       {{end}}\r
72       containers:\r
73       - name: mysql-router\r
74         image: {{ .Values.otf.camunda.router.image }}\r
75         imagePullPolicy: Always\r
76         ports:\r
77         - name: http\r
78           containerPort: {{ .Values.otf.camunda.router.port }}\r
79           protocol: TCP\r
80         {{ if eq .Values.env "st"}}\r
81         resources:\r
82           limits:\r
83             memory: "1Gi"\r
84             cpu: "500m"\r
85           requests:\r
86             memory: "512Mi"\r
87             cpu: "100m"\r
88         {{else}}\r
89         resources:\r
90           limits:\r
91             memory: "4Gi"\r
92             cpu: "2"\r
93           requests:\r
94             memory: "2Gi"\r
95             cpu: "1"\r
96         {{end}}\r
97         args: ["--config=/opt/config/config.ini"]\r
98         lifecycle:\r
99           preStop:\r
100             exec:\r
101               command: ["/bin/sh", "-c", {{ "sleep 0" | replace "0" (.Values.terminationGracePeriodSeconds | toString) | quote}} ]\r
102         volumeMounts:\r
103         - name: {{.Values.appName}}-config-volume\r
104           mountPath: /opt/config\r
105       - name: {{ .Values.appName}}\r
106         image: {{ .Values.image}}\r
107         imagePullPolicy: Always\r
108         ports:\r
109         - name: http\r
110           containerPort: {{ .Values.otf.camunda.tcu.port }}\r
111           nodePort: {{.Values.nodePort}}\r
112           protocol: TCP\r
113         {{ if eq .Values.env "st"}}\r
114         resources:\r
115           limits:\r
116             memory: "6Gi"\r
117             cpu: "2.8"\r
118           requests:\r
119             memory: "2Gi"\r
120             cpu: "1.5"\r
121         {{else}}\r
122         resources:\r
123           limits:\r
124             memory: "10Gi"\r
125             cpu: "6"\r
126           requests:\r
127             memory: "4Gi"\r
128             cpu: "2"\r
129         {{end}}\r
130         env:\r
131         - name: ENV\r
132           {{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
133           value: "production"\r
134           {{ else if eq .Values.env "st" }}\r
135           value: "system_test"\r
136           {{ else }}\r
137           value: "development"\r
138           {{ end }}\r
139         - name: NAMESPACE\r
140           value: {{.Values.namespace}}\r
141         - name: APP_NAME\r
142           value: {{ .Values.appName}}\r
143         - name: EXECUTORS_ACTIVE\r
144           {{if eq .Values.env "prod"}}\r
145           value: {{ .Values.otf.camunda.executors_active.prod | quote }}\r
146           {{else if eq .Values.env "prod-dr"}}\r
147           value: {{ .Values.otf.camunda.executors_active.prod_dr | quote }}\r
148           {{else if  eq .Values.env "st"}}\r
149           value: {{ .Values.otf.camunda.executors_active.st | quote }}\r
150           {{ else }}\r
151           value: {{ .Values.otf.camunda.executors_active.dev | quote }}\r
152           {{ end }}\r
153         - name: OTF_MONGO_USERNAME\r
154           valueFrom:\r
155             secretKeyRef:\r
156               name: {{ .Values.appName}}\r
157               key: mongo_username\r
158               optional: true\r
159         - name: OTF_MONGO_PASSWORD\r
160           valueFrom:\r
161             secretKeyRef:\r
162               name: {{ .Values.appName}}\r
163               key: mongo_password\r
164               optional: true\r
165         - name: OTF_MONGO_HOSTS\r
166           {{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
167           value: {{ .Values.otf.mongo.prod.host | quote }}\r
168           {{ else if eq  .Values.env "st" }}\r
169           value: {{ .Values.otf.mongo.st.host | quote }}\r
170           {{ else }}\r
171           value: {{.Values.otf.mongo.dev.host | quote }}\r
172           {{ end }}\r
173         - name: OTF_MONGO_REPLICASET\r
174           {{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
175           value: {{ .Values.otf.mongo.prod.replicaSet | quote }}\r
176           {{ else if eq .Values.env "st"}}\r
177           value: {{ .Values.otf.mongo.st.replicaSet | quote }}\r
178           {{ else }}\r
179           value: {{ .Values.otf.mongo.dev.replicaSet | quote }}\r
180           {{ end }}\r
181         - name: OTF_MONGO_DATABASE\r
182           {{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
183           value: {{ .Values.otf.mongo.prod.database | quote }}\r
184           {{else if  eq .Values.env "st"}}\r
185           value: {{ .Values.otf.mongo.st.database | quote }}\r
186           {{ else }}\r
187           value: {{ .Values.otf.mongo.dev.database | quote }}\r
188           {{ end }}\r
189         - name: OTF_CAMUNDA_DB_URL\r
190           {{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
191           value: {{ .Values.otf.camunda.db.prod.url}}\r
192           {{else if  eq .Values.env "st"}}\r
193           value: {{ .Values.otf.camunda.db.st.url}}\r
194           {{ else }}\r
195           value: {{ .Values.otf.camunda.db.dev.url}}\r
196           {{ end }}\r
197         - name: OTF_CAMUNDA_DB_USERNAME\r
198           valueFrom:\r
199             secretKeyRef:\r
200               name: {{ .Values.appName}}\r
201               key: camunda_db_username\r
202               optional: true\r
203         - name: OTF_CAMUNDA_DB_PASSWORD\r
204           valueFrom:\r
205             secretKeyRef:\r
206               name: {{ .Values.appName}}\r
207               key: camunda_db_password\r
208               optional: true\r
209         - name: AAF_PERM_TYPE\r
210           {{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
211           value: {{ .Values.aafPermType.prod | quote }}\r
212           {{ else if  eq .Values.env "st"}}\r
213           value: {{ .Values.aafPermType.st | quote }}\r
214           {{ else }}\r
215           value: {{ .Values.aafPermType.dev | quote }}\r
216           {{ end }}\r
217         - name: CADI_HOSTNAME\r
218           {{if eq .Values.env "prod"}}\r
219           value: {{ .Values.cadiHostname.prod | quote }}\r
220           {{else if eq .Values.env "prod-dr"}}\r
221           value: {{ .Values.cadiHostname.prod_dr | quote }}\r
222           {{else if  eq .Values.env "st"}}\r
223           value: {{ .Values.cadiHostname.st | quote }}\r
224           {{ else }}\r
225           value: {{ .Values.cadiHostname.dev | quote }}\r
226           {{ end }}\r
227         - name: AAF_ID\r
228           valueFrom:\r
229             secretKeyRef:\r
230               name: {{ .Values.sharedSecret}}\r
231               key: aaf_id\r
232               optional: true\r
233         - name: AAF_MECH_PASSWORD\r
234           valueFrom:\r
235             secretKeyRef:\r
236               name: {{ .Values.sharedSecret}}\r
237               key: aaf_mech_password\r
238               optional: true\r
239         - name: AAF_PASSWORD\r
240           valueFrom:\r
241             secretKeyRef:\r
242               name: {{ .Values.sharedSecret}}\r
243               key: aaf_password\r
244               optional: true\r
245         - name: CADI_KEYFILE\r
246           valueFrom:\r
247             secretKeyRef:\r
248               name: {{ .Values.sharedSecret}}\r
249               key: keyfile_secret_path\r
250               optional: true\r
251         - name: OTF_CERT_PATH\r
252           {{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
253           value: {{ .Values.cert.prod.path | quote }}\r
254           {{ else if eq  .Values.env "st" }}\r
255           value: {{ .Values.cert.st.path | quote }}\r
256           {{ else }}\r
257           value: {{ .Values.cert.dev.path | quote }}\r
258           {{ end }}\r
259         - name: OTF_CERT_PASS\r
260           valueFrom:\r
261             secretKeyRef:\r
262               name: {{ .Values.sharedCert}}\r
263               key: PKCS12_KEY\r
264               optional: true\r
265         - name: APP_VERSION\r
266           value: {{.Values.version}}\r
267         - name: PRIVATE_KEY\r
268           value: {{ .Values.Secret.privateKey.path }}\r
269         - name: PRIVATE_KEY_USERNAME\r
270           valueFrom:\r
271             secretKeyRef:\r
272               name: {{.Values.sharedCert}}\r
273               key: private_key_username\r
274               optional: true\r
275         - name: PRIVATE_KEY_PASSPHRASE\r
276           valueFrom:\r
277             secretKeyRef:\r
278               name: {{.Values.sharedCert}}\r
279               key: private_key_passphrase\r
280               optional: true\r
281         volumeMounts:\r
282         - name: {{.Values.appName}}-keyfile-volume\r
283           mountPath: /opt/secret\r
284         - name: {{.Values.appName}}-cert-volume\r
285           mountPath: /opt/cert\r
286         {{ if or (eq .Values.env "st") (eq .Values.env "prod-dr")}}\r
287         {{else}}\r
288         - name: logging-pvc\r
289           mountPath: "/otf/logs"\r
290         {{end}}   \r
291         livenessProbe:\r
292           httpGet:\r
293             path: /otf/health/v1\r
294             port: http\r
295             scheme: HTTPS\r
296             httpHeaders:\r
297             - name: X-Custom-Header\r
298               value: Alive\r
299           initialDelaySeconds: 30\r
300           timeoutSeconds: 30\r
301           periodSeconds: 30\r
302         readinessProbe:\r
303           httpGet:\r
304             path: /otf/health/v1\r
305             port: http\r
306             scheme: HTTPS\r
307             httpHeaders:\r
308             - name: X-Custom-Header\r
309               value: Ready\r
310           initialDelaySeconds: 30\r
311           timeoutSeconds: 30\r
312           periodSeconds: 30\r
313       restartPolicy: Always\r
314       terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds}}\r