Merge "[DMAAP] DMaaP ServiceMesh compatibility"
[oom.git] / kubernetes / sdc / components / sdc-wfd-fe / templates / deployment.yaml
1 {{/*
2 # Copyright © 2018 Amdocs, Bell Canada
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
17 apiVersion: apps/v1
18 kind: Deployment
19 metadata:
20   name: {{ include "common.fullname" . }}
21   namespace: {{ include "common.namespace" . }}
22   labels:
23     app: {{ include "common.name" . }}
24     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
25     release: {{ include "common.release" . }}
26     heritage: {{ .Release.Service }}
27 spec:
28   selector:
29     matchLabels:
30       app: {{ include "common.name" . }}
31   replicas: {{ .Values.replicaCount }}
32   template:
33     metadata:
34       labels:
35         app: {{ include "common.name" . }}
36         release: {{ include "common.release" . }}
37     spec:
38       initContainers: {{ include "common.certInitializer.initContainer" . | nindent 6 }}
39       - name: {{ include "common.name" . }}-readiness
40         command:
41         - /app/ready.py
42         args:
43         - --container-name
44         - "sdc-wfd-be"
45         env:
46         - name: NAMESPACE
47           valueFrom:
48             fieldRef:
49               apiVersion: v1
50               fieldPath: metadata.namespace
51         image: {{ include "repositoryGenerator.image.readiness" . }}
52         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
53         resources:
54           limits:
55             cpu: 100m
56             memory: 100Mi
57           requests:
58             cpu: 3m
59             memory: 20Mi
60       {{- if .Values.global.aafEnabled }}
61       - name: {{ include "common.fullname" . }}-move-cert
62         command:
63           - /bin/sh
64         args:
65           - -c
66           - |
67             cp {{ .Values.certInitializer.credsPath }}/{{ .Values.certInitializer.keystoreFile }} /sdc-certs/{{ .Values.certInitializer.keystoreFile }}
68             cp {{ .Values.certInitializer.credsPath }}/{{ .Values.certInitializer.truststoreFile }} /sdc-certs/{{ .Values.certInitializer.truststoreFile }}
69             cp {{ .Values.certInitializer.credsPath }}/mycreds.prop /sdc-certs/mycreds.prop
70         image: {{ include "repositoryGenerator.image.busybox" . }}
71         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
72         volumeMounts: {{ include "common.certInitializer.volumeMount" . | nindent 10 }}
73           - name: sdc-certs
74             mountPath: /sdc-certs
75         resources:
76           limits:
77             cpu: 100m
78             memory: 100Mi
79           requests:
80             cpu: 3m
81             memory: 20Mi
82       {{- end }}
83       containers:
84         - name: {{ include "common.name" . }}
85           image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
86           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
87           {{- if .Values.global.aafEnabled }}
88           command:
89           - sh
90           args:
91           - "-c"
92           - |
93             export $(grep '^c' /sdc-certs/mycreds.prop | xargs -0)
94             export KEYSTORE_PASS=$cadi_keystore_password_p12
95             export TRUSTSTORE_PASS=$cadi_truststore_password
96             export KEYSTORE_PATH=/etc/{{ .Values.certInitializer.keystoreFile }}
97             export TRUSTSTORE_PATH=/etc/{{ .Values.certInitializer.truststoreFile }}
98             ./startup.sh
99           {{- end }}
100           ports:
101           - containerPort: {{ (eq "true" (include "common.needTLS" .)) | ternary .Values.service.internalPort2 .Values.service.internalPort }}
102           {{ if .Values.liveness.enabled }}
103           livenessProbe:
104             tcpSocket:
105               port: {{ (eq "true" (include "common.needTLS" .)) | ternary .Values.service.internalPort2 .Values.service.internalPort }}
106             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
107             periodSeconds: {{ .Values.liveness.periodSeconds }}
108             successThreshold: {{ .Values.liveness.successThreshold }}
109             failureThreshold: {{ .Values.liveness.failureThreshold }}
110           {{ end }}
111           readinessProbe:
112             tcpSocket:
113               port: {{ (eq "true" (include "common.needTLS" .)) | ternary .Values.service.internalPort2 .Values.service.internalPort }}
114             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
115             periodSeconds: {{ .Values.readiness.periodSeconds }}
116             successThreshold: {{ .Values.readiness.successThreshold }}
117             failureThreshold: {{ .Values.readiness.failureThreshold }}
118           startupProbe:
119             tcpSocket:
120               port: {{ (eq "true" (include "common.needTLS" .)) | ternary .Values.service.internalPort2 .Values.service.internalPort }}
121             initialDelaySeconds: {{ .Values.startup.initialDelaySeconds }}
122             periodSeconds: {{ .Values.startup.periodSeconds }}
123             successThreshold: {{ .Values.startup.successThreshold }}
124             failureThreshold: {{ .Values.startup.failureThreshold }}
125           env:
126           - name: ENVNAME
127             value: {{ .Values.env.name }}
128           - name: JAVA_OPTIONS
129             value: {{ .Values.config.javaOptions }}
130           - name: BACKEND
131             value: "{{ (eq "true" (include "common.needTLS" .)) | ternary .Values.config.backendServerURL.https .Values.config.backendServerURL.http }}"
132           - name: IS_HTTPS
133             value: "{{ (eq "true" (include "common.needTLS" .)) | ternary "true" "false" }}"
134             {{- if and (include "common.needTLS" .) (eq .Values.security.isDefaultStore false) }}
135           - name: TRUST_ALL
136             value: "{{ .Values.config.isTrustAll}}"
137             {{- end }}
138           volumeMounts:
139           - name: {{ include "common.fullname" . }}-localtime
140             mountPath: /etc/localtime
141             readOnly: true
142           {{- if .Values.global.aafEnabled }}
143           - name: sdc-certs
144             mountPath: /sdc-certs/mycreds.prop
145             subPath: mycreds.prop
146           - name: sdc-certs
147             mountPath: /var/lib/jetty/etc/{{ .Values.certInitializer.keystoreFile }}
148             subPath: {{ .Values.certInitializer.keystoreFile }}
149           - name: sdc-certs
150             mountPath: /var/lib/jetty/etc/{{ .Values.certInitializer.truststoreFile }}
151             subPath: {{ .Values.certInitializer.truststoreFile }}
152           {{ end }}
153           resources: {{ include "common.resources" . | nindent 12 }}
154         {{- if .Values.nodeSelector }}
155         nodeSelector:
156 {{ toYaml .Values.nodeSelector | indent 10 }}
157         {{- end -}}
158         {{- if .Values.affinity }}
159         affinity:
160 {{ toYaml .Values.affinity | indent 10 }}
161         {{- end }}
162         # side car containers
163         {{ include "common.log.sidecar" . | nindent 8 }}
164       serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
165       volumes: {{ include "common.certInitializer.volumes" . | nindent 8 }}
166         - name: {{ include "common.fullname" . }}-localtime
167           hostPath:
168             path: /etc/localtime
169         {{- if .Values.global.aafEnabled }}
170         - name: sdc-certs
171           emptyDir:
172             medium: "Memory"
173         {{- end }}
174         {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix . )) | nindent 8 }}
175         - name: logs
176           emptyDir: {}
177       imagePullSecrets:
178       - name: "{{ include "common.namespace" . }}-docker-registry-key"