[DMAAP] DMaaP ServiceMesh compatibility
[oom.git] / kubernetes / aai / components / aai-sparky-be / 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 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #       http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 */}}
18
19 apiVersion: apps/v1
20 kind: Deployment
21 metadata:
22   name: {{ include "common.fullname" . }}
23   namespace: {{ include "common.namespace" . }}
24   labels:
25     app: {{ include "common.name" . }}
26     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
27     release: {{ include "common.release" . }}
28     heritage: {{ .Release.Service }}
29 spec:
30   replicas: {{ .Values.replicaCount }}
31   selector:
32     matchLabels:
33       app: {{ include "common.name" . }}
34   template:
35     metadata:
36       labels:
37         app: {{ include "common.name" . }}
38         release: {{ include "common.release" . }}
39       name: {{ include "common.name" . }}
40     spec:
41       initContainers: {{ include "common.certInitializer.initContainer" . | nindent 6 }}
42       {{- if ( include "common.needTLS" .) }}
43       - command:
44         - sh
45         args:
46         - -c
47         - |
48           echo "*** retrieve Truststore and Keystore password"
49           export $(cat {{ .Values.certInitializer.credsPath }}/mycreds.prop \
50             | xargs -0)
51           if [ -z "$KEYSTORE_PASSWORD" ]
52           then
53             echo " /!\ certificates retrieval failed"
54             exit 1
55           fi
56           echo "*** write them in portal part"
57           cd /config-input
58           for PFILE in `ls -1 .`
59             do
60               envsubst <${PFILE} >/config/${PFILE}
61           done
62         volumeMounts: {{ include "common.certInitializer.volumeMount" . | nindent 8 }}
63         - mountPath: /config-input
64           name: portal-config-input
65         - mountPath: /config
66           name: portal-config
67         image: {{ include "repositoryGenerator.image.envsubst" . }}
68         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
69         name: {{ include "common.name" . }}-update-config
70       {{- end }}
71       - command:
72         - /app/ready.py
73         args:
74         - --container-name
75         - aai
76         env:
77         - name: NAMESPACE
78           valueFrom:
79             fieldRef:
80               apiVersion: v1
81               fieldPath: metadata.namespace
82         image: {{ include "repositoryGenerator.image.readiness" . }}
83         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
84         name: {{ include "common.name" . }}-readiness
85       containers:
86       - name: {{ include "common.name" . }}
87         image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
88         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
89         command:
90         - sh
91         args:
92         - -c
93         - |
94           echo "*** retrieve Truststore and Keystore password"
95           export $(cat {{ .Values.certInitializer.credsPath }}/mycreds.prop \
96             | xargs -0)
97           echo "*** actual launch of AAI Sparky BE"
98           /opt/app/sparky/bin/start.sh
99         volumeMounts: {{ include "common.certInitializer.volumeMount" . | nindent 8 }}
100         - mountPath: /etc/localtime
101           name: localtime
102           readOnly: true
103         - mountPath: /opt/app/sparky/config/auth/csp-cookie-filter.properties
104           name: auth-config
105           subPath: csp-cookie-filter.properties
106         - mountPath: /opt/app/sparky/config/portal/
107           name: portal-config
108         - mountPath: /opt/app/sparky/config/portal/BOOT-INF/classes/
109           name: portal-config-props
110         - mountPath: {{ .Values.log.path }}
111           name: logs
112         - mountPath:  /opt/app/sparky/config/application.properties
113           name: config
114           subPath: application.properties
115         - mountPath:  /opt/app/sparky/config/application-resources.properties
116           name: config
117           subPath: application-resources.properties
118         - mountPath:  /opt/app/sparky/config/application-ssl.properties
119           name: config
120           subPath: application-ssl.properties
121         - mountPath:  /opt/app/sparky/config/application-oxm-default.properties
122           name: config
123           subPath: application-oxm-default.properties
124         - mountPath:  /opt/app/sparky/config/application-oxm-override.properties
125           name: config
126           subPath: application-oxm-override.properties
127         - mountPath:  /opt/app/sparky/config/application-oxm-schema-prod.properties
128           name: config
129           subPath: application-oxm-schema-prod.properties
130         - mountPath:  /opt/app/sparky/config/roles.config
131           name: config
132           subPath: roles.config
133         - mountPath:  /opt/app/sparky/config/users.config
134           name: config
135           subPath: users.config
136         - mountPath:  /opt/app/sparky/config/logging/logback.xml
137           name: config
138           subPath: logback.xml
139         ports:
140         - containerPort: {{ .Values.service.internalPort }}
141         # disable liveness probe when breakpoints set in debugger
142         # so K8s doesn't restart unresponsive container
143         {{- if eq .Values.liveness.enabled true }}
144         livenessProbe:
145           tcpSocket:
146             port: {{ .Values.service.internalPort }}
147           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
148           periodSeconds: {{ .Values.liveness.periodSeconds }}
149         {{ end -}}
150         readinessProbe:
151           tcpSocket:
152             port: {{ .Values.service.internalPort }}
153           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
154           periodSeconds: {{ .Values.readiness.periodSeconds }}
155         resources:
156 {{ include "common.resources" . }}
157       {{- if .Values.nodeSelector }}
158       nodeSelector:
159 {{ toYaml .Values.nodeSelector | indent 8 }}
160       {{- end -}}
161       {{- if .Values.affinity }}
162       affinity:
163 {{ toYaml .Values.affinity | indent 8 }}
164       {{- end }}
165
166       # side car containers
167       {{ include "common.log.sidecar" . | nindent 6 }}
168       serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
169       volumes: {{ include "common.certInitializer.volumes" . | nindent 6 }}
170       - name: localtime
171         hostPath:
172           path: /etc/localtime
173       - name: config
174         configMap:
175           name: {{ include "common.fullname" . }}
176       - name: portal-config
177       {{- if .Values.global.aafEnabled }}
178         emptyDir:
179           medium: Memory
180       - name: portal-config-input
181       {{- end }}
182         configMap:
183           name: {{ include "common.fullname" . }}-portal
184       - name: portal-config-props
185         configMap:
186           name: {{ include "common.fullname" . }}-portal-props
187       - name: auth-config
188         secret:
189           secretName: {{ include "common.fullname" . }}
190       - name: logs
191         emptyDir: {}
192         {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix .)) | nindent 6 }}
193       - name: modeldir
194         emptyDir: {}
195       restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }}
196       imagePullSecrets:
197       - name: "{{ include "common.namespace" . }}-docker-registry-key"