d843290be12c84f5fbe0d53883efda0d6a6b0a1a
[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" . }}-multisite-init
45         image: {{ include "common.repository" . }}/{{ .Values.multisiteInitImage }}
46         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
47         args:
48           - --namespace
49           - {{ include "common.namespace" . }}
50           - --configmap
51           - {{ .Values.multisiteConfigMapName }}
52         restartPolicy: Never
53       - name: init-tls
54         env:
55           - name: POD_IP
56             valueFrom:
57               fieldRef:
58                 apiVersion: v1
59                 fieldPath: status.podIP
60         image: {{ .Values.global.tlsRepository }}/{{ .Values.global.tlsImage }}
61         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
62         resources: {}
63         volumeMounts:
64             - mountPath: /opt/tls/shared
65               name: tls-info
66       containers:
67         - name: {{ include "common.name" . }}
68           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
69           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
70           env:
71             - name: REQUESTS_CA_BUNDLE
72               value: "/opt/onap/certs/cacert.pem"
73           resources:
74 {{ include "common.resources" . | indent 12 }}
75           ports:
76           - containerPort: {{ .Values.service.internalPort }}
77           # disable liveness probe when breakpoints set in debugger
78           # so K8s doesn't restart unresponsive container
79           {{- if eq .Values.liveness.enabled true }}
80           livenessProbe:
81             tcpSocket:
82               port: {{ .Values.service.internalPort }}
83             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
84             periodSeconds: {{ .Values.liveness.periodSeconds }}
85           {{ end }}
86           readinessProbe:
87             exec:
88               command:
89               - /scripts/readiness-check.sh
90             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
91             periodSeconds: {{ .Values.readiness.periodSeconds }}
92           volumeMounts:
93           - mountPath: /opt/onap/config.txt
94             subPath: config.txt
95             name: {{ include "common.fullname" .}}-config
96             readOnly: true
97           - mountPath: /opt/onap/kube
98             name: {{ include "common.fullname" .}}-kubeconfig
99             readOnly: true
100           - mountPath: /secret
101             name: dcae-token
102             readOnly: true
103           - mountPath: /sys/fs/cgroup
104             name: {{ include "common.fullname" . }}-cgroup
105             readOnly: true
106           - mountPath: /etc/localtime
107             name: localtime
108             readOnly: true
109           - mountPath: /cfy-persist
110             name: cm-persistent
111           - mountPath: /opt/onap/certs
112             name: tls-info
113           securityContext:
114             privileged: True
115       volumes:
116         - name: {{ include "common.fullname" . }}-config
117           configMap:
118             name: {{ include "common.fullname" . }}-configmap
119         - name: {{ include "common.fullname" .}}-kubeconfig
120           configMap:
121             name: {{ .Values.multisiteConfigMapName }}
122         - name: dcae-token
123           secret:
124             secretName: dcae-token
125         - name: {{ include "common.fullname" . }}-cgroup
126           hostPath:
127             path: /sys/fs/cgroup
128         - name: localtime
129           hostPath:
130             path: /etc/localtime
131         - name: cm-persistent
132         {{- if .Values.persistence.enabled }}
133           persistentVolumeClaim:
134             claimName: {{ include "common.fullname" . }}-data
135         {{- else }}
136           emptyDir: {}
137         {{- end }}
138         - emptyDir: {}
139           name: tls-info
140       imagePullSecrets:
141       - name: "{{ include "common.namespace" . }}-docker-registry-key"