[AAI][BABEL] Remove Hardcoded certificates
[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             - name: CONFIG_HOME
74               value: /opt/app/babel/config
75           volumeMounts:  {{ include "common.certInitializer.volumeMount" . | nindent 10 }}
76           - mountPath: /etc/localtime
77             name: localtime
78             readOnly: true
79           - mountPath: /opt/app/babel/config/application.properties
80             name: config
81             subPath: application.properties
82           - mountPath: /opt/app/babel/config/artifact-generator.properties
83             name: config
84             subPath: artifact-generator.properties
85           - mountPath: /opt/app/babel/config/tosca-mappings.json
86             name: config
87             subPath: tosca-mappings.json
88           - mountPath: /opt/app/babel/config/babel-auth.properties
89             name: config
90             subPath: babel-auth.properties
91           - mountPath: /opt/app/babel/config/auth
92             name: secrets
93           - mountPath: {{ .Values.log.path }}
94             name: logs
95           - mountPath: /opt/app/babel/config/logback.xml
96             name: config
97             subPath: logback.xml
98           resources:
99 {{ include "common.resources" . }}
100       {{- if .Values.nodeSelector }}
101       nodeSelector:
102 {{ toYaml .Values.nodeSelector | indent 8 }}
103       {{- end -}}
104       {{- if .Values.affinity }}
105       affinity:
106 {{ toYaml .Values.affinity | indent 8 }}
107       {{- end }}
108
109         # side car containers
110       {{ include "common.log.sidecar" . | nindent 8 }}
111       serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
112       volumes: {{ include "common.certInitializer.volumes" . | nindent 8 }}
113         - name: localtime
114           hostPath:
115             path: /etc/localtime
116         - name: config
117           configMap:
118             name: {{ include "common.fullname" . }}-configmap
119         - name: secrets
120           secret:
121             secretName: {{ include "common.fullname" . }}-babel-secrets
122         - name: logs
123           emptyDir: {}
124         {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix .)) | nindent 8 }}
125
126       imagePullSecrets:
127       - name: "{{ include "common.namespace" . }}-docker-registry-key"