38a4e484c31cf078a4c43ed2c8a900f02b86c4e4
[oom.git] / kubernetes / aai / components / aai-babel / templates / deployment.yaml
1 {{/*
2 # Copyright © 2018 Amdocs, AT&T
3 # Modifications Copyright © 2018 Bell Canada
4 # Modifications Copyright © 2020,2021 Orange
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   selector:
31     matchLabels:
32       app: {{ include "common.name" . }}
33   replicas: {{ .Values.replicaCount }}
34   template:
35     metadata:
36       labels:
37         app: {{ include "common.name" . }}
38         release: {{ include "common.release" . }}
39     spec:
40       initContainers:  {{ include "common.certInitializer.initContainer" . | nindent 6 }}
41       containers:
42         - name: {{ include "common.name" . }}
43           image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
44           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
45           {{- if .Values.global.aafEnabled }}
46           command:
47           - sh
48           args:
49           - -c
50           - |
51             echo "*** retrieve Truststore and Keystore password"
52             export $(cat {{ .Values.certInitializer.credsPath }}/mycreds.prop | xargs -0)
53             echo "*** actual launch of AAI Babel"
54             /bin/bash /opt/app/babel/bin/start.sh
55           {{- end }}
56           ports:
57           - containerPort: {{ .Values.service.internalPort }}
58           # disable liveness probe when breakpoints set in debugger
59           # so K8s doesn't restart unresponsive container
60           {{ if .Values.liveness.enabled }}
61           livenessProbe:
62             tcpSocket:
63               port: {{ .Values.service.internalPort }}
64             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
65             periodSeconds: {{ .Values.liveness.periodSeconds }}
66           {{ end }}
67           readinessProbe:
68             tcpSocket:
69               port: {{ .Values.service.internalPort }}
70             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
71             periodSeconds: {{ .Values.readiness.periodSeconds }}
72           env:
73             {{- if not (include "common.needTLS" .) }}
74             - name: KEY_STORE_PASSWORD
75               value: NotUsed
76             {{- end }}
77             - name: CONFIG_HOME
78               value: /opt/app/babel/config
79           volumeMounts:  {{ include "common.certInitializer.volumeMount" . | nindent 10 }}
80           - mountPath: /etc/localtime
81             name: localtime
82             readOnly: true
83           - mountPath: /opt/app/babel/config/application.properties
84             name: config
85             subPath: application.properties
86           - mountPath: /opt/app/babel/config/artifact-generator.properties
87             name: config
88             subPath: artifact-generator.properties
89           - mountPath: /opt/app/babel/config/tosca-mappings.json
90             name: config
91             subPath: tosca-mappings.json
92           - mountPath: /opt/app/babel/config/babel-auth.properties
93             name: config
94             subPath: babel-auth.properties
95           - mountPath: /opt/app/babel/config/auth
96             name: secrets
97           - mountPath: {{ .Values.log.path }}
98             name: logs
99           - mountPath: /opt/app/babel/config/logback.xml
100             name: config
101             subPath: logback.xml
102           resources:
103 {{ include "common.resources" . }}
104       {{- if .Values.nodeSelector }}
105       nodeSelector:
106 {{ toYaml .Values.nodeSelector | indent 8 }}
107       {{- end -}}
108       {{- if .Values.affinity }}
109       affinity:
110 {{ toYaml .Values.affinity | indent 8 }}
111       {{- end }}
112
113         # side car containers
114       {{ include "common.log.sidecar" . | nindent 8 }}
115       serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
116       volumes: {{ include "common.certInitializer.volumes" . | nindent 8 }}
117         - name: localtime
118           hostPath:
119             path: /etc/localtime
120         - name: config
121           configMap:
122             name: {{ include "common.fullname" . }}-configmap
123         - name: secrets
124           secret:
125             secretName: {{ include "common.fullname" . }}-babel-secrets
126         - name: logs
127           emptyDir: {}
128         {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix .)) | nindent 8 }}
129
130       imagePullSecrets:
131       - name: "{{ include "common.namespace" . }}-docker-registry-key"