[CASSANDRA] Change values to makre Cassandra instances more stable
[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-2021 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       # Cloudify requires a fixed hostname across restarts
50       hostname: dcae-cloudify-manager
51       initContainers:
52       - name: {{ include "common.name" . }}-readiness
53         image: {{ include "repositoryGenerator.image.readiness" . }}
54         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
55         command:
56           - /app/ready.py
57         args:
58           - --container-name
59           - aaf-cm
60           - --container-name
61           - consul-server
62           - "-t"
63           - "15"
64         env:
65           - name: NAMESPACE
66             valueFrom:
67               fieldRef:
68                 apiVersion: v1
69                 fieldPath: metadata.namespace
70       - name: {{ include "common.name" . }}-multisite-init
71         image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.multisiteInitImage }}
72         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
73         args:
74           - --namespace
75           - {{ include "common.namespace" . }}
76           - --configmap
77           - {{ .Values.multisiteConfigMapName }}
78       - name: init-consul
79         image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.consulLoaderImage }}
80         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
81         args:
82         - --key
83         - k8s-plugin|/plugin-configs/k8s-plugin.json
84         - --key
85         - dmaap-plugin|/plugin-configs/dmaap-plugin.json
86         resources: {}
87         volumeMounts:
88           - mountPath: /plugin-configs
89             name: plugin-configs
90       - name: init-tls
91         env:
92           - name: POD_IP
93             valueFrom:
94               fieldRef:
95                 apiVersion: v1
96                 fieldPath: status.podIP
97           - name: aaf_locator_fqdn
98             value: dcae
99         image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.tlsImage }}
100         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
101         resources: {}
102         volumeMounts:
103             - mountPath: /opt/app/osaaf
104               name: tls-info
105       {{- if .Values.persistence.enabled }}
106       - name: remove-lost-found
107         image: {{ include "repositoryGenerator.image.busybox" . }}
108         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
109         volumeMounts:
110         - mountPath: /cfy-persist
111           name: cm-persistent
112         command:
113         - /bin/sh
114         args:
115         - -c
116         - "rm -rf '/cfy-persist/lost+found';"
117       {{- end }}
118       containers:
119         - name: {{ include "common.name" . }}
120           image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
121           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
122           env:
123             - name: REQUESTS_CA_BUNDLE
124               value: "/opt/onap/certs/cacert.pem"
125           resources:
126 {{ include "common.resources" . | indent 12 }}
127           ports:
128           - containerPort: {{ .Values.service.internalPort }}
129           # disable liveness probe when breakpoints set in debugger
130           # so K8s doesn't restart unresponsive container
131           {{- if eq .Values.liveness.enabled true }}
132           livenessProbe:
133             tcpSocket:
134               port: {{ .Values.service.internalPort }}
135             initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
136             periodSeconds: {{ .Values.liveness.periodSeconds }}
137             timeoutSeconds: {{ .Values.liveness.timeoutSeconds }}
138           {{ end }}
139           readinessProbe:
140             exec:
141               command:
142               - /scripts/readiness-check.sh
143             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
144             periodSeconds: {{ .Values.readiness.periodSeconds }}
145             timeoutSeconds: {{ .Values.readiness.timeoutSeconds }}
146           volumeMounts:
147           - mountPath: /opt/onap/config.txt
148             subPath: config.txt
149             name: {{ include "common.fullname" .}}-config
150             readOnly: true
151           - mountPath: /opt/onap/kube
152             name: {{ include "common.fullname" .}}-kubeconfig
153             readOnly: true
154           - mountPath: /secret
155             name: dcae-token
156             readOnly: true
157           - mountPath: /sys/fs/cgroup
158             name: {{ include "common.fullname" . }}-cgroup
159             readOnly: true
160           - mountPath: /etc/localtime
161             name: localtime
162             readOnly: true
163           - mountPath: /cfy-persist
164             name: cm-persistent
165           - mountPath: /opt/onap/certs
166             name: tls-info
167           - mountPath: /opt/onap/cm-secrets
168             name: cm-secrets
169             readOnly: true
170           securityContext:
171             privileged: True
172       serviceAccountName: {{ include "common.fullname" (dict "suffix" "create" "dot" . )}}
173       volumes:
174         - name: {{ include "common.fullname" . }}-config
175           configMap:
176             name: {{ include "common.fullname" . }}-configmap
177         - name: {{ include "common.fullname" .}}-kubeconfig
178           configMap:
179             name: {{ .Values.multisiteConfigMapName }}
180         - name: plugin-configs
181           configMap:
182             name: {{ include "common.fullname" . }}-plugins
183         - name: dcae-token
184           secret:
185             secretName: dcae-token
186         - name: {{ include "common.fullname" . }}-cgroup
187           hostPath:
188             path: /sys/fs/cgroup
189         - name: localtime
190           hostPath:
191             path: /etc/localtime
192         - name: cm-persistent
193         {{- if .Values.persistence.enabled }}
194           persistentVolumeClaim:
195             claimName: {{ include "common.fullname" . }}-data
196         {{- else }}
197           emptyDir: {}
198         {{- end }}
199         - emptyDir: {}
200           name: tls-info
201         - name: cm-secrets
202           secret:
203             secretName: {{ include "common.secret.getSecretNameFast" (dict "global" . "uid" "cm-pass") }}
204       imagePullSecrets:
205       - name: "{{ include "common.namespace" . }}-docker-registry-key"