[SDNC] Add SDNR Websocket support
[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 and .Values.config.sdnr.dmaapProxy.enabled  .Values.config.sdnr.dmaapProxy.usepwd }}
106         - name: DMAAP_HTTP_PROXY_USERNAME
107           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-proxy-creds" "key" "login") | indent 10 }}
108         - name: DMAAP_HTTP_PROXY_PASSWORD
109           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-proxy-creds" "key" "password") | indent 10 }}
110         {{- end }}
111         {{ if .Values.config.sdnr.oauth.enabled }}
112         - name: OAUTH_TOKEN_SECRET
113           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "oauth-token-secret" "key" "password") | indent 10 }}
114         - name: KEYCLOAK_SECRET
115           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "keycloak-secret" "key" "password") | indent 10 }}
116         - name: ENABLE_ODLUX_RBAC
117           value: "{{ .Values.config.sdnr.oauth.odluxRbac.enabled | default "true" }}"
118         {{ end }}
119
120         volumeMounts:
121         - mountPath: /config-input
122           name: config-input
123         - mountPath: /config
124           name: properties
125         image: {{ include "repositoryGenerator.image.envsubst" . }}
126         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
127         name: {{ include "common.name" . }}-update-config
128       {{ if or .Values.dgbuilder.enabled .Values.config.sdnr.enabled -}}
129       - command:
130         - /app/ready.py
131         args:
132         {{ if .Values.dgbuilder.enabled -}}
133         - --container-name
134         - {{ include "common.mariadbService" . }}
135         - --job-name
136         - {{ include "common.fullname" . }}-dbinit-job
137         {{ end -}}
138         {{ if .Values.config.sdnr.enabled -}}
139         - --job-name
140         - {{ include "common.fullname" . }}-sdnrdb-init-job
141         {{ end -}}
142         env:
143         - name: NAMESPACE
144           valueFrom:
145             fieldRef:
146               apiVersion: v1
147               fieldPath: metadata.namespace
148         image: {{ include "repositoryGenerator.image.readiness" . }}
149         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
150         name: {{ include "common.name" . }}-readiness
151         {{ end }}
152       - name: {{ include "common.name" . }}-chown
153         image: {{ include "repositoryGenerator.image.busybox" . }}
154         command:
155         - sh
156         args:
157         - -c
158         - |
159            mkdir {{ .Values.persistence.mdsalPath }}/journal
160            mkdir {{ .Values.persistence.mdsalPath }}/snapshots
161            mkdir {{ .Values.persistence.mdsalPath }}/daexim
162            chown -R {{ .Values.config.odlUid }}:{{ .Values.config.odlGid}} {{ .Values.persistence.mdsalPath }}
163         volumeMounts:
164           - mountPath: {{ .Values.persistence.mdsalPath }}
165             name: {{ include "common.fullname" . }}-data
166       containers:
167         - name: {{ include "common.name" . }}
168           image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
169           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
170           {{- if .Values.global.cmpv2Enabled }}
171           {{- $linkCommand := include "common.certManager.linkVolumeMounts" . }}
172           lifecycle:
173             postStart:
174               exec:
175                 command: ["sh", "-c", {{$linkCommand | quote}} ]
176           {{- end }}
177           command: ["/bin/bash"]
178           args: ["-c", "/opt/onap/sdnc/bin/createLinks.sh ; /opt/onap/sdnc/bin/startODL.sh"]
179           ports:
180           - containerPort: {{ .Values.service.internalPort }}
181           - containerPort: {{ .Values.service.internalPort2 }}
182           - containerPort: {{ .Values.service.internalPort3 }}
183           - containerPort: {{ .Values.service.clusterPort }}
184           {{- if .Values.config.sdnr.netconfCallHome.enabled }}
185           - containerPort: {{ .Values.service.callHomePort }}
186           {{- end }}
187           readinessProbe:
188             tcpSocket:
189               port: {{ .Values.service.internalPort }}
190             initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
191             periodSeconds: {{ .Values.readiness.periodSeconds }}
192           env:
193           {{ if and .Values.config.sdnr.enabled .Values.config.sdnr.sdnronly -}}
194           - name: MYSQL_ROOT_PASSWORD
195             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-root-password" "key" "password") | indent 12 }}
196           {{ end -}}
197           - name: ODL_ADMIN_USERNAME
198             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "odl-creds" "key" "login") | indent 12 }}
199           - name: ODL_USER
200             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "odl-creds" "key" "login") | indent 12 }}
201           - name: ODL_ADMIN_PASSWORD
202             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "odl-creds" "key" "password") | indent 12 }}
203           - name: ODL_PASSWORD
204             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "odl-creds" "key" "password") | indent 12 }}
205           - name: SDNC_DB_USER
206             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "login") | indent 12 }}
207           - name: SDNC_DB_PASSWORD
208             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "password") | indent 12 }}
209           - name: MYSQL_USER
210             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "login") | indent 12 }}
211           - name: MYSQL_PASSWORD
212             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "db-secret" "key" "password") | indent 12 }}
213           - name: MYSQL_DATABASE
214             value: "{{ .Values.config.dbSdnctlDatabase }}"
215           - name: SDNC_CONFIG_DIR
216             value: "{{ .Values.config.configDir }}"
217           - name: AAI_CLIENT_NAME
218             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "aai-user-creds" "key" "login") | indent 12 }}
219           - name: AAI_CLIENT_PASSWORD
220             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "aai-user-creds" "key" "password") | indent 12 }}
221           - name: AAI_TRUSTSTORE_PASSWORD
222             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "aai-truststore-password" "key" "password") | indent 12 }}
223           - name: ANSIBLE_TRUSTSTORE_PASSWORD
224             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "ansible-truststore-password" "key" "password") | indent 12 }}
225           - name: SO_USER
226             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "so-user-creds" "key" "login") | indent 12 }}
227           - name: SO_PASSWORD
228             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "so-user-creds" "key" "password") | indent 12 }}
229           - name: NENG_USER
230             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "neng-user-creds" "key" "login") | indent 12 }}
231           - name: NENG_PASSWORD
232             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "neng-user-creds" "key" "password") | indent 12 }}
233           - name: CDS_USER
234             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "cds-user-creds" "key" "login") | indent 12 }}
235           - name: CDS_PASSWORD
236             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "cds-user-creds" "key" "password") | indent 12 }}
237           - name: HONEYCOMB_USER
238             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "honeycomb-user-creds" "key" "login") | indent 12 }}
239           - name: HONEYCOMB_PASSWORD
240             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "honeycomb-user-creds" "key" "password") | indent 12 }}
241           - name: TRUSTSTORE_PASSWORD
242             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "truststore-password" "key" "password") | indent 12 }}
243           - name: KEYSTORE_PASSWORD
244             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "keystore-password" "key" "password") | indent 12 }}
245           - name: DMAAP_USER
246             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-user-creds" "key" "login") | indent 12 }}
247           - name: DMAAP_PASSWORD
248             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-user-creds" "key" "password") | indent 12 }}
249           - name: DMAAP_AUTHKEY
250             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "dmaap-authkey" "key" "password") | indent 12 }}
251           - name: ENABLE_ODL_CLUSTER
252             value: "{{ .Values.config.enableClustering }}"
253           - name: MY_ODL_CLUSTER
254             value: "{{ .Values.config.myODLCluster }}"
255           - name: PEER_ODL_CLUSTER
256             value: "{{ .Values.config.peerODLCluster }}"
257           - name: IS_PRIMARY_CLUSTER
258             value: "{{ .Values.config.isPrimaryCluster }}"
259           - name: GEO_ENABLED
260             value: "{{ .Values.config.geoEnabled}}"
261           - name: SDNC_AAF_ENABLED
262             value: "false"
263           - name: SDNC_REPLICAS
264             value: "{{ .Values.replicaCount }}"
265           - name: MYSQL_HOST
266             value: {{ include "common.mariadbService" . }}
267           - name: MDSAL_PATH
268             value: {{ .Values.persistence.mdsalPath }}
269           - name: DAEXIM_PATH
270             value: {{ .Values.persistence.daeximPath }}
271           - name: JOURNAL_PATH
272             value: {{ .Values.persistence.journalPath }}
273           - name: SNAPSHOTS_PATH
274             value: {{ .Values.persistence.snapshotsPath }}
275           - name: JAVA_HOME
276             value: "{{ .Values.config.javaHome}}"
277           - name: JAVA_OPTS
278             value: "-Xms{{.Values.config.odl.javaOptions.minMemory}} -Xmx{{.Values.config.odl.javaOptions.maxMemory}}"
279           - name: LOG4J_FORMAT_MSG_NO_LOOKUPS
280             value: "true"
281           - name: KARAF_CONSOLE_LOG_LEVEL
282             value: "{{ include "common.log.level" . }}"
283           - name: SDNRWT
284             value: "{{ .Values.config.sdnr.enabled | default "false"}}"
285           {{- if eq .Values.config.sdnr.mode "web" }}
286           - name: SDNRDM
287             value: "true"
288           {{- end }}
289           - name: SDNRONLY
290             value: "{{ .Values.config.sdnr.sdnronly | default "false" }}"
291           - name: SDNRDBURL
292             value: "http://{{ .Values.elasticsearch.service.name | default "sdnrdb"}}.{{.Release.Namespace}}:{{.Values.elasticsearch.service.port | default "9200"}}"
293           {{- if .Values.config.sdnr.sdnrdbTrustAllCerts }}
294           - name: SDNRDBTRUSTALLCERTS
295             value: "true"
296           {{- end }}
297           {{- if .Values.global.cmpv2Enabled }}
298           - name: ODL_CERT_DIR
299             value: {{ (mustFirst (.Values.certificates)).mountPath }}
300           {{- end }}
301           - name: ENABLE_OAUTH
302             value: "{{ .Values.config.sdnr.oauth.enabled | default "false" }}"
303           - name: SDNR_NETCONF_CALLHOME_ENABLED
304             value: "{{ .Values.config.sdnr.netconfCallHome.enabled | default "false" }}"
305           - name: SDNR_VES_COLLECTOR_ENABLED
306             value: "{{ .Values.config.sdnr.vesCollector.enabled }}"
307           - name: SDNR_VES_COLLECTOR_TLS_ENABLED
308             value: "{{ .Values.config.sdnr.vesCollector.tls.enabled }}"
309           - name: SDNR_VES_COLLECTOR_TRUST_ALL_CERTS
310             value: "{{ .Values.config.sdnr.vesCollector.trustAllCertificates }}"
311           - name: SDNR_VES_COLLECTOR_IP
312             value: "{{ .Values.config.sdnr.vesCollector.address }}"
313           - name: SDNR_VES_COLLECTOR_PORT
314             value: "{{ .Values.config.sdnr.vesCollector.port }}"
315           - name: SDNR_VES_COLLECTOR_VERSION
316             value: "{{ .Values.config.sdnr.vesCollector.version | default "v7" }}"
317           - name: SDNR_VES_COLLECTOR_REPORTING_ENTITY_NAME
318             value: "{{ .Values.config.sdnr.vesCollector.reportingEntityName | default "ONAP SDN-R" }}"
319           - name: SDNR_VES_COLLECTOR_EVENTLOG_MSG_DETAIL
320             value: "{{ .Values.config.sdnr.vesCollector.eventLogMsgDetail | default "SHORT" }}"
321           - name: SDNR_VES_COLLECTOR_USERNAME
322             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "ves-collector-secret" "key" "login") | indent 12 }}
323           - name: SDNR_VES_COLLECTOR_PASSWORD
324             {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "ves-collector-secret" "key" "password") | indent 12 }}
325           - name: SDNR_WEBSOCKET_PORT
326             value: "{{ .Values.sdnrWebsocketPort | default "8182"}}"
327
328           volumeMounts:
329 {{- if .Values.global.cmpv2Enabled }}
330 {{ include "common.certManager.volumeMounts" . | indent 10 }}
331 {{- end }}
332           - mountPath: /etc/localtime
333             name: localtime
334             readOnly: true
335           - mountPath: /opt/opendaylight/current/etc/org.ops4j.pax.logging.cfg
336             name: sdnc-logging-cfg-config
337             subPath: org.ops4j.pax.logging.cfg
338           - mountPath: {{ .Values.config.binDir }}/installSdncDb.sh
339             name: bin
340             subPath: installSdncDb.sh
341           - mountPath: {{ .Values.config.binDir }}/createLinks.sh
342             name: bin
343             subPath: createLinks.sh
344           - mountPath: {{ .Values.config.ccsdkConfigDir }}/aaiclient.properties
345             name: properties
346             subPath: aaiclient.properties
347           - mountPath: {{ .Values.config.configDir }}/aaiclient.properties
348             name: properties
349             subPath: aaiclient.properties
350           - mountPath: {{ .Values.config.configDir }}/dblib.properties
351             name: properties
352             subPath: dblib.properties
353           - mountPath: {{ .Values.config.configDir }}/lcm-dg.properties
354             name: properties
355             subPath: lcm-dg.properties
356           - mountPath: {{ .Values.config.configDir }}/svclogic.properties
357             name: properties
358             subPath: svclogic.properties
359           - mountPath: /opt/onap/sdnc/svclogic/config/svclogic.properties
360             name: properties
361             subPath: svclogic.properties
362           - mountPath: {{ .Values.config.configDir }}/netbox.properties
363             name: properties
364             subPath: netbox.properties
365           - mountPath: {{ .Values.config.configDir }}/blueprints-processor-adaptor.properties
366             name: properties
367             subPath: blueprints-processor-adaptor.properties
368           - mountPath: {{ .Values.persistence.mdsalPath }}
369             name: {{ include "common.fullname" . }}-data
370           - mountPath: {{ .Values.log.path }}
371             name: logs
372           - mountPath: {{ .Values.config.odl.salConfigDir }}/{{ .Values.config.odl.salConfigVersion}}/sal-clustering-config-{{ .Values.config.odl.salConfigVersion}}-akkaconf.xml
373             name: properties
374             subPath: akka.conf
375           - mountPath: {{ .Values.config.odl.etcDir }}/org.opendaylight.controller.cluster.datastore.cfg
376             name: properties
377             subPath: org.opendaylight.controller.cluster.datastore.cfg
378           - mountPath: {{ .Values.config.odl.etcDir }}/org.opendaylight.aaa.filterchain.cfg
379             name: properties
380             subPath: org.opendaylight.aaa.filterchain.cfg
381           - mountPath: {{ .Values.config.odl.binDir }}/setenv
382             name: properties
383             subPath: setenv
384           - mountPath: {{ .Values.config.odl.etcDir }}/mountpoint-registrar.properties
385             name: properties
386             subPath: mountpoint-registrar.properties
387           - mountPath: {{ .Values.config.odl.etcDir }}/mountpoint-state-provider.properties
388             name: properties
389             subPath: mountpoint-state-provider.properties
390           - mountPath: {{ .Values.config.odl.etcDir }}/org.opendaylight.daexim.cfg
391             name: properties
392             subPath: org.opendaylight.daexim.cfg
393           {{- if .Values.config.sdnr.oauth.enabled }}
394           - mountPath: {{ .Values.config.odl.etcDir }}/oauth-provider.config.json
395             name: properties
396             subPath: oauth-provider.config.json
397           {{ end }}
398           resources: {{ include "common.resources" . | nindent 12 }}
399         # side car containers
400         {{ include "common.log.sidecar" . | nindent 8 }}
401       {{- if .Values.nodeSelector }}
402       nodeSelector: {{ toYaml .Values.nodeSelector | nindent 8 }}
403       {{- end }}
404       {{- if .Values.affinity }}
405       affinity: {{ toYaml .Values.affinity | nindent 8 }}
406       {{- end }}
407       imagePullSecrets:
408       - name: "{{ include "common.namespace" . }}-docker-registry-key"
409       serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
410       volumes:
411         - name: localtime
412           hostPath:
413             path: /etc/localtime
414         - name: logs
415           emptyDir: {}
416         {{ include "common.log.volumes" . | nindent 8 }}
417         - name: sdnc-logging-cfg-config
418           configMap:
419             name: {{ include "common.fullname" . }}-log-configmap
420         - name: bin
421           configMap:
422             name: {{ include "common.fullname" . }}-bin
423             defaultMode: 0755
424         - name: config-input
425           configMap:
426             name: {{ include "common.fullname" . }}-properties
427             defaultMode: 0644
428         - name: properties
429           emptyDir:
430             medium: Memory
431   {{ if not .Values.persistence.enabled }}
432         - name: {{ include "common.fullname" . }}-data
433           emptyDir: {}
434   {{ else }}
435 {{- if .Values.global.cmpv2Enabled }}
436 {{ include "common.certManager.volumes" . | nindent 8 }}
437 {{- end }}
438   volumeClaimTemplates:
439   - metadata:
440       name: {{ include "common.fullname" . }}-data
441       labels:
442         name: {{ include "common.fullname" . }}
443         chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
444         release: "{{ include "common.release" . }}"
445         heritage: "{{ .Release.Service }}"
446     spec:
447       accessModes:
448       - {{ .Values.persistence.accessMode }}
449       storageClassName: {{ include "common.storageClass" . }}
450       resources:
451         requests:
452           storage: {{ .Values.persistence.size }}
453   {{- end }}