--- /dev/null
+apiVersion: extensions/v1beta1\r
+kind: Deployment\r
+metadata:\r
+ name: {{ .Values.appName}}\r
+ namespace: {{.Values.namespace}}\r
+ labels:\r
+ app: {{ .Values.appName}}\r
+ version: {{.Values.version}}\r
+spec:\r
+ revisionHistoryLimit: 1 # keep one replica set to allow rollback\r
+ minReadySeconds: 10\r
+ strategy:\r
+ # indicate which strategy we want for rolling update\r
+ type: RollingUpdate\r
+ rollingUpdate:\r
+ maxSurge: 1\r
+ maxUnavailable: 1\r
+ {{if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
+ replicas: {{ .Values.replicas.prod}}\r
+ {{ else if eq .Values.env "st"}}\r
+ replicas: {{ .Values.replicas.st}}\r
+ {{ else }}\r
+ replicas: {{ .Values.replicas.dev}}\r
+ {{ end }}\r
+ selector:\r
+ matchLabels:\r
+ app: {{ .Values.appName}}\r
+ version: {{.Values.version}}\r
+ template:\r
+ metadata:\r
+ labels:\r
+ app: {{ .Values.appName}}\r
+ version: {{.Values.version}}\r
+ spec:\r
+ serviceAccount: default\r
+ volumes:\r
+ - name: {{ .Values.appName}}-cert-volume\r
+ secret:\r
+ secretName: {{.Values.sharedCert}}\r
+ optional: true\r
+ items:\r
+ - key: PEM_CERT\r
+ path: otf.pem\r
+ - key: PEM_KEY\r
+ path: privateKey.pem\r
+ containers:\r
+ - name: {{ .Values.appName}}\r
+ image: {{ .Values.image}}\r
+ imagePullPolicy: Always\r
+ ports:\r
+ - name: https\r
+ containerPort: 443\r
+ nodePort: {{.Values.nodePort}}\r
+ protocol: TCP\r
+ {{ if eq .Values.env "st"}}\r
+ resources:\r
+ limits:\r
+ memory: "5Gi"\r
+ cpu: "3"\r
+ requests:\r
+ memory: "2Gi"\r
+ cpu: "1"\r
+ {{else}}\r
+ resources:\r
+ limits:\r
+ memory: "10Gi"\r
+ cpu: "6"\r
+ requests:\r
+ memory: "4Gi"\r
+ cpu: "2"\r
+ {{end}}\r
+ env:\r
+ - name: ENV\r
+ {{ if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
+ value: "production"\r
+ {{ else if eq .Values.env "st" }}\r
+ value: "system_test"\r
+ {{ else }}\r
+ value: "development"\r
+ {{ end }}\r
+ - name: NAMESPACE\r
+ value: {{.Values.namespace}}\r
+ - name: APP_NAME\r
+ value: {{ .Values.appName}}\r
+ - name: APP_VERSION\r
+ value: {{.Values.version}}\r
+ - name: OTF_URL\r
+ {{ if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
+ value: {{.Values.otf.OTF_URL.prod | quote}}\r
+ {{ else if eq .Values.env "st" }}\r
+ value: {{.Values.otf.OTF_URL.st | quote}}\r
+ {{ else }}\r
+ value: {{.Values.otf.OTF_URL.dev | quote}}\r
+ {{ end }}\r
+ - name: OTF_EMAIL\r
+ value: {{.Values.otf.OTF_EMAIL | quote}}\r
+ - name: AUTHENTICATION_SECRET\r
+ valueFrom:\r
+ secretKeyRef:\r
+ name: {{ .Values.appName}}\r
+ key: authentication_secret\r
+ optional: true\r
+ - name: SERVICEAPI_URL\r
+ {{ if eq .Values.env "prod" }}\r
+ value: {{.Values.serviceApi.prod.SERVICEAPI_URL | quote}}\r
+ {{ else if eq .Values.env "prod-dr" }}\r
+ value: {{.Values.serviceApi.prod_dr.SERVICEAPI_URL | quote}}\r
+ {{ else if eq .Values.env "st" }}\r
+ value: {{.Values.serviceApi.st.SERVICEAPI_URL | quote}}\r
+ {{ else }}\r
+ value: {{.Values.serviceApi.dev.SERVICEAPI_URL | quote}}\r
+ {{ end }}\r
+ - name: SERVICEAPI_URIEXECUTETESTINSTANCE\r
+ {{ if eq .Values.env "prod" }}\r
+ value: {{.Values.serviceApi.prod.SERVICEAPI_URIEXECUTETESTINSTANCE | quote}}\r
+ {{ else if eq .Values.env "prod-dr" }}\r
+ value: {{.Values.serviceApi.prod_dr.SERVICEAPI_URIEXECUTETESTINSTANCE | quote}} \r
+ {{ else if eq .Values.env "st" }}\r
+ value: {{.Values.serviceApi.st.SERVICEAPI_URIEXECUTETESTINSTANCE | quote}}\r
+ {{ else }}\r
+ value: {{.Values.serviceApi.dev.SERVICEAPI_URIEXECUTETESTINSTANCE | quote}}\r
+ {{ end }}\r
+ - name: SERVICEAPI_AAFID\r
+ valueFrom:\r
+ secretKeyRef:\r
+ name: {{ .Values.sharedSecret}}\r
+ key: aaf_id\r
+ optional: true\r
+ - name: SERVICEAPI_AAFPASSWORD\r
+ valueFrom:\r
+ secretKeyRef:\r
+ name: {{ .Values.sharedSecret}}\r
+ key: aaf_mech_password\r
+ optional: true\r
+ - name: CAMUNDAAPI_URL\r
+ {{ if eq .Values.env "prod" }}\r
+ value: {{ .Values.camundaApi.prod.CAMUNDAAPI_URL | quote}}\r
+ {{ else if eq .Values.env "prod-dr" }}\r
+ value: {{ .Values.camundaApi.prod_dr.CAMUNDAAPI_URL | quote}} \r
+ {{ else if eq .Values.env "st" }}\r
+ value: {{ .Values.camundaApi.st.CAMUNDAAPI_URL | quote}}\r
+ {{ else }}\r
+ value: {{ .Values.camundaApi.dev.CAMUNDAAPI_URL | quote}}\r
+ {{ end }}\r
+ - name: CAMUNDAAPI_AAFID\r
+ valueFrom:\r
+ secretKeyRef:\r
+ name: {{ .Values.sharedSecret}}\r
+ key: aaf_id\r
+ optional: true\r
+ - name: CAMUNDAAPI_AAFPASSWORD\r
+ valueFrom:\r
+ secretKeyRef:\r
+ name: {{ .Values.sharedSecret}}\r
+ key: aaf_mech_password\r
+ optional: true\r
+ - name: MONGO_BASEURL\r
+ {{ if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
+ value: {{ .Values.mongo.prod.MONGO_BASEURL | quote}}\r
+ {{ else if eq .Values.env "st" }}\r
+ value: {{ .Values.mongo.st.MONGO_BASEURL | quote}}\r
+ {{ else }}\r
+ value: {{ .Values.mongo.dev.MONGO_BASEURL | quote}}\r
+ {{ end }}\r
+ - name: MONGO_DBOTF\r
+ {{ if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
+ value: {{ .Values.mongo.prod.MONGO_DBOTF | quote }}\r
+ {{ else if eq .Values.env "st" }}\r
+ value: {{ .Values.mongo.st.MONGO_DBOTF | quote }}\r
+ {{ else }}\r
+ value: {{ .Values.mongo.dev.MONGO_DBOTF | quote }}\r
+ {{ end }}\r
+ - name: MONGO_REPLICASET\r
+ {{ if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
+ value: {{ .Values.mongo.prod.MONGO_REPLICASET | quote }}\r
+ {{ else if eq .Values.env "st" }}\r
+ value: {{ .Values.mongo.st.MONGO_REPLICASET | quote }}\r
+ {{ else }}\r
+ value: {{ .Values.mongo.dev.MONGO_REPLICASET | quote }}\r
+ {{ end }}\r
+ - name: MONGO_USERNAME\r
+ valueFrom:\r
+ secretKeyRef:\r
+ name: {{ .Values.appName}}\r
+ key: mongo_username\r
+ optional: true\r
+ - name: MONGO_PASSWORD\r
+ valueFrom:\r
+ secretKeyRef:\r
+ name: {{ .Values.appName}}\r
+ key: mongo_password\r
+ optional: true\r
+ volumeMounts:\r
+ - name: {{.Values.appName}}-cert-volume\r
+ mountPath: /home/node/server/config/cert/\r
+ livenessProbe:\r
+ httpGet:\r
+ path: {{ .Values.healthEndpoint }}\r
+ port: https\r
+ scheme: HTTPS\r
+ httpHeaders:\r
+ - name: X-Custom-Header\r
+ value: Alive\r
+ initialDelaySeconds: 30\r
+ timeoutSeconds: 30\r
+ periodSeconds: 60\r
+ readinessProbe:\r
+ httpGet:\r
+ path: {{ .Values.healthEndpoint }}\r
+ port: https\r
+ scheme: HTTPS\r
+ httpHeaders:\r
+ - name: X-Custom-Header\r
+ value: Ready\r
+ initialDelaySeconds: 30\r
+ timeoutSeconds: 30\r
+ periodSeconds: 30\r
+ restartPolicy: Always\r