70d6e4ce3c7b09c878592bdf21701b484ec8407d
[it/otf.git] / otf-robot-test-head / helm / otf-robot-test-head / 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\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: 0\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}}-cert-volume\r
32         secret:\r
33           secretName: {{.Values.sharedCert}}\r
34           optional: true\r
35           items:\r
36           - key: PEM_CERT\r
37             path: otf.pem\r
38           - key: PEM_KEY\r
39             path: privateKey.pem\r
40       {{ if or (eq .Values.env "st") (eq .Values.env "prod-dr")}}\r
41       {{else}}\r
42       - name: logging-pvc\r
43         persistentVolumeClaim:\r
44           {{if eq .Values.env "prod"}}\r
45           claimName: {{ .Values.pvc.prod | quote }}\r
46           {{ else }}\r
47           claimName: {{ .Values.pvc.dev | quote }}\r
48           {{ end }}\r
49       {{end}}\r
50       containers:\r
51       - name: {{ .Values.appName}}\r
52         image: {{ .Values.image}}\r
53         imagePullPolicy: Always\r
54         ports:\r
55         - name: http\r
56           containerPort: 5000\r
57           nodePort: {{.Values.nodePort}}\r
58           protocol: TCP\r
59         env:\r
60         - name: NAMESPACE\r
61           value: {{.Values.namespace}}\r
62         - name: APP_NAME\r
63           value: {{ .Values.appName}}\r
64         - name: APP_VERSION\r
65           value: {{.Values.version}}\r
66         - name: OTF_MONGO_HOSTS\r
67           {{ if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
68           value: {{ .Values.mongo.prod.OTF_MONGO_HOSTS | quote}}\r
69           {{ else if eq .Values.env "st" }}\r
70           value: {{ .Values.mongo.st.OTF_MONGO_HOSTS | quote}}\r
71           {{ else }}\r
72           value: {{ .Values.mongo.dev.OTF_MONGO_HOSTS | quote}}\r
73           {{ end }}\r
74         - name: OTF_MONGO_DATABASE\r
75           {{ if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
76           value: {{ .Values.mongo.prod.OTF_MONGO_DBOTF | quote }}\r
77           {{ else if eq .Values.env "st" }}\r
78           value: {{ .Values.mongo.st.OTF_MONGO_DBOTF | quote }}\r
79           {{ else }}\r
80           value: {{ .Values.mongo.dev.OTF_MONGO_DBOTF | quote }}\r
81           {{ end }}\r
82         - name: OTF_MONGO_REPLICASET\r
83           {{ if or (eq .Values.env "prod") (eq .Values.env "prod-dr")}}\r
84           value: {{ .Values.mongo.prod.OTF_MONGO_REPLICASET | quote }}\r
85           {{ else if eq .Values.env "st" }}\r
86           value: {{ .Values.mongo.st.OTF_MONGO_REPLICASET | quote }}          \r
87           {{ else }}\r
88           value: {{ .Values.mongo.dev.OTF_MONGO_REPLICASET | quote }}\r
89           {{ end }}\r
90         - name: OTF_MONGO_USERNAME\r
91           valueFrom:\r
92             secretKeyRef:\r
93               name: {{ .Values.appName}}\r
94               key: mongo_username\r
95               optional: true\r
96         - name: OTF_MONGO_PASSWORD\r
97           valueFrom:\r
98             secretKeyRef:\r
99               name: {{ .Values.appName}}\r
100               key: mongo_password\r
101               optional: true\r
102         - name: APP_SETTINGS\r
103           value: {{ .Values.robot.APP_SETTINGS | quote }} \r
104         {{ if eq .Values.env "st"}}\r
105         resources:\r
106           limits: \r
107             memory: "2Gi"\r
108             cpu: "1"\r
109           requests:\r
110             memory: "1Gi"\r
111             cpu: "500m"\r
112         {{else}}  \r
113         resources:\r
114           limits:\r
115             memory: "4Gi"\r
116             cpu: "2"\r
117           requests:\r
118             memory: "1Gi"\r
119             cpu: "1"\r
120         {{end}}    \r
121         volumeMounts:\r
122         - name: {{.Values.appName}}-cert-volume\r
123           mountPath: /opt/cert\r
124         {{ if or (eq .Values.env "st") (eq .Values.env "prod-dr")}}\r
125         {{else}}\r
126         - name: logging-pvc\r
127           mountPath: "/otf/logs"\r
128         {{end}}   \r
129         livenessProbe:\r
130           httpGet:\r
131             path: {{.Values.health}}\r
132             port: http\r
133             scheme: HTTPS\r
134             httpHeaders:\r
135               - name: X-Custom-Header\r
136                 value: Alive\r
137           initialDelaySeconds: 30\r
138           timeoutSeconds: 30\r
139           periodSeconds: 30\r
140         readinessProbe:\r
141           httpGet:\r
142             path: {{.Values.health}}\r
143             port: http\r
144             scheme: HTTPS\r
145             httpHeaders:\r
146               - name: X-Custom-Header\r
147                 value: Ready\r
148           initialDelaySeconds: 30\r
149           timeoutSeconds: 30\r
150           periodSeconds: 30\r
151       restartPolicy: Always\r