4b782308d65e0d7042af1ae5884d65ffbe68b4a7
[oom.git] / kubernetes / sdnc / templates / statefulset.yaml
1 {{/*
2 # Copyright © 2020 Samsung Electronics
3 # Copyright © 2017 Amdocs, Bell Canada
4 # Copyright © 2021 Nokia
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 */}}
18
19 apiVersion: apps/v1
20 kind: StatefulSet
21 metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
22 spec:
23   selector: {{- include "common.selectors" . | nindent 4 }}
24   serviceName: {{ include "common.servicename" . }}-cluster
25   podManagementPolicy: Parallel
26   replicas: {{ .Values.replicaCount }}
27   template:
28     metadata: {{- include "common.templateMetadata" . | nindent 6 }}
29     spec:
30       initContainers:
31       - command:
32         - sh
33         args:
34         - -c
35         - "cd /config-input && for PFILE in `ls -1 .`; do envsubst <${PFILE} >/config/${PFILE}; done"
36         env:
37         - name: AAI_CLIENT_NAME
38           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "aai-user-creds" "key" "login") | indent 10 }}
39         - name: AAI_CLIENT_PASSWORD
40           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "aai-user-creds" "key" "password") | indent 10 }}
41         - name: AAI_TRUSTSTORE_PASSWORD
42           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "aai-truststore-password" "key" "password") | indent 10 }}
43         - name: ANSIBLE_TRUSTSTORE_PASSWORD
44           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "ansible-truststore-password" "key" "password") | indent 10 }}
45         - name: SO_USER
46           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "so-user-creds" "key" "login") | indent 10 }}
47         - name: SO_PASSWORD
48           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "so-user-creds" "key" "password") | indent 10 }}
49         - name: NENG_USER
50           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "neng-user-creds" "key" "login") | indent 10 }}
51         - name: NENG_PASSWORD
52           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "neng-user-creds" "key" "password") | indent 10 }}
53         - name: CDS_USER
54           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "cds-user-creds" "key" "login") | indent 10 }}
55         - name: CDS_PASSWORD
56           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "cds-user-creds" "key" "password") | indent 10 }}
57         - name: HONEYCOMB_USER
58           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "honeycomb-user-creds" "key" "login") | indent 10 }}
59         - name: HONEYCOMB_PASSWORD
60           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "honeycomb-user-creds" "key" "password") | indent 10 }}
61         - name: TRUSTSTORE_PASSWORD
62           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "truststore-password" "key" "password") | indent 10 }}
63         - name: KEYSTORE_PASSWORD
64           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "keystore-password" "key" "password") | indent 10 }}
65         - name: DMAAP_USER
66           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-user-creds" "key" "login") | indent 10 }}
67         - name: DMAAP_PASSWORD
68           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-user-creds" "key" "password") | indent 10 }}
69         - name: DMAAP_AUTHKEY
70           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-authkey" "key" "password") | indent 10 }}
71         - name: MODELSERVICE_USER
72           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "modeling-user-creds" "key" "login") | indent 10 }}
73         - name: MODELSERVICE_PASSWORD
74           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "modeling-user-creds" "key" "password") | indent 10 }}
75         - name: RESTCONF_USER
76           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "restconf-creds" "key" "login") | indent 10 }}
77         - name: RESTCONF_PASSWORD
78           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "restconf-creds" "key" "password") | indent 10 }}
79         - name: ANSIBLE_USER
80           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "ansible-creds" "key" "login") | indent 10 }}
81         - name: ANSIBLE_PASSWORD
82           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "ansible-creds" "key" "password") | indent 10 }}
83         - name: SCALEOUT_USER
84           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "scaleout-creds" "key" "login") | indent 10 }}
85         - name: SCALEOUT_PASSWORD
86           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "scaleout-creds" "key" "password") | indent 10 }}
87         - name: NETBOX_APIKEY
88           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "netbox-apikey" "key" "password") | indent 10 }}
89         - name: SDNC_DB_USER
90           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "login") | indent 10 }}
91         - name: SDNC_DB_PASSWORD
92           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "password") | indent 10 }}
93         - name: MYSQL_USER
94           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "login") | indent 10 }}
95         - name: MYSQL_PASSWORD
96           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "password") | indent 10 }}
97         - name: ODL_ADMIN_USERNAME
98           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "odl-creds" "key" "login") | indent 10 }}
99         - name: ODL_USER
100           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "odl-creds" "key" "login") | indent 10 }}
101         - name: ODL_ADMIN_PASSWORD
102           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "odl-creds" "key" "password") | indent 10 }}
103         - name: ODL_PASSWORD
104           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "odl-creds" "key" "password") | indent 10 }}
105         {{ if .Values.config.sdnr.oauth.enabled }}
106         - name: OAUTH_TOKEN_SECRET
107           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "oauth-token-secret" "key" "password") | indent 10 }}
108         - name: KEYCLOAK_SECRET
109           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "keycloak-secret" "key" "password") | indent 10 }}
110         - name: ENABLE_ODLUX_RBAC
111           value: "{{ .Values.config.sdnr.oauth.odluxRbac.enabled | default "true" }}"
112         {{ end }}
113         - name: SDNR_KAFKA_ENABLED
114           value: "{{ .Values.config.sdnr.kafka.enabled | default "false" }}"
115         {{ if .Values.config.sdnr.kafka.enabled }}
116         - name: SDNR_KAFKA_BOOTSTRAP_SERVERS
117           value: "{{ .Values.config.sdnr.kafka.bootstrapServers | default (include "common.release" .) }}-strimzi-kafka-bootstrap.{{.Release.Namespace}}:9092"
118         - name: SDNR_KAFKA_SECURITY_PROTOCOL
119           value: "{{ .Values.config.sdnr.kafka.securityProtocol | default "SASL_PLAINTEXT" }}"
120         - name: SDNR_KAFKA_SASL_MECHANISM
121           value: "{{ .Values.config.sdnr.kafka.saslMechanism | default "SCRAM-SHA-512" }}"
122         - name: SDNR_KAFKA_SASL_JASS_CONFIG
123           valueFrom:
124             secretKeyRef:
125               name: {{ include "common.name" . }}-ku
126               key: sasl.jaas.config
127         {{ end }}
128         volumeMounts:
129         - mountPath: /config-input
130           name: config-input
131         - mountPath: /config
132           name: properties
133         image: {{ include "repositoryGenerator.image.envsubst" . }}
134         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
135         name: {{ include "common.name" . }}-update-config
136       {{ if or .Values.dgbuilder.enabled .Values.config.sdnr.enabled -}}
137       - command:
138         - /app/ready.py
139         args:
140         {{ if .Values.dgbuilder.enabled -}}
141         - --service-name
142         - {{ include "common.mariadbService" . }}
143         - --job-name
144         - {{ include "common.fullname" . }}-dbinit-job
145         {{ end -}}
146         {{ if .Values.config.sdnr.enabled -}}
147         - --job-name
148         - {{ include "common.fullname" . }}-sdnrdb-init-job
149         {{ end -}}
150         env:
151         - name: NAMESPACE
152           valueFrom:
153             fieldRef:
154               apiVersion: v1
155               fieldPath: metadata.namespace
156         image: {{ include "repositoryGenerator.image.readiness" . }}
157         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
158         name: {{ include "common.name" . }}-readiness
159         resources:
160           limits:
161             cpu: "100m"
162             memory: "500Mi"
163           requests:
164             cpu: "3m"
165             memory: "20Mi"
166         {{ end }}
167       - name: {{ include "common.name" . }}-chown
168         image: {{ include "repositoryGenerator.image.busybox" . }}
169         command:
170         - sh
171         args:
172         - -c
173         - |
174            mkdir {{ .Values.persistence.mdsalPath }}/journal
175            mkdir {{ .Values.persistence.mdsalPath }}/snapshots
176            mkdir {{ .Values.persistence.mdsalPath }}/daexim
177            chown -R {{ .Values.config.odlUid }}:{{ .Values.config.odlGid}} {{ .Values.persistence.mdsalPath }}
178         volumeMounts:
179           - mountPath: {{ .Values.persistence.mdsalPath }}
180             name: {{ include "common.fullname" . }}-data
181       containers:
182         - name: {{ include "common.name" . }}
183           image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
184           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
185           {{- if .Values.global.cmpv2Enabled }}
186           {{- $linkCommand := include "common.certManager.linkVolumeMounts" . }}
187           lifecycle:
188             postStart:
189               exec:
190                 command: ["sh", "-c", {{$linkCommand | quote}} ]
191           {{- end }}
192           command: ["/bin/bash"]
193           args: ["-c", "/opt/onap/sdnc/bin/createLinks.sh ; /opt/onap/sdnc/bin/startODL.sh"]
194           ports:
195           - containerPort: {{ .Values.service.internalPort }}
196           - containerPort: {{ .Values.service.internalPort2 }}
197           - containerPort: {{ .Values.service.internalPort3 }}
198           - containerPort: {{ .Values.service.clusterPort }}
199           {{- if .Values.config.sdnr.netconfCallHome.enabled }}
200           - containerPort: {{ .Values.service.callHomePort }}
201           {{- end }}
202           readinessProbe:
203             tcpSocket:
204               port: {{ .Values.service.internalPort }}
205             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
206             periodSeconds: {{ .Values.readiness.periodSeconds }}
207           env:
208           {{ if and .Values.config.sdnr.enabled .Values.config.sdnr.sdnronly -}}
209           - name: MYSQL_ROOT_PASSWORD
210             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-root-password" "key" "password") | indent 12 }}
211           {{ end -}}
212           - name: ODL_ADMIN_USERNAME
213             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "odl-creds" "key" "login") | indent 12 }}
214           - name: ODL_USER
215             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "odl-creds" "key" "login") | indent 12 }}
216           - name: ODL_ADMIN_PASSWORD
217             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "odl-creds" "key" "password") | indent 12 }}
218           - name: ODL_PASSWORD
219             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "odl-creds" "key" "password") | indent 12 }}
220           - name: SDNC_DB_USER
221             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "login") | indent 12 }}
222           - name: SDNC_DB_PASSWORD
223             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "password") | indent 12 }}
224           - name: MYSQL_USER
225             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "login") | indent 12 }}
226           - name: MYSQL_PASSWORD
227             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "password") | indent 12 }}
228           - name: MYSQL_DATABASE
229             value: "{{ .Values.config.dbSdnctlDatabase }}"
230           - name: SDNC_CONFIG_DIR
231             value: "{{ .Values.config.configDir }}"
232           - name: AAI_CLIENT_NAME
233             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "aai-user-creds" "key" "login") | indent 12 }}
234           - name: AAI_CLIENT_PASSWORD
235             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "aai-user-creds" "key" "password") | indent 12 }}
236           - name: AAI_TRUSTSTORE_PASSWORD
237             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "aai-truststore-password" "key" "password") | indent 12 }}
238           - name: ANSIBLE_TRUSTSTORE_PASSWORD
239             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "ansible-truststore-password" "key" "password") | indent 12 }}
240           - name: SO_USER
241             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "so-user-creds" "key" "login") | indent 12 }}
242           - name: SO_PASSWORD
243             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "so-user-creds" "key" "password") | indent 12 }}
244           - name: NENG_USER
245             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "neng-user-creds" "key" "login") | indent 12 }}
246           - name: NENG_PASSWORD
247             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "neng-user-creds" "key" "password") | indent 12 }}
248           - name: CDS_USER
249             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "cds-user-creds" "key" "login") | indent 12 }}
250           - name: CDS_PASSWORD
251             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "cds-user-creds" "key" "password") | indent 12 }}
252           - name: HONEYCOMB_USER
253             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "honeycomb-user-creds" "key" "login") | indent 12 }}
254           - name: HONEYCOMB_PASSWORD
255             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "honeycomb-user-creds" "key" "password") | indent 12 }}
256           - name: TRUSTSTORE_PASSWORD
257             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "truststore-password" "key" "password") | indent 12 }}
258           - name: KEYSTORE_PASSWORD
259             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "keystore-password" "key" "password") | indent 12 }}
260           - name: DMAAP_USER
261             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-user-creds" "key" "login") | indent 12 }}
262           - name: DMAAP_PASSWORD
263             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-user-creds" "key" "password") | indent 12 }}
264           - name: DMAAP_AUTHKEY
265             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-authkey" "key" "password") | indent 12 }}
266           - name: ENABLE_ODL_CLUSTER
267             value: "{{ .Values.config.enableClustering }}"
268           - name: MY_ODL_CLUSTER
269             value: "{{ .Values.config.myODLCluster }}"
270           - name: PEER_ODL_CLUSTER
271             value: "{{ .Values.config.peerODLCluster }}"
272           - name: IS_PRIMARY_CLUSTER
273             value: "{{ .Values.config.isPrimaryCluster }}"
274           - name: GEO_ENABLED
275             value: "{{ .Values.config.geoEnabled}}"
276           - name: SDNC_AAF_ENABLED
277             value: "false"
278           - name: SDNC_REPLICAS
279             value: "{{ .Values.replicaCount }}"
280           - name: MYSQL_HOST
281             value: {{ include "common.mariadbService" . }}
282           - name: MDSAL_PATH
283             value: {{ .Values.persistence.mdsalPath }}
284           - name: DAEXIM_PATH
285             value: {{ .Values.persistence.daeximPath }}
286           - name: JOURNAL_PATH
287             value: {{ .Values.persistence.journalPath }}
288           - name: SNAPSHOTS_PATH
289             value: {{ .Values.persistence.snapshotsPath }}
290           - name: JAVA_HOME
291             value: "{{ .Values.config.javaHome}}"
292           - name: JAVA_OPTS
293             value: "-Xms{{.Values.config.odl.javaOptions.minMemory}} -Xmx{{.Values.config.odl.javaOptions.maxMemory}}"
294           - name: LOG4J_FORMAT_MSG_NO_LOOKUPS
295             value: "true"
296           - name: KARAF_CONSOLE_LOG_LEVEL
297             value: "{{ include "common.log.level" . }}"
298           - name: SDNRWT
299             value: "{{ .Values.config.sdnr.enabled | default "false"}}"
300           {{- if eq .Values.config.sdnr.mode "web" }}
301           - name: SDNRDM
302             value: "true"
303           {{- end }}
304           - name: SDNRONLY
305             value: "{{ .Values.config.sdnr.sdnronly | default "false" }}"
306           {{- if .Values.config.sdnr.mariadb.enabled }}
307           - name: SDNRCONTROLLERID
308             value: {{ uuidv4 }}
309           - name: SDNRDBTYPE
310             value: MARIADB
311           - name: SDNRDBURL
312             value: "jdbc:mysql://{{ include "common.mariadbService" . }}:3306/{{ .Values.config.sdnr.mariadb.databaseName}}"
313           - name: SDNR_DB_DATABASE
314             value: {{ .Values.config.sdnr.mariadb.databaseName }}
315           - name: SDNRDBUSERNAME
316             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "sdnrdb-secret" "key" "login") | indent 12 }}
317           - name: SDNRDBPASSWORD
318             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "sdnrdb-secret" "key" "password") | indent 12 }}
319           - name: SDNR_ASYNC_HANDLING
320             value: {{ .Values.config.sdnr.mariadb.asyncHandling | default "false" | quote }}
321           - name: SDNR_ASYNC_POOLSIZE
322             value: {{ .Values.config.sdnr.mariadb.asyncPoolSize | default 200 | quote }}
323           {{- else }}
324           - name: SDNRDBURL
325             value: "http://{{ .Values.elasticsearch.service.name | default "sdnrdb"}}.{{.Release.Namespace}}:{{.Values.elasticsearch.service.port | default "9200"}}"
326           {{- if .Values.config.sdnr.sdnrdbTrustAllCerts }}
327           - name: SDNRDBTRUSTALLCERTS
328             value: "true"
329           {{- end }}
330           {{- end }}
331           {{- if .Values.global.cmpv2Enabled }}
332           - name: ODL_CERT_DIR
333             value: {{ (mustFirst (.Values.certificates)).mountPath }}
334           {{- end }}
335           - name: ENABLE_OAUTH
336             value: "{{ .Values.config.sdnr.oauth.enabled | default "false" }}"
337           - name: SDNR_NETCONF_CALLHOME_ENABLED
338             value: "{{ .Values.config.sdnr.netconfCallHome.enabled | default "false" }}"
339           - name: SDNR_VES_COLLECTOR_ENABLED
340             value: "{{ .Values.config.sdnr.vesCollector.enabled }}"
341           - name: SDNR_VES_COLLECTOR_TLS_ENABLED
342             value: "{{ .Values.config.sdnr.vesCollector.tls.enabled }}"
343           - name: SDNR_VES_COLLECTOR_TRUST_ALL_CERTS
344             value: "{{ .Values.config.sdnr.vesCollector.trustAllCertificates }}"
345           - name: SDNR_VES_COLLECTOR_IP
346             value: "{{ .Values.config.sdnr.vesCollector.address }}"
347           - name: SDNR_VES_COLLECTOR_PORT
348             value: "{{ .Values.config.sdnr.vesCollector.port }}"
349           - name: SDNR_VES_COLLECTOR_VERSION
350             value: "{{ .Values.config.sdnr.vesCollector.version | default "v7" }}"
351           - name: SDNR_VES_COLLECTOR_REPORTING_ENTITY_NAME
352             value: "{{ .Values.config.sdnr.vesCollector.reportingEntityName | default "ONAP SDN-R" }}"
353           - name: SDNR_VES_COLLECTOR_EVENTLOG_MSG_DETAIL
354             value: "{{ .Values.config.sdnr.vesCollector.eventLogMsgDetail | default "SHORT" }}"
355           - name: SDNR_VES_COLLECTOR_USERNAME
356             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "ves-collector-secret" "key" "login") | indent 12 }}
357           - name: SDNR_VES_COLLECTOR_PASSWORD
358             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "ves-collector-secret" "key" "password") | indent 12 }}
359           - name: SDNR_WEBSOCKET_PORT
360             value: "{{ .Values.sdnrWebsocketPort | default "8182"}}"
361           - name: SDNR_KAFKA_ENABLED
362             value: "{{ .Values.config.sdnr.kafka.enabled | default "false" }}"
363           {{ if .Values.config.sdnr.kafka.enabled }}
364           - name: SDNR_KAFKA_BOOTSTRAP_SERVERS
365             value: "{{ .Values.config.sdnr.kafka.bootstrapServers | default (include "common.release" .) }}-strimzi-kafka-bootstrap.{{.Release.Namespace}}:9092"
366           - name: SDNR_KAFKA_SECURITY_PROTOCOL
367             value: "{{ .Values.config.sdnr.kafka.securityProtocol | default "PLAINTEXT" }}"
368           - name: SDNR_KAFKA_SASL_MECHANISM
369             value: "{{ .Values.config.sdnr.kafka.saslMechanism | default "PLAIN" }}"
370           - name: SDNR_KAFKA_SASL_JASS_CONFIG
371             value: "{{ .Values.config.sdnr.kafka.saslJassConfig | default "PLAIN" }}"
372           {{ end }}
373
374
375           volumeMounts:
376 {{- if .Values.global.cmpv2Enabled }}
377 {{ include "common.certManager.volumeMounts" . | indent 10 }}
378 {{- end }}
379           - mountPath: /etc/localtime
380             name: localtime
381             readOnly: true
382           - mountPath: /opt/opendaylight/current/etc/org.ops4j.pax.logging.cfg
383             name: sdnc-logging-cfg-config
384             subPath: org.ops4j.pax.logging.cfg
385           - mountPath: {{ .Values.config.binDir }}/installSdncDb.sh
386             name: bin
387             subPath: installSdncDb.sh
388           - mountPath: {{ .Values.config.binDir }}/createLinks.sh
389             name: bin
390             subPath: createLinks.sh
391           - mountPath: {{ .Values.config.ccsdkConfigDir }}/aaiclient.properties
392             name: properties
393             subPath: aaiclient.properties
394           - mountPath: {{ .Values.config.configDir }}/aaiclient.properties
395             name: properties
396             subPath: aaiclient.properties
397           - mountPath: {{ .Values.config.configDir }}/dblib.properties
398             name: properties
399             subPath: dblib.properties
400           - mountPath: {{ .Values.config.configDir }}/lcm-dg.properties
401             name: properties
402             subPath: lcm-dg.properties
403           - mountPath: {{ .Values.config.configDir }}/svclogic.properties
404             name: properties
405             subPath: svclogic.properties
406           - mountPath: /opt/onap/sdnc/svclogic/config/svclogic.properties
407             name: properties
408             subPath: svclogic.properties
409           - mountPath: {{ .Values.config.configDir }}/netbox.properties
410             name: properties
411             subPath: netbox.properties
412           - mountPath: {{ .Values.config.configDir }}/blueprints-processor-adaptor.properties
413             name: properties
414             subPath: blueprints-processor-adaptor.properties
415           - mountPath: {{ .Values.persistence.mdsalPath }}
416             name: {{ include "common.fullname" . }}-data
417           - mountPath: {{ .Values.log.path }}
418             name: logs
419           - mountPath: {{ .Values.config.odl.salConfigDir }}/{{ .Values.config.odl.salConfigVersion}}/sal-clustering-config-{{ .Values.config.odl.salConfigVersion}}-akkaconf.xml
420             name: properties
421             subPath: akka.conf
422           - mountPath: {{ .Values.config.odl.etcDir }}/org.opendaylight.controller.cluster.datastore.cfg
423             name: properties
424             subPath: org.opendaylight.controller.cluster.datastore.cfg
425           - mountPath: {{ .Values.config.odl.etcDir }}/org.opendaylight.aaa.filterchain.cfg
426             name: properties
427             subPath: org.opendaylight.aaa.filterchain.cfg
428           - mountPath: {{ .Values.config.odl.binDir }}/setenv
429             name: properties
430             subPath: setenv
431           - mountPath: {{ .Values.config.odl.etcDir }}/mountpoint-registrar.properties
432             name: properties
433             subPath: mountpoint-registrar.properties
434           - mountPath: {{ .Values.config.odl.etcDir }}/mountpoint-state-provider.properties
435             name: properties
436             subPath: mountpoint-state-provider.properties
437           - mountPath: {{ .Values.config.odl.etcDir }}/org.opendaylight.daexim.cfg
438             name: properties
439             subPath: org.opendaylight.daexim.cfg
440           {{- if .Values.config.sdnr.oauth.enabled }}
441           - mountPath: {{ .Values.config.odl.etcDir }}/oauth-provider.config.json
442             name: properties
443             subPath: oauth-provider.config.json
444           {{ end }}
445           resources: {{ include "common.resources" . | nindent 12 }}
446         # side car containers
447         {{ include "common.log.sidecar" . | nindent 8 }}
448       {{- if .Values.nodeSelector }}
449       nodeSelector: {{ toYaml .Values.nodeSelector | nindent 8 }}
450       {{- end }}
451       {{- if .Values.affinity }}
452       affinity: {{ toYaml .Values.affinity | nindent 8 }}
453       {{- end }}
454       {{- include "common.imagePullSecrets" . | nindent 6 }}
455       serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
456       volumes:
457         - name: localtime
458           hostPath:
459             path: /etc/localtime
460         - name: logs
461           emptyDir: {}
462         {{ include "common.log.volumes" . | nindent 8 }}
463         - name: sdnc-logging-cfg-config
464           configMap:
465             name: {{ include "common.fullname" . }}-log-configmap
466         - name: bin
467           configMap:
468             name: {{ include "common.fullname" . }}-bin
469             defaultMode: 0755
470         - name: config-input
471           configMap:
472             name: {{ include "common.fullname" . }}-properties
473             defaultMode: 0644
474         - name: properties
475           emptyDir:
476             medium: Memory
477   {{ if not .Values.persistence.enabled }}
478         - name: {{ include "common.fullname" . }}-data
479           emptyDir: {}
480   {{ else }}
481 {{- if .Values.global.cmpv2Enabled }}
482 {{ include "common.certManager.volumes" . | nindent 8 }}
483 {{- end }}
484   volumeClaimTemplates:
485   - metadata:
486       name: {{ include "common.fullname" . }}-data
487       labels:
488         name: {{ include "common.fullname" . }}
489         chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
490         release: "{{ include "common.release" . }}"
491         heritage: "{{ .Release.Service }}"
492     spec:
493       accessModes:
494       - {{ .Values.persistence.accessMode }}
495       storageClassName: {{ include "common.storageClass" . }}
496       resources:
497         requests:
498           storage: {{ .Values.persistence.size }}
499   {{- end }}