Add graphadmin microservice to oom
[oom.git] / kubernetes / aai / charts / aai-traversal / templates / deployment.yaml
1 # Copyright © 2017 Amdocs, Bell Canada
2 # Modifications Copyright © 2018 AT&T
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 apiVersion: extensions/v1beta1
17 kind: Deployment
18 metadata:
19   name: {{ include "common.fullname" . }}
20   namespace: {{ include "common.namespace" . }}
21   labels:
22     app: {{ include "common.name" . }}
23     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
24     release: {{ .Release.Name }}
25     heritage: {{ .Release.Service }}
26 spec:
27   replicas: {{ .Values.replicaCount }}
28   selector:
29     matchLabels:
30       app: {{ include "common.name" . }}
31   template:
32     metadata:
33       labels:
34         app: {{ include "common.name" . }}
35         release: {{ .Release.Name }}
36       name: {{ include "common.name" . }}
37       annotations:
38         checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
39         msb.onap.org/service-info: '[
40           {
41               "serviceName": "_aai-generic-query",
42               "version": "v11",
43               "url": "/aai/v11/search/generic-query",
44               "protocol": "REST",
45               "port": "8446",
46               "enable_ssl": true,
47               "lb_policy":"ip_hash",
48               "visualRange": "1",
49               "path": "/aai/v11/search/generic-query"
50           },
51           {
52               "serviceName": "_aai-generic-query",
53               "version": "v12",
54               "url": "/aai/v12/search/generic-query",
55               "protocol": "REST",
56               "port": "8446",
57               "enable_ssl": true,
58               "lb_policy":"ip_hash",
59               "visualRange": "1",
60               "path": "/aai/v12/search/generic-query"
61           },
62           {
63               "serviceName": "_aai-generic-query",
64               "version": "v13",
65               "url": "/aai/v13/search/generic-query",
66               "protocol": "REST",
67               "port": "8446",
68               "enable_ssl": true,
69               "lb_policy":"ip_hash",
70               "visualRange": "1",
71               "path": "/aai/v13/search/generic-query"
72           },
73           {
74               "serviceName": "_aai-nodes-query",
75               "version": "v11",
76               "url": "/aai/v11/search/nodes-query",
77               "protocol": "REST",
78               "port": "8446",
79               "enable_ssl": true,
80               "lb_policy":"ip_hash",
81               "visualRange": "1",
82               "path": "/aai/v11/search/nodes-query"
83           },
84           {
85               "serviceName": "_aai-nodes-query",
86               "version": "v12",
87               "url": "/aai/v12/search/nodes-query",
88               "protocol": "REST",
89               "port": "8446",
90               "enable_ssl": true,
91               "lb_policy":"ip_hash",
92               "visualRange": "1",
93               "path": "/aai/v12/search/nodes-query"
94           },
95           {
96               "serviceName": "_aai-nodes-query",
97               "version": "v13",
98               "url": "/aai/v13/search/nodes-query",
99               "protocol": "REST",
100               "port": "8446",
101               "enable_ssl": true,
102               "lb_policy":"ip_hash",
103               "visualRange": "1",
104               "path": "/aai/v13/search/nodes-query"
105           },
106           {
107               "serviceName": "_aai-query",
108               "version": "v11",
109               "url": "/aai/v11/query",
110               "protocol": "REST",
111               "port": "8446",
112               "enable_ssl": true,
113               "lb_policy":"ip_hash",
114               "visualRange": "1",
115               "path": "/aai/v11/query"
116           },
117           {
118               "serviceName": "_aai-query",
119               "version": "v12",
120               "url": "/aai/v12/query",
121               "protocol": "REST",
122               "port": "8446",
123               "enable_ssl": true,
124               "lb_policy":"ip_hash",
125               "visualRange": "1",
126               "path": "/aai/v12/query"
127           },
128           {
129               "serviceName": "_aai-query",
130               "version": "v13",
131               "url": "/aai/v13/query",
132               "protocol": "REST",
133               "port": "8446",
134               "enable_ssl": true,
135               "lb_policy":"ip_hash",
136               "visualRange": "1",
137               "path": "/aai/v13/query"
138           },
139           {
140               "serviceName": "_aai-named-query",
141               "url": "/aai/search",
142               "protocol": "REST",
143               "port": "8446",
144               "enable_ssl": true,
145               "lb_policy":"ip_hash",
146               "visualRange": "1",
147               "path": "/aai/search"
148           },
149           {
150               "serviceName": "aai-generic-query",
151               "version": "v11",
152               "url": "/aai/v11/search/generic-query",
153               "protocol": "REST",
154               "port": "8446",
155               "enable_ssl": true,
156               "lb_policy":"ip_hash",
157               "visualRange": "1"
158           },
159           {
160               "serviceName": "aai-generic-query",
161               "version": "v12",
162               "url": "/aai/v12/search/generic-query",
163               "protocol": "REST",
164               "port": "8446",
165               "enable_ssl": true,
166               "lb_policy":"ip_hash",
167               "visualRange": "1"
168           },
169           {
170               "serviceName": "aai-generic-query",
171               "version": "v13",
172               "url": "/aai/v13/search/generic-query",
173               "protocol": "REST",
174               "port": "8446",
175               "enable_ssl": true,
176               "lb_policy":"ip_hash",
177               "visualRange": "1"
178           },
179           {
180               "serviceName": "aai-nodes-query",
181               "version": "v11",
182               "url": "/aai/v11/search/nodes-query",
183               "protocol": "REST",
184               "port": "8446",
185               "enable_ssl": true,
186               "lb_policy":"ip_hash",
187               "visualRange": "1"
188           },
189           {
190               "serviceName": "aai-nodes-query",
191               "version": "v12",
192               "url": "/aai/v12/search/nodes-query",
193               "protocol": "REST",
194               "port": "8446",
195               "enable_ssl": true,
196               "lb_policy":"ip_hash",
197               "visualRange": "1"
198           },
199           {
200               "serviceName": "aai-nodes-query",
201               "version": "v13",
202               "url": "/aai/v13/search/nodes-query",
203               "protocol": "REST",
204               "port": "8446",
205               "enable_ssl": true,
206               "lb_policy":"ip_hash",
207               "visualRange": "1"
208           },
209           {
210               "serviceName": "aai-query",
211               "version": "v11",
212               "url": "/aai/v11/query",
213               "protocol": "REST",
214               "port": "8446",
215               "enable_ssl": true,
216               "lb_policy":"ip_hash",
217               "visualRange": "1"
218           },
219           {
220               "serviceName": "aai-query",
221               "version": "v12",
222               "url": "/aai/v12/query",
223               "protocol": "REST",
224               "port": "8446",
225               "enable_ssl": true,
226               "lb_policy":"ip_hash",
227               "visualRange": "1"
228           },
229           {
230               "serviceName": "aai-query",
231               "version": "v13",
232               "url": "/aai/v13/query",
233               "protocol": "REST",
234               "port": "8446",
235               "enable_ssl": true,
236               "lb_policy":"ip_hash",
237               "visualRange": "1"
238           },
239           {
240               "serviceName": "aai-named-query",
241               "url": "/aai/search",
242               "protocol": "REST",
243               "port": "8446",
244               "enable_ssl": true,
245               "lb_policy":"ip_hash",
246               "visualRange": "1"
247           }
248           ]'
249     spec:
250       hostname: aai-traversal
251     {{ if .Values.global.initContainers.enabled }}
252       initContainers:
253       - command:
254       {{  if .Values.global.jobs.createSchema.enabled  }}
255         - /root/job_complete.py
256         args:
257         - --job-name
258         - {{ .Release.Name }}-aai-graphadmin-create-db-schema
259       {{  else }}
260         - /root/ready.py
261         args:
262         - --container-name
263         - aai-cassandra
264       {{  end  }}
265         env:
266         - name: NAMESPACE
267           valueFrom:
268             fieldRef:
269               apiVersion: v1
270               fieldPath: metadata.namespace
271         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
272         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
273         name: {{ include "common.name" . }}-readiness
274     {{ end }}
275       containers:
276       - name: {{ include "common.name" . }}
277         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
278         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
279         env:
280         - name: DISABLE_UPDATE_QUERY
281           value: {{ .Values.config.disableUpdateQuery | quote }}
282         - name: LOCAL_USER_ID
283           value: {{ .Values.global.config.userId | quote }}
284         - name: LOCAL_GROUP_ID
285           value: {{ .Values.global.config.groupId | quote }}
286         volumeMounts:
287         - mountPath: /etc/localtime
288           name: localtime
289           readOnly: true
290         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-realtime.properties
291           name: {{ include "common.fullname" . }}-db-real-conf
292           subPath: janusgraph-realtime.properties
293         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-cached.properties
294           name: {{ include "common.fullname" . }}-db-cached-conf
295           subPath: janusgraph-cached.properties
296         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/aaiconfig.properties
297           name: {{ include "common.fullname" . }}-aaiconfig-conf
298           subPath: aaiconfig.properties
299         - mountPath: /opt/aai/logroot/AAI-GQ
300           name: {{ include "common.fullname" . }}-logs
301         - mountPath: /opt/app/aai-traversal/resources/logback.xml
302           name: {{ include "common.fullname" . }}-log-conf
303           subPath: logback.xml
304         - mountPath: /opt/app/aai-traversal/resources/localhost-access-logback.xml
305           name: {{ include "common.fullname" . }}-localhost-access-log-conf
306           subPath: localhost-access-logback.xml
307         - mountPath: /opt/app/aai-traversal/resources/application.properties
308           name: {{ include "common.fullname" . }}-springapp-conf
309           subPath: application.properties
310           {{ $global := . }}
311           {{ range $job := .Values.global.config.auth.files }}
312         - mountPath: /opt/app/aai-traversal/resources/etc/auth/{{ . }}
313           name: {{ include "common.fullname" $global }}-auth-truststore-sec
314           subPath: {{ . }}
315           {{ end }}
316         ports:
317         - containerPort: {{ .Values.service.internalPort }}
318         - containerPort: {{ .Values.service.internalPort2 }}
319         # disable liveness probe when breakpoints set in debugger
320         # so K8s doesn't restart unresponsive container
321         {{ if .Values.liveness.enabled }}
322         livenessProbe:
323           tcpSocket:
324             port: {{ .Values.service.internalPort }}
325           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
326           periodSeconds: {{ .Values.liveness.periodSeconds }}
327         {{ end }}
328         readinessProbe:
329           tcpSocket:
330             port: {{ .Values.service.internalPort }}
331           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
332           periodSeconds: {{ .Values.readiness.periodSeconds }}
333         resources:
334 {{ toYaml .Values.resources | indent 10 }}
335       {{- if .Values.nodeSelector }}
336       nodeSelector:
337 {{ toYaml .Values.nodeSelector | indent 8 }}
338       {{- end -}}
339       {{- if .Values.affinity }}
340       affinity:
341 {{ toYaml .Values.affinity | indent 8 }}
342       {{- end }}
343
344       # side car containers
345       - name: filebeat-onap
346         image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
347         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
348         volumeMounts:
349         - mountPath: /usr/share/filebeat/filebeat.yml
350           subPath: filebeat.yml
351           name: filebeat-conf
352         - mountPath: /var/log/onap
353           name: {{ include "common.fullname" . }}-logs
354         - mountPath: /usr/share/filebeat/data
355           name: {{ include "common.fullname" . }}-filebeat
356       volumes:
357       - name: localtime
358         hostPath:
359           path: /etc/localtime
360       - name: filebeat-conf
361         configMap:
362           name: aai-filebeat
363       - name: {{ include "common.fullname" . }}-logs
364         emptyDir: {}
365       - name: {{ include "common.fullname" . }}-filebeat
366         emptyDir: {}
367       - name: {{ include "common.fullname" . }}-log-conf
368         configMap:
369          name: {{ include "common.fullname" . }}-log
370       - name: {{ include "common.fullname" . }}-localhost-access-log-conf
371         configMap:
372          name: {{ include "common.fullname" . }}-localhost-access-log-configmap
373       - name: {{ include "common.fullname" . }}-db-real-conf
374         configMap:
375          name: {{ include "common.fullname" . }}-db-real-configmap
376       - name: {{ include "common.fullname" . }}-db-cached-conf
377         configMap:
378          name: {{ include "common.fullname" . }}-db-cached-configmap
379       - name: {{ include "common.fullname" . }}-aaiconfig-conf
380         configMap:
381          name: {{ include "common.fullname" . }}-aaiconfig-configmap
382       - name: {{ include "common.fullname" . }}-springapp-conf
383         configMap:
384          name: {{ include "common.fullname" . }}-springapp-configmap
385       - name: {{ include "common.fullname" . }}-realm-conf
386         configMap:
387          name: {{ include "common.fullname" . }}-realm-configmap
388       - name: {{ include "common.fullname" . }}-auth-truststore-sec
389         secret:
390          secretName: aai-auth-truststore-secret
391          items:
392           {{ range $job := .Values.global.config.auth.files }}
393            - key: {{ . }}
394              path: {{ . }}
395           {{ end }}
396       restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }}
397       imagePullSecrets:
398       - name: "{{ include "common.namespace" . }}-docker-registry-key"