[AAI] Remove AAF/TLS config from charts
[oom.git] / kubernetes / aai / components / aai-resources / templates / deployment.yaml
1 {{/*
2 # Copyright (c) 2017 Amdocs, Bell Canada
3 # Modifications Copyright (c) 2018 AT&T
4 # Modifications Copyright (c) 2020 Nokia
5 # Modifications Copyright (c) 2021 Orange
6 # Modifications Copyright © 2023 Nordix Foundation
7 #
8 # Licensed under the Apache License, Version 2.0 (the "License");
9 # you may not use this file except in compliance with the License.
10 # You may obtain a copy of the License at
11 #
12 #       http://www.apache.org/licenses/LICENSE-2.0
13 #
14 # Unless required by applicable law or agreed to in writing, software
15 # distributed under the License is distributed on an "AS IS" BASIS,
16 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 # See the License for the specific language governing permissions and
18 # limitations under the License.
19 */}}
20
21 apiVersion: apps/v1
22 kind: Deployment
23 metadata:
24   name: {{ include "common.fullname" . }}
25   namespace: {{ include "common.namespace" . }}
26   labels:
27     app: {{ include "common.name" . }}
28     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
29     release: {{ include "common.release" . }}
30     heritage: {{ .Release.Service }}
31 spec:
32   replicas: {{ .Values.replicaCount }}
33   minReadySeconds: {{ .Values.minReadySeconds }}
34   strategy:
35     type: {{ .Values.updateStrategy.type }}
36     rollingUpdate:
37       maxUnavailable: {{ .Values.updateStrategy.maxUnavailable }}
38       maxSurge: {{ .Values.updateStrategy.maxSurge }}
39   selector:
40     matchLabels:
41       app: {{ include "common.name" . }}
42   template:
43     metadata:
44       labels:
45         app: {{ include "common.name" . }}
46         release: {{ include "common.release" . }}
47       name: {{ include "common.name" . }}
48       annotations:
49         checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
50       {{- if .Values.global.msbEnabled }}
51         {{ $values := .Values }}
52         msb.onap.org/service-info: '[
53         {{- range $api_endpoint := $values.aai_enpoints -}}
54           {{- range $api_version := $values.api_list }}
55           {
56               "serviceName": "_{{ $api_endpoint.name }}",
57               "version": "v{{ $api_version }}",
58               "url": "/aai/v{{ $api_version }}/{{ $api_endpoint.url }}",
59               "protocol": "REST",
60               "port": "8447",
61               "enable_ssl": true,
62               "lb_policy":"ip_hash",
63               "visualRange": "1",
64               "path": "/aai/v{{ $api_version }}/{{ $api_endpoint.url }}"
65           },
66           {
67               "serviceName": "{{ $api_endpoint.name }}",
68               "version": "v{{ $api_version }}",
69               "url": "/aai/v{{ $api_version }}/{{ $api_endpoint.url }}",
70               "protocol": "REST",
71               "port": "8447",
72               "enable_ssl": true,
73               "lb_policy":"ip_hash",
74               "visualRange": "1"
75           },
76           {{- end }}
77         {{- end }}
78           ]'
79       {{- end }}
80     spec:
81       hostname: aai-resources
82       terminationGracePeriodSeconds: {{ .Values.service.terminationGracePeriodSeconds }}
83       initContainers:
84       - name: {{ include "common.name" . }}-readiness
85         command:
86         - /app/ready.py
87         args:
88         {{- if .Values.global.jobs.migration.enabled }}
89         - --job-name
90         - {{ include "common.release" . }}-aai-graphadmin-migration
91         {{- else }}
92           {{- if .Values.global.jobs.createSchema.enabled  }}
93         - --job-name
94         - {{ include "common.release" . }}-aai-graphadmin-create-db-schema
95           {{- else }}
96         - --container-name
97             {{- if .Values.global.cassandra.localCluster }}
98         - aai-cassandra
99             {{- else }}
100         - cassandra
101             {{- end }}
102         - --container-name
103         - aai-schema-service
104           {{- end }}
105         {{- end }}
106         env:
107         - name: NAMESPACE
108           valueFrom:
109             fieldRef:
110               apiVersion: v1
111               fieldPath: metadata.namespace
112         image: {{ include "repositoryGenerator.image.readiness" . }}
113         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
114       containers:
115       - name: {{ include "common.name" . }}
116         image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
117         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
118         command:
119         - sh
120         args:
121         - -c
122         - |
123           echo "*** actual launch of AAI Resources"
124           /bin/bash /opt/app/aai-resources/docker-entrypoint.sh
125         env:
126         - name: LOCAL_USER_ID
127           value: {{ .Values.global.config.userId | quote }}
128         - name: LOCAL_GROUP_ID
129           value: {{ .Values.global.config.groupId | quote }}
130         - name: INTERNAL_PORT_1
131           value: {{ .Values.service.internalPort | quote }}
132         - name: INTERNAL_PORT_2
133           value: {{ .Values.service.internalPort2 | quote }}
134         - name: INTERNAL_PORT_3
135           value: {{ .Values.service.internalPort3 | quote }}
136         volumeMounts:
137         - mountPath: /etc/localtime
138           name: localtime
139           readOnly: true
140         - mountPath: /opt/app/aai-resources/resources/etc/appprops/janusgraph-realtime.properties
141           name: {{ include "common.fullname" . }}-config
142           subPath: janusgraph-realtime.properties
143         - mountPath: /opt/app/aai-resources/resources/etc/appprops/janusgraph-cached.properties
144           name: {{ include "common.fullname" . }}-config
145           subPath: janusgraph-cached.properties
146         - mountPath: /opt/app/aai-resources/resources/etc/appprops/aaiconfig.properties
147           name: {{ include "common.fullname" . }}-config
148           subPath: aaiconfig.properties
149         - mountPath: /opt/aai/logroot/AAI-RES
150           name: logs
151         - mountPath: /opt/app/aai-resources/resources/logback.xml
152           name: {{ include "common.fullname" . }}-config
153           subPath: logback.xml
154         - mountPath: /opt/app/aai-resources/resources/localhost-access-logback.xml
155           name: {{ include "common.fullname" . }}-config
156           subPath: localhost-access-logback.xml
157         - mountPath: /opt/app/aai-resources/resources/etc/auth/realm.properties
158           name: {{ include "common.fullname" . }}-config
159           subPath: realm.properties
160         - mountPath: /opt/app/aai-resources/resources/application.properties
161           name: {{ include "common.fullname" . }}-config
162           subPath: application.properties
163         - mountPath: /opt/app/aai-resources/resources/application-keycloak.properties
164           name: {{ include "common.fullname" . }}-config
165           subPath: application-keycloak.properties
166         ports:
167         - containerPort: {{ .Values.service.internalPort }}
168         - containerPort: {{ .Values.service.internalPort2 }}
169         - containerPort: {{ .Values.service.internalPort3 }}
170         lifecycle:
171           # wait for active requests (long-running tasks) to be finished
172           # Before the SIGTERM is invoked, Kubernetes exposes a preStop hook in the Pod.
173           preStop:
174             exec:
175               command:
176                 - sh
177                 - -c
178                 - |
179                   while (netstat -an | grep ESTABLISHED | grep -e $INTERNAL_PORT_1 -e $INTERNAL_PORT_2)
180                   do sleep 10
181                   done
182         # disable liveness probe when breakpoints set in debugger
183         # so K8s doesn't restart unresponsive container
184         {{- if .Values.liveness.enabled }}
185         livenessProbe:
186           httpGet:
187             path: /aai/util/echo?action=checkDB
188             port: {{ .Values.service.internalPort }}
189             scheme: HTTP
190             httpHeaders:
191             - name: X-FromAppId
192               value: LivenessCheck
193             - name: X-TransactionId
194               value: LiveCheck_TID
195             - name: Accept
196               value: application/json
197           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
198           periodSeconds: {{ .Values.liveness.periodSeconds }}
199         {{- end }}
200         readinessProbe:
201           httpGet:
202             path: /aai/util/echo?action=checkDB
203             port: {{ .Values.service.internalPort }}
204             scheme: HTTP
205             httpHeaders:
206             - name: X-FromAppId
207               value: ReadinessCheck
208             - name: X-TransactionId
209               value: ReadinessCheck_TID
210             - name: Accept
211               value: application/json
212           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
213           periodSeconds: {{ .Values.readiness.periodSeconds }}
214         resources: {{ include "common.resources" . | nindent 10 }}
215       {{- if .Values.nodeSelector }}
216       nodeSelector: {{ toYaml .Values.nodeSelector | nindent 8 }}
217       {{- end }}
218       {{- if .Values.affinity }}
219       affinity: {{ toYaml .Values.affinity | nindent 8 }}
220       {{- end }}
221       # side car containers
222       {{ include "common.log.sidecar" . | nindent 6 }}
223       serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
224       volumes:
225       - name: localtime
226         hostPath:
227           path: /etc/localtime
228       - name: logs
229         emptyDir: {}
230       {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix .)) | nindent 6 }}
231       - name: {{ include "common.fullname" . }}-config
232         configMap:
233           name: {{ include "common.fullname" . }}
234       restartPolicy: {{ .Values.restartPolicy }}
235       imagePullSecrets:
236       - name: "{{ include "common.namespace" . }}-docker-registry-key"