Merge "use ODL aaa-app-config when AAF disabled"
[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           resources:
194 {{ include "common.resources" . | indent 12 }}
195         {{- if .Values.nodeSelector }}
196         nodeSelector:
197 {{ toYaml .Values.nodeSelector | indent 10 }}
198         {{- end -}}
199         {{- if .Values.affinity }}
200         affinity:
201 {{ toYaml .Values.affinity | indent 10 }}
202         {{- end }}
203
204         # side car containers
205         - name: filebeat-onap
206           image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
207           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
208           volumeMounts:
209           - mountPath: /usr/share/filebeat/filebeat.yml
210             name: filebeat-conf
211             subPath: filebeat.yml
212           - mountPath: /var/log/onap
213             name: logs
214           - mountPath: /usr/share/filebeat/data
215             name: data-filebeat
216       volumes:
217         - name: localtime
218           hostPath:
219             path: /etc/localtime
220         - name: filebeat-conf
221           configMap:
222             name: {{ include "common.fullname" . }}-filebeat
223         - name: log-config
224           configMap:
225             name: {{ include "common.fullname" . }}-logging-cfg
226         - name: logs
227           emptyDir: {}
228         - name: data-filebeat
229           emptyDir: {}
230         - name: onap-appc-data-properties-input
231           configMap:
232             name: {{ include "common.fullname" . }}-onap-appc-data-properties
233         - name: onap-appc-svclogic-config-input
234           configMap:
235             name: {{ include "common.fullname" . }}-onap-appc-svclogic-config
236         - name: onap-appc-svclogic-bin
237           configMap:
238             name: {{ include "common.fullname" . }}-onap-appc-svclogic-bin
239             defaultMode: 0755
240         - name: onap-appc-bin
241           configMap:
242             name: {{ include "common.fullname" . }}-onap-appc-bin
243             defaultMode: 0755
244         - name: onap-sdnc-data-properties-input
245           configMap:
246             name: {{ include "common.fullname" . }}-onap-sdnc-data-properties
247         - name: onap-sdnc-svclogic-config-input
248           configMap:
249             name: {{ include "common.fullname" . }}-onap-sdnc-svclogic-config
250         - name: onap-sdnc-svclogic-bin
251           configMap:
252             name: {{ include "common.fullname" . }}-onap-sdnc-svclogic-bin
253             defaultMode: 0755
254         - name: onap-sdnc-bin
255           configMap:
256             name: {{ include "common.fullname" . }}-onap-sdnc-bin
257             defaultMode: 0755
258         - name: onap-appc-data-properties
259           emptyDir:
260             medium: Memory
261         - name: onap-appc-svclogic-config
262           emptyDir:
263             medium: Memory
264         - name: onap-sdnc-data-properties
265           emptyDir:
266             medium: Memory
267         - name: onap-sdnc-svclogic-config
268           emptyDir:
269             medium: Memory
270 {{ if not .Values.persistence.enabled }}
271         - name: {{ include "common.fullname" . }}-data
272           emptyDir: {}
273 {{ else }}
274   volumeClaimTemplates:
275   - metadata:
276       name: {{ include "common.fullname" . }}-data
277       labels:
278         name: {{ include "common.fullname" . }}
279         chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
280         release: "{{ include "common.release" . }}"
281         heritage: "{{ .Release.Service }}"
282     spec:
283       accessModes:
284       - {{ .Values.persistence.accessMode }}
285       storageClassName: {{ include "common.storageClass" . }}
286       resources:
287         requests:
288           storage: {{ .Values.persistence.size }}
289 {{ end }}