Upgrade AAI to use common shared Cassandra
[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-generic-query",
75               "version": "v14",
76               "url": "/aai/v14/search/generic-query",
77               "protocol": "REST",
78               "port": "8446",
79               "enable_ssl": true,
80               "lb_policy":"ip_hash",
81               "visualRange": "1",
82               "path": "/aai/v14/search/generic-query"
83           },
84           {
85               "serviceName": "_aai-generic-query",
86               "version": "v15",
87               "url": "/aai/v15/search/generic-query",
88               "protocol": "REST",
89               "port": "8446",
90               "enable_ssl": true,
91               "lb_policy":"ip_hash",
92               "visualRange": "1",
93               "path": "/aai/v15/search/generic-query"
94           },
95           {
96               "serviceName": "_aai-generic-query",
97               "version": "v16",
98               "url": "/aai/v16/search/generic-query",
99               "protocol": "REST",
100               "port": "8446",
101               "enable_ssl": true,
102               "lb_policy":"ip_hash",
103               "visualRange": "1",
104               "path": "/aai/v16/search/generic-query"
105           },
106           {
107               "serviceName": "_aai-nodes-query",
108               "version": "v11",
109               "url": "/aai/v11/search/nodes-query",
110               "protocol": "REST",
111               "port": "8446",
112               "enable_ssl": true,
113               "lb_policy":"ip_hash",
114               "visualRange": "1",
115               "path": "/aai/v11/search/nodes-query"
116           },
117           {
118               "serviceName": "_aai-nodes-query",
119               "version": "v12",
120               "url": "/aai/v12/search/nodes-query",
121               "protocol": "REST",
122               "port": "8446",
123               "enable_ssl": true,
124               "lb_policy":"ip_hash",
125               "visualRange": "1",
126               "path": "/aai/v12/search/nodes-query"
127           },
128           {
129               "serviceName": "_aai-nodes-query",
130               "version": "v13",
131               "url": "/aai/v13/search/nodes-query",
132               "protocol": "REST",
133               "port": "8446",
134               "enable_ssl": true,
135               "lb_policy":"ip_hash",
136               "visualRange": "1",
137               "path": "/aai/v13/search/nodes-query"
138           },
139           {
140               "serviceName": "_aai-nodes-query",
141               "version": "v14",
142               "url": "/aai/v14/search/nodes-query",
143               "protocol": "REST",
144               "port": "8446",
145               "enable_ssl": true,
146               "lb_policy":"ip_hash",
147               "visualRange": "1",
148               "path": "/aai/v14/search/nodes-query"
149           },
150           {
151               "serviceName": "_aai-nodes-query",
152               "version": "v15",
153               "url": "/aai/v15/search/nodes-query",
154               "protocol": "REST",
155               "port": "8446",
156               "enable_ssl": true,
157               "lb_policy":"ip_hash",
158               "visualRange": "1",
159               "path": "/aai/v15/search/nodes-query"
160           },
161           {
162               "serviceName": "_aai-nodes-query",
163               "version": "v16",
164               "url": "/aai/v16/search/nodes-query",
165               "protocol": "REST",
166               "port": "8446",
167               "enable_ssl": true,
168               "lb_policy":"ip_hash",
169               "visualRange": "1",
170               "path": "/aai/v16/search/nodes-query"
171           },
172           {
173               "serviceName": "_aai-query",
174               "version": "v11",
175               "url": "/aai/v11/query",
176               "protocol": "REST",
177               "port": "8446",
178               "enable_ssl": true,
179               "lb_policy":"ip_hash",
180               "visualRange": "1",
181               "path": "/aai/v11/query"
182           },
183           {
184               "serviceName": "_aai-query",
185               "version": "v12",
186               "url": "/aai/v12/query",
187               "protocol": "REST",
188               "port": "8446",
189               "enable_ssl": true,
190               "lb_policy":"ip_hash",
191               "visualRange": "1",
192               "path": "/aai/v12/query"
193           },
194           {
195               "serviceName": "_aai-query",
196               "version": "v13",
197               "url": "/aai/v13/query",
198               "protocol": "REST",
199               "port": "8446",
200               "enable_ssl": true,
201               "lb_policy":"ip_hash",
202               "visualRange": "1",
203               "path": "/aai/v13/query"
204           },
205           {
206               "serviceName": "_aai-query",
207               "version": "v14",
208               "url": "/aai/v14/query",
209               "protocol": "REST",
210               "port": "8446",
211               "enable_ssl": true,
212               "lb_policy":"ip_hash",
213               "visualRange": "1",
214               "path": "/aai/v14/query"
215           },
216           {
217               "serviceName": "_aai-query",
218               "version": "v15",
219               "url": "/aai/v15/query",
220               "protocol": "REST",
221               "port": "8446",
222               "enable_ssl": true,
223               "lb_policy":"ip_hash",
224               "visualRange": "1",
225               "path": "/aai/v15/query"
226           },
227           {
228               "serviceName": "_aai-query",
229               "version": "v16",
230               "url": "/aai/v16/query",
231               "protocol": "REST",
232               "port": "8446",
233               "enable_ssl": true,
234               "lb_policy":"ip_hash",
235               "visualRange": "1",
236               "path": "/aai/v16/query"
237           },
238           {
239               "serviceName": "_aai-named-query",
240               "url": "/aai/search",
241               "protocol": "REST",
242               "port": "8446",
243               "enable_ssl": true,
244               "lb_policy":"ip_hash",
245               "visualRange": "1",
246               "path": "/aai/search"
247           },
248           {
249               "serviceName": "aai-generic-query",
250               "version": "v11",
251               "url": "/aai/v11/search/generic-query",
252               "protocol": "REST",
253               "port": "8446",
254               "enable_ssl": true,
255               "lb_policy":"ip_hash",
256               "visualRange": "1"
257           },
258           {
259               "serviceName": "aai-generic-query",
260               "version": "v12",
261               "url": "/aai/v12/search/generic-query",
262               "protocol": "REST",
263               "port": "8446",
264               "enable_ssl": true,
265               "lb_policy":"ip_hash",
266               "visualRange": "1"
267           },
268           {
269               "serviceName": "aai-generic-query",
270               "version": "v13",
271               "url": "/aai/v13/search/generic-query",
272               "protocol": "REST",
273               "port": "8446",
274               "enable_ssl": true,
275               "lb_policy":"ip_hash",
276               "visualRange": "1"
277           },
278           {
279               "serviceName": "aai-generic-query",
280               "version": "v14",
281               "url": "/aai/v14/search/generic-query",
282               "protocol": "REST",
283               "port": "8446",
284               "enable_ssl": true,
285               "lb_policy":"ip_hash",
286               "visualRange": "1"
287           },
288           {
289               "serviceName": "aai-generic-query",
290               "version": "v15",
291               "url": "/aai/v15/search/generic-query",
292               "protocol": "REST",
293               "port": "8446",
294               "enable_ssl": true,
295               "lb_policy":"ip_hash",
296               "visualRange": "1"
297           },
298           {
299               "serviceName": "aai-generic-query",
300               "version": "v16",
301               "url": "/aai/v16/search/generic-query",
302               "protocol": "REST",
303               "port": "8446",
304               "enable_ssl": true,
305               "lb_policy":"ip_hash",
306               "visualRange": "1"
307           },
308           {
309               "serviceName": "aai-nodes-query",
310               "version": "v11",
311               "url": "/aai/v11/search/nodes-query",
312               "protocol": "REST",
313               "port": "8446",
314               "enable_ssl": true,
315               "lb_policy":"ip_hash",
316               "visualRange": "1"
317           },
318           {
319               "serviceName": "aai-nodes-query",
320               "version": "v12",
321               "url": "/aai/v12/search/nodes-query",
322               "protocol": "REST",
323               "port": "8446",
324               "enable_ssl": true,
325               "lb_policy":"ip_hash",
326               "visualRange": "1"
327           },
328           {
329               "serviceName": "aai-nodes-query",
330               "version": "v13",
331               "url": "/aai/v13/search/nodes-query",
332               "protocol": "REST",
333               "port": "8446",
334               "enable_ssl": true,
335               "lb_policy":"ip_hash",
336               "visualRange": "1"
337           },
338           {
339               "serviceName": "aai-nodes-query",
340               "version": "v14",
341               "url": "/aai/v14/search/nodes-query",
342               "protocol": "REST",
343               "port": "8446",
344               "enable_ssl": true,
345               "lb_policy":"ip_hash",
346               "visualRange": "1"
347           },
348           {
349               "serviceName": "aai-nodes-query",
350               "version": "v15",
351               "url": "/aai/v15/search/nodes-query",
352               "protocol": "REST",
353               "port": "8446",
354               "enable_ssl": true,
355               "lb_policy":"ip_hash",
356               "visualRange": "1"
357           },
358           {
359               "serviceName": "aai-nodes-query",
360               "version": "v16",
361               "url": "/aai/v16/search/nodes-query",
362               "protocol": "REST",
363               "port": "8446",
364               "enable_ssl": true,
365               "lb_policy":"ip_hash",
366               "visualRange": "1"
367           },
368           {
369               "serviceName": "aai-query",
370               "version": "v11",
371               "url": "/aai/v11/query",
372               "protocol": "REST",
373               "port": "8446",
374               "enable_ssl": true,
375               "lb_policy":"ip_hash",
376               "visualRange": "1"
377           },
378           {
379               "serviceName": "aai-query",
380               "version": "v12",
381               "url": "/aai/v12/query",
382               "protocol": "REST",
383               "port": "8446",
384               "enable_ssl": true,
385               "lb_policy":"ip_hash",
386               "visualRange": "1"
387           },
388           {
389               "serviceName": "aai-query",
390               "version": "v13",
391               "url": "/aai/v13/query",
392               "protocol": "REST",
393               "port": "8446",
394               "enable_ssl": true,
395               "lb_policy":"ip_hash",
396               "visualRange": "1"
397           },
398           {
399               "serviceName": "aai-query",
400               "version": "v14",
401               "url": "/aai/v14/query",
402               "protocol": "REST",
403               "port": "8446",
404               "enable_ssl": true,
405               "lb_policy":"ip_hash",
406               "visualRange": "1"
407           },
408           {
409               "serviceName": "aai-query",
410               "version": "v15",
411               "url": "/aai/v15/query",
412               "protocol": "REST",
413               "port": "8446",
414               "enable_ssl": true,
415               "lb_policy":"ip_hash",
416               "visualRange": "1"
417           },
418           {
419               "serviceName": "aai-query",
420               "version": "v16",
421               "url": "/aai/v16/query",
422               "protocol": "REST",
423               "port": "8446",
424               "enable_ssl": true,
425               "lb_policy":"ip_hash",
426               "visualRange": "1"
427           },
428           {
429               "serviceName": "aai-named-query",
430               "url": "/aai/search",
431               "protocol": "REST",
432               "port": "8446",
433               "enable_ssl": true,
434               "lb_policy":"ip_hash",
435               "visualRange": "1"
436           }
437           ]'
438     spec:
439       hostname: aai-traversal
440     {{ if .Values.global.initContainers.enabled }}
441       initContainers:
442       - command:
443       {{  if .Values.global.jobs.createSchema.enabled  }}
444         - /root/job_complete.py
445         args:
446         - --job-name
447         - {{ .Release.Name }}-aai-graphadmin-create-db-schema
448       {{  else }}
449         - /root/ready.py
450         args:
451         - --container-name
452         {{- if .Values.global.cassandra.localCluster }}
453         - aai-cassandra
454         {{- else }}
455         - cassandra
456         {{- end }}
457         - --container-name
458         - aai-schema-service
459       {{  end  }}
460         env:
461         - name: NAMESPACE
462           valueFrom:
463             fieldRef:
464               apiVersion: v1
465               fieldPath: metadata.namespace
466         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
467         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
468         name: {{ include "common.name" . }}-readiness
469     {{ end }}
470       containers:
471       - name: {{ include "common.name" . }}
472         image: "{{ include "common.repository" . }}/{{ .Values.image }}"
473         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
474         env:
475         - name: DISABLE_UPDATE_QUERY
476           value: {{ .Values.config.disableUpdateQuery | quote }}
477         - name: LOCAL_USER_ID
478           value: {{ .Values.global.config.userId | quote }}
479         - name: LOCAL_GROUP_ID
480           value: {{ .Values.global.config.groupId | quote }}
481         volumeMounts:
482         - mountPath: /etc/localtime
483           name: localtime
484           readOnly: true
485         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-realtime.properties
486           name: {{ include "common.fullname" . }}-db-real-conf
487           subPath: janusgraph-realtime.properties
488         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/janusgraph-cached.properties
489           name: {{ include "common.fullname" . }}-db-cached-conf
490           subPath: janusgraph-cached.properties
491         - mountPath: /opt/app/aai-traversal/resources/etc/appprops/aaiconfig.properties
492           name: {{ include "common.fullname" . }}-aaiconfig-conf
493           subPath: aaiconfig.properties
494         - mountPath: /opt/aai/logroot/AAI-GQ
495           name: {{ include "common.fullname" . }}-logs
496         - mountPath: /opt/app/aai-traversal/resources/logback.xml
497           name: {{ include "common.fullname" . }}-log-conf
498           subPath: logback.xml
499         - mountPath: /opt/app/aai-traversal/resources/localhost-access-logback.xml
500           name: {{ include "common.fullname" . }}-localhost-access-log-conf
501           subPath: localhost-access-logback.xml
502         - mountPath: /opt/app/aai-traversal/resources/etc/auth/realm.properties
503           name: {{ include "common.fullname" . }}-realm-conf
504           subPath: realm.properties
505         - mountPath: /opt/app/aai-traversal/resources/aaf/org.onap.aai.keyfile
506           name: {{ include "common.fullname" . }}-aaf-certs
507           subPath: org.onap.aai.keyfile
508         - mountPath: /opt/app/aai-traversal/resources/aaf/bath_config.csv
509           name: {{ include "common.fullname" . }}-aaf-certs
510           subPath: bath_config.csv
511         - mountPath: /opt/app/aai-traversal/resources/aaf/org.onap.aai.props
512           name: {{ include "common.fullname" . }}-aaf-properties
513           subPath: org.onap.aai.props
514         - mountPath: /opt/app/aai-traversal/resources/aaf/org.osaaf.location.props
515           name: {{ include "common.fullname" . }}-aaf-properties
516           subPath: org.osaaf.location.props
517         - mountPath: /opt/app/aai-traversal/resources/aaf/permissions.properties
518           name: {{ include "common.fullname" . }}-aaf-properties
519           subPath: permissions.properties
520         - mountPath: /opt/app/aai-traversal/resources/cadi.properties
521           name: {{ include "common.fullname" . }}-aaf-properties
522           subPath: cadi.properties
523         - mountPath: /opt/app/aai-traversal/resources/aaf/org.onap.aai.p12
524           name: {{ include "common.fullname" . }}-aaf-certs
525           subPath: org.onap.aai.p12
526         - mountPath: /opt/app/aai-traversal/resources/aaf/truststoreONAPall.jks
527           name: aai-common-aai-auth-mount
528           subPath: truststoreONAPall.jks
529         - mountPath: /opt/app/aai-traversal/resources/application.properties
530           name: {{ include "common.fullname" . }}-springapp-conf
531           subPath: application.properties
532           {{ $global := . }}
533           {{ range $job := .Values.global.config.auth.files }}
534         - mountPath: /opt/app/aai-traversal/resources/etc/auth/{{ . }}
535           name: {{ include "common.fullname" $global }}-auth-truststore-sec
536           subPath: {{ . }}
537           {{ end }}
538         ports:
539         - containerPort: {{ .Values.service.internalPort }}
540         - containerPort: {{ .Values.service.internalPort2 }}
541         # disable liveness probe when breakpoints set in debugger
542         # so K8s doesn't restart unresponsive container
543         {{ if .Values.liveness.enabled }}
544         livenessProbe:
545           tcpSocket:
546             port: {{ .Values.service.internalPort }}
547           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
548           periodSeconds: {{ .Values.liveness.periodSeconds }}
549         {{ end }}
550         readinessProbe:
551           tcpSocket:
552             port: {{ .Values.service.internalPort }}
553           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
554           periodSeconds: {{ .Values.readiness.periodSeconds }}
555         resources:
556 {{ include "common.resources" . }}
557       {{- if .Values.nodeSelector }}
558       nodeSelector:
559 {{ toYaml .Values.nodeSelector | indent 8 }}
560       {{- end -}}
561       {{- if .Values.affinity }}
562       affinity:
563 {{ toYaml .Values.affinity | indent 8 }}
564       {{- end }}
565
566       # side car containers
567       - name: filebeat-onap
568         image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
569         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
570         volumeMounts:
571         - mountPath: /usr/share/filebeat/filebeat.yml
572           subPath: filebeat.yml
573           name: filebeat-conf
574         - mountPath: /var/log/onap
575           name: {{ include "common.fullname" . }}-logs
576         - mountPath: /usr/share/filebeat/data
577           name: {{ include "common.fullname" . }}-filebeat
578         resources:
579 {{ include "common.resources" . }}
580       volumes:
581       - name: localtime
582         hostPath:
583           path: /etc/localtime
584       - name: filebeat-conf
585         configMap:
586           name: aai-filebeat
587       - name: {{ include "common.fullname" . }}-logs
588         emptyDir: {}
589       - name: {{ include "common.fullname" . }}-filebeat
590         emptyDir: {}
591       - name: {{ include "common.fullname" . }}-log-conf
592         configMap:
593          name: {{ include "common.fullname" . }}-log
594       - name: {{ include "common.fullname" . }}-localhost-access-log-conf
595         configMap:
596          name: {{ include "common.fullname" . }}-localhost-access-log-configmap
597       - name: {{ include "common.fullname" . }}-db-real-conf
598         configMap:
599          name: {{ include "common.fullname" . }}-db-real-configmap
600       - name: {{ include "common.fullname" . }}-db-cached-conf
601         configMap:
602          name: {{ include "common.fullname" . }}-db-cached-configmap
603       - name: {{ include "common.fullname" . }}-aaiconfig-conf
604         configMap:
605          name: {{ include "common.fullname" . }}-aaiconfig-configmap
606       - name: {{ include "common.fullname" . }}-aaf-properties
607         configMap:
608          name: {{ include "common.fullname" . }}-aaf-props
609       - name: {{ include "common.fullname" . }}-aaf-certs
610         secret:
611          secretName: {{ include "common.fullname" . }}-aaf-keys
612       - name: aai-common-aai-auth-mount
613         secret:
614           secretName: aai-common-aai-auth
615       - name: {{ include "common.fullname" . }}-springapp-conf
616         configMap:
617          name: {{ include "common.fullname" . }}-springapp-configmap
618       - name: {{ include "common.fullname" . }}-realm-conf
619         configMap:
620          name: {{ include "common.fullname" . }}-realm-configmap
621       - name: {{ include "common.fullname" . }}-auth-truststore-sec
622         secret:
623          secretName: aai-common-truststore
624          items:
625           {{ range $job := .Values.global.config.auth.files }}
626            - key: {{ . }}
627              path: {{ . }}
628           {{ end }}
629       restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }}
630       imagePullSecrets:
631       - name: "{{ include "common.namespace" . }}-docker-registry-key"