6c7fa4d85ce428a9b2414bf0acb3523ffca1f24c
[oom.git] / kubernetes / dcaegen2 / components / dcae-cloudify-manager / templates / deployment.yaml
1 {{/*
2 #============LICENSE_START========================================================
3 # ================================================================================
4 # Copyright (c) 2018-2020 AT&T Intellectual Property. All rights reserved.
5 # Modifications Copyright © 2018 Amdocs, Bell Canada
6 # Copyright (c) 2020 J. F. Lucas.  All rights reserved.
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 # ============LICENSE_END=========================================================
20 */}}
21
22 apiVersion: apps/v1
23 kind: Deployment
24 metadata:
25   name: {{ include "common.fullname" . }}
26   namespace: {{ include "common.namespace" . }}
27   labels:
28     app: {{ include "common.name" . }}
29     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
30     release: {{ include "common.release" . }}
31     heritage: {{ .Release.Service }}
32 spec:
33   replicas: 1
34   selector:
35     matchLabels:
36       app: {{ include "common.name" . }}
37   template:
38     metadata:
39       labels:
40         app: {{ include "common.name" . }}
41         release: {{ include "common.release" . }}
42     spec:
43       # host alias allows local 'cfy' command to use https and match
44       # the host name in the certificate
45       hostAliases:
46       - ip: "127.0.0.1"
47         hostnames:
48         - "dcae-cloudify-manager"
49       initContainers:
50       - name: {{ include "common.name" . }}-readiness
51         image: {{ include "repositoryGenerator.image.readiness" . }}
52         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
53         command:
54           - /app/ready.py
55         args:
56           - --container-name
57           - aaf-cm
58           - "-t"
59           - "15"
60         env:
61           - name: NAMESPACE
62             valueFrom:
63               fieldRef:
64                 apiVersion: v1
65                 fieldPath: metadata.namespace
66       - name: {{ include "common.name" . }}-multisite-init
67         image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.multisiteInitImage }}
68         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
69         args:
70           - --namespace
71           - {{ include "common.namespace" . }}
72           - --configmap
73           - {{ .Values.multisiteConfigMapName }}
74       - name: init-tls
75         env:
76           - name: POD_IP
77             valueFrom:
78               fieldRef:
79                 apiVersion: v1
80                 fieldPath: status.podIP
81           - name: aaf_locator_fqdn
82             value: dcae
83         image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.tlsImage }}
84         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
85         resources: {}
86         volumeMounts:
87             - mountPath: /opt/app/osaaf
88               name: tls-info
89       {{- if .Values.persistence.enabled }}
90       - name: remove-lost-found
91         image: {{ include "repositoryGenerator.image.busybox" . }}
92         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
93         volumeMounts:
94         - mountPath: /cfy-persist
95           name: cm-persistent
96         command:
97         - /bin/sh
98         args:
99         - -c
100         - "rm -rf '/cfy-persist/lost+found';"
101       {{- end }}
102       containers:
103         - name: {{ include "common.name" . }}
104           image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
105           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
106           env:
107             - name: REQUESTS_CA_BUNDLE
108               value: "/opt/onap/certs/cacert.pem"
109           resources:
110 {{ include "common.resources" . | indent 12 }}
111           ports:
112           - containerPort: {{ .Values.service.internalPort }}
113           # disable liveness probe when breakpoints set in debugger
114           # so K8s doesn't restart unresponsive container
115           {{- if eq .Values.liveness.enabled true }}
116           livenessProbe:
117             tcpSocket:
118               port: {{ .Values.service.internalPort }}
119             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
120             periodSeconds: {{ .Values.liveness.periodSeconds }}
121             timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
122           {{ end }}
123           readinessProbe:
124             exec:
125               command:
126               - /scripts/readiness-check.sh
127             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
128             periodSeconds: {{ .Values.readiness.periodSeconds }}
129             timeoutSeconds: {{ .Values.readiness.timeoutSeconds }}
130           volumeMounts:
131           - mountPath: /opt/onap/config.txt
132             subPath: config.txt
133             name: {{ include "common.fullname" .}}-config
134             readOnly: true
135           - mountPath: /opt/onap/kube
136             name: {{ include "common.fullname" .}}-kubeconfig
137             readOnly: true
138           - mountPath: /secret
139             name: dcae-token
140             readOnly: true
141           - mountPath: /sys/fs/cgroup
142             name: {{ include "common.fullname" . }}-cgroup
143             readOnly: true
144           - mountPath: /etc/localtime
145             name: localtime
146             readOnly: true
147           - mountPath: /cfy-persist
148             name: cm-persistent
149           - mountPath: /opt/onap/certs
150             name: tls-info
151           - mountPath: /opt/onap/cm-secrets
152             name: cm-secrets
153             readOnly: true
154           securityContext:
155             privileged: True
156       volumes:
157         - name: {{ include "common.fullname" . }}-config
158           configMap:
159             name: {{ include "common.fullname" . }}-configmap
160         - name: {{ include "common.fullname" .}}-kubeconfig
161           configMap:
162             name: {{ .Values.multisiteConfigMapName }}
163         - name: dcae-token
164           secret:
165             secretName: dcae-token
166         - name: {{ include "common.fullname" . }}-cgroup
167           hostPath:
168             path: /sys/fs/cgroup
169         - name: localtime
170           hostPath:
171             path: /etc/localtime
172         - name: cm-persistent
173         {{- if .Values.persistence.enabled }}
174           persistentVolumeClaim:
175             claimName: {{ include "common.fullname" . }}-data
176         {{- else }}
177           emptyDir: {}
178         {{- end }}
179         - emptyDir: {}
180           name: tls-info
181         - name: cm-secrets
182           secret:
183             secretName: {{ include "common.secret.getSecretNameFast" (dict "global" . "uid" "cm-pass") }}
184       imagePullSecrets:
185       - name: "{{ include "common.namespace" . }}-docker-registry-key"