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