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