move AAF cert to APPC helm chart
[oom.git] / kubernetes / appc / templates / statefulset.yaml
1 # Copyright © 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #       http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 apiVersion: apps/v1beta1
16 kind: StatefulSet
17 metadata:
18   name: {{ include "common.fullname" . }}
19   namespace: {{ include "common.namespace" . }}
20   labels:
21     app: {{ include "common.name" . }}
22     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
23     release: {{ include "common.release" . }}
24     heritage: {{ .Release.Service }}
25 spec:
26   serviceName: "{{ .Values.service.name }}-cluster"
27   replicas: {{ .Values.replicaCount }}
28   podManagementPolicy: Parallel
29   template:
30     metadata:
31       labels:
32         app: {{ include "common.name" . }}
33         release: {{ include "common.release" . }}
34     spec:
35       initContainers:
36       - command:
37         - sh
38         args:
39         - -c
40         - "cd /config-input && for PFILE in `find . -not -type d | grep -v -F ..`; do envsubst <${PFILE} >/config/${PFILE}; chmod 0755 /config/${PFILE}; done"
41         env:
42         - name: APPC_DB_USER
43           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "appcdb-user-creds" "key" "login") | indent 10 }}
44         - name: APPC_DB_PASSWD
45           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "appcdb-user-creds" "key" "password") | indent 10 }}
46         - name: SDNC_DB_USER
47           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "sdncdb-user-creds" "key" "login") | indent 10 }}
48         - name: SDNC_DB_PASSWD
49           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "sdncdb-user-creds" "key" "password") | indent 10 }}
50         volumeMounts:
51         - mountPath: /config-input/appc-data-properties
52           name: onap-appc-data-properties-input
53         - mountPath: /config-input/appc-svclogic-config
54           name: onap-appc-svclogic-config-input
55         - mountPath: /config-input/sdnc-data-properties
56           name: onap-sdnc-data-properties-input
57         - mountPath: /config-input/sdnc-svclogic-config
58           name: onap-sdnc-svclogic-config-input
59         - mountPath: /config/appc-data-properties
60           name: onap-appc-data-properties
61         - mountPath: /config/appc-svclogic-config
62           name: onap-appc-svclogic-config
63         - mountPath: /config/sdnc-data-properties
64           name: onap-sdnc-data-properties
65         - mountPath: /config/sdnc-svclogic-config
66           name: onap-sdnc-svclogic-config
67         image: "{{ .Values.global.envsubstImage }}"
68         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
69         name: {{ include "common.name" . }}-update-config
70
71       - name: {{ include "common.name" . }}-readiness
72         command:
73         - /root/ready.py
74         args:
75         - --container-name
76         - {{.Values.config.mariadbGaleraContName}}
77         env:
78         - name: NAMESPACE
79           valueFrom:
80             fieldRef:
81               apiVersion: v1
82               fieldPath: metadata.namespace
83         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
84         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
85       - name: {{ include "common.name" . }}-chown
86         image: "busybox"
87         command: ["sh", "-c", "chown -R {{ .Values.config.odlUid }}:{{ .Values.config.odlGid}} {{ .Values.persistence.mdsalPath }}"]
88         volumeMounts:
89           - mountPath: {{ .Values.persistence.mdsalPath }}
90             name: {{ include "common.fullname" . }}-data
91       containers:
92         - name: {{ include "common.name" . }}
93           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
94           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
95           command:
96           - /opt/appc/bin/startODL.sh
97           ports:
98           - containerPort: {{ .Values.service.internalPort }}
99           - containerPort: {{ .Values.service.externalPort2 }}
100           readinessProbe:
101             tcpSocket:
102                port: {{ .Values.service.internalPort }}
103             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
104             periodSeconds: {{ .Values.readiness.periodSeconds }}
105           env:
106             - name: MYSQL_ROOT_PASSWORD
107               {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-root-pass" "key" "password") | indent 14}}
108             - name: APPC_DB_USER
109               {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "appcdb-user-creds" "key" "login") | indent 14 }}
110             - name: APPC_DB_PASSWD
111               {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "appcdb-user-creds" "key" "password") | indent 14 }}
112             - name: SDNC_DB_USER
113               {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "sdncdb-user-creds" "key" "login") | indent 14 }}
114             - name: SDNC_DB_PASSWD
115               {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "sdncdb-user-creds" "key" "password") | indent 14 }}
116             - name: SDNC_CONFIG_DIR
117               value: "{{ .Values.config.configDir }}"
118             - name: APPC_CONFIG_DIR
119               value: "{{ .Values.config.configDir }}"
120             - name: DMAAP_TOPIC_ENV
121               value: "{{ .Values.config.dmaapTopic }}"
122             - name: ENABLE_AAF
123               value: "{{ .Values.config.enableAAF }}"
124             - name: ENABLE_ODL_CLUSTER
125               value: "{{ .Values.config.enableClustering }}"
126             - name: APPC_REPLICAS
127               value: "{{ .Values.replicaCount }}"
128           volumeMounts:
129           - mountPath: /etc/localtime
130             name: localtime
131             readOnly: true
132           - mountPath: /opt/onap/appc/data/properties/dblib.properties
133             name: onap-appc-data-properties
134             subPath: dblib.properties
135           - mountPath: /opt/onap/appc/data/properties/svclogic.properties
136             name: onap-appc-data-properties
137             subPath: svclogic.properties
138           - mountPath: /opt/onap/appc/data/properties/appc.properties
139             name: onap-appc-data-properties
140             subPath: appc.properties
141           - mountPath: /opt/onap/appc/data/properties/aaiclient.properties
142             name: onap-appc-data-properties
143             subPath: aaiclient.properties
144           - mountPath: /opt/onap/appc/data/properties/cadi.properties
145             name: onap-appc-data-properties
146             subPath: cadi.properties
147           - mountPath: /opt/onap/appc/data/properties/aaa-app-config.xml
148             name: onap-appc-data-properties-input
149             subPath: aaa-app-config.xml
150           - mountPath: /opt/onap/appc/data/properties/bath_config.csv
151             name: onap-appc-data-properties
152             subPath: bath_config.csv
153           - mountPath: /opt/onap/appc/svclogic/config/svclogic.properties
154             name: onap-appc-svclogic-config
155             subPath: svclogic.properties
156           - mountPath: /opt/onap/appc/svclogic/bin/showActiveGraphs.sh
157             name: onap-appc-svclogic-bin
158             subPath: showActiveGraphs.sh
159           - mountPath: /opt/onap/appc/bin/startODL.sh
160             name: onap-appc-bin
161             subPath: startODL.sh
162           - mountPath: /opt/onap/appc/bin/installAppcDb.sh
163             name: onap-appc-bin
164             subPath: installAppcDb.sh
165           - mountPath: /opt/onap/appc/bin/health_check.sh
166             name: onap-appc-bin
167             subPath: health_check.sh
168           - mountPath: /opt/onap/ccsdk/data/properties/dblib.properties
169             name: onap-sdnc-data-properties
170             subPath: dblib.properties
171           - mountPath: /opt/onap/ccsdk/data/properties/svclogic.properties
172             name: onap-sdnc-data-properties
173             subPath: svclogic.properties
174           - mountPath: /opt/onap/ccsdk/data/properties/aaiclient.properties
175             name: onap-sdnc-data-properties
176             subPath: aaiclient.properties
177           - mountPath: /opt/onap/ccsdk/svclogic/config/svclogic.properties
178             name: onap-sdnc-svclogic-config
179             subPath: svclogic.properties
180           - mountPath: /opt/onap/ccsdk/svclogic/bin/showActiveGraphs.sh
181             name: onap-sdnc-svclogic-bin
182             subPath: showActiveGraphs.sh
183           - mountPath: /opt/onap/ccsdk/bin/installSdncDb.sh
184             name: onap-sdnc-bin
185             subPath: installSdncDb.sh
186           - mountPath: {{ .Values.persistence.mdsalPath }}
187             name: {{ include "common.fullname" . }}-data
188           - mountPath: /var/log/onap
189             name: logs
190           - mountPath: /opt/onap/appc/data/org.ops4j.pax.logging.cfg
191             name: log-config
192             subPath: org.ops4j.pax.logging.cfg
193           - mountPath: /opt/onap/appc/data/stores/org.onap.appc.p12
194             name: p12-certs
195             subPath: org.onap.appc.p12
196           - mountPath: /opt/onap/appc/data/stores/org.onap.appc.keyfile
197             name: keyfile-certs
198             subPath: org.onap.appc.keyfile
199           resources:
200 {{ include "common.resources" . | indent 12 }}
201         {{- if .Values.nodeSelector }}
202         nodeSelector:
203 {{ toYaml .Values.nodeSelector | indent 10 }}
204         {{- end -}}
205         {{- if .Values.affinity }}
206         affinity:
207 {{ toYaml .Values.affinity | indent 10 }}
208         {{- end }}
209
210         # side car containers
211         - name: filebeat-onap
212           image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
213           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
214           volumeMounts:
215           - mountPath: /usr/share/filebeat/filebeat.yml
216             name: filebeat-conf
217             subPath: filebeat.yml
218           - mountPath: /var/log/onap
219             name: logs
220           - mountPath: /usr/share/filebeat/data
221             name: data-filebeat
222       volumes:
223         - name: keyfile-certs
224           secret:
225             secretName: {{ include "common.fullname" . }}-certs
226         - name: p12-certs
227           secret:
228             secretName: {{ include "common.fullname" . }}-certs
229         - name: localtime
230           hostPath:
231             path: /etc/localtime
232         - name: filebeat-conf
233           configMap:
234             name: {{ include "common.fullname" . }}-filebeat
235         - name: log-config
236           configMap:
237             name: {{ include "common.fullname" . }}-logging-cfg
238         - name: logs
239           emptyDir: {}
240         - name: data-filebeat
241           emptyDir: {}
242         - name: onap-appc-data-properties-input
243           configMap:
244             name: {{ include "common.fullname" . }}-onap-appc-data-properties
245         - name: onap-appc-svclogic-config-input
246           configMap:
247             name: {{ include "common.fullname" . }}-onap-appc-svclogic-config
248         - name: onap-appc-svclogic-bin
249           configMap:
250             name: {{ include "common.fullname" . }}-onap-appc-svclogic-bin
251             defaultMode: 0755
252         - name: onap-appc-bin
253           configMap:
254             name: {{ include "common.fullname" . }}-onap-appc-bin
255             defaultMode: 0755
256         - name: onap-sdnc-data-properties-input
257           configMap:
258             name: {{ include "common.fullname" . }}-onap-sdnc-data-properties
259         - name: onap-sdnc-svclogic-config-input
260           configMap:
261             name: {{ include "common.fullname" . }}-onap-sdnc-svclogic-config
262         - name: onap-sdnc-svclogic-bin
263           configMap:
264             name: {{ include "common.fullname" . }}-onap-sdnc-svclogic-bin
265             defaultMode: 0755
266         - name: onap-sdnc-bin
267           configMap:
268             name: {{ include "common.fullname" . }}-onap-sdnc-bin
269             defaultMode: 0755
270         - name: onap-appc-data-properties
271           emptyDir:
272             medium: Memory
273         - name: onap-appc-svclogic-config
274           emptyDir:
275             medium: Memory
276         - name: onap-sdnc-data-properties
277           emptyDir:
278             medium: Memory
279         - name: onap-sdnc-svclogic-config
280           emptyDir:
281             medium: Memory
282 {{ if not .Values.persistence.enabled }}
283         - name: {{ include "common.fullname" . }}-data
284           emptyDir: {}
285 {{ else }}
286   volumeClaimTemplates:
287   - metadata:
288       name: {{ include "common.fullname" . }}-data
289       labels:
290         name: {{ include "common.fullname" . }}
291         chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
292         release: "{{ include "common.release" . }}"
293         heritage: "{{ .Release.Service }}"
294     spec:
295       accessModes:
296       - {{ .Values.persistence.accessMode }}
297       storageClassName: {{ include "common.storageClass" . }}
298       resources:
299         requests:
300           storage: {{ .Values.persistence.size }}
301 {{ end }}