1 # Copyright © 2020 Samsung Electronics, highstreet technologies GmbH
2 # Copyright © 2017 Amdocs, Bell Canada
3 # Copyright © 2021 Nokia
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 #################################################################
18 # Global configuration defaults.
19 #################################################################
22 nodePortPrefixExt: 304
24 mountPath: /dockerdata-nfs
25 centralizedLoggingEnabled: true
27 # flag to enable the DB creation via mariadb-operator
29 #This flag allows SO to instantiate its own mariadb-galera cluster
30 #If shared instance is used, this chart assumes that DB already exists
32 service: &mariadbService mariadb-galera
34 nameOverride: &mariadbName mariadb-galera
35 # (optional) if localCluster=false and an external secret is used set this variable
36 #userRootSecret: <secretName>
39 #################################################################
41 #################################################################
43 - uid: db-root-password
44 name: &rootDbSecret '{{ include "common.release" . }}-sdnc-db-root-password'
46 # If we're using shared mariadb, we need to use the secret name (second
48 # If not, we do the same trick than for user db secret hat allows you
49 # override this secret using external one with the same field that is used
50 # to pass this to subchart.
51 externalSecret: '{{ .Values.global.mariadbGalera.localCluster |
52 ternary (( hasSuffix "sdnc-db-root-password" (index .Values "mariadb-galera" "rootUser" "externalSecret")) |
55 (tpl (default "" (index .Values "mariadb-galera" "rootUser" "externalSecret")) .)
57 ( (not (empty (default "" .Values.global.mariadbGalera.userRootSecret))) |
59 .Values.global.mariadbGalera.userRootSecret
60 (include "common.mariadb.secret.rootPassSecretName"
61 (dict "dot" . "chartName" .Values.global.mariadbGalera.nameOverride)
64 password: '{{ (index .Values "mariadb-galera" "rootUser" "password") }}'
66 name: &dbSecretName '{{ include "common.release" . }}-sdnc-db-secret'
68 # This is a nasty trick that allows you override this secret using external one
69 # with the same field that is used to pass this to subchart
70 externalSecret: '{{ (hasSuffix "sdnc-db-secret" (index .Values "mariadb-galera" "db" "externalSecret")) |
73 (tpl (default "" (index .Values "mariadb-galera" "db" "externalSecret")) .) }}'
74 login: '{{ index .Values "mariadb-galera" "db" "user" }}'
75 password: '{{ index .Values "mariadb-galera" "db" "password" }}'
77 name: &odlCredsSecretName '{{ include "common.release" . }}-sdnc-odl-creds'
79 externalSecret: '{{ .Values.config.odlCredsExternalSecret }}'
80 login: '{{ .Values.config.odlUser }}'
81 password: '{{ .Values.config.odlPassword }}'
82 # For now this is left hardcoded but should be revisited in a future
83 passwordPolicy: required
86 externalSecret: '{{ .Values.config.netboxApikeyExternalSecret }}'
87 password: '{{ .Values.config.netboxApikey }}'
88 passwordPolicy: required
89 - uid: aai-truststore-password
91 externalSecret: '{{ .Values.config.aaiTruststoreExternalSecret }}'
92 password: '{{ .Values.config.aaiTruststorePassword }}'
93 passwordPolicy: required
94 - uid: ansible-truststore-password
96 externalSecret: '{{ .Values.config.ansibleTruststoreExternalSecret }}'
97 password: '{{ .Values.config.ansibleTruststorePassword }}'
98 passwordPolicy: required
99 - uid: truststore-password
101 externalSecret: '{{ .Values.config.truststoreExternalSecret }}'
102 password: '{{ .Values.config.truststorePassword }}'
103 passwordPolicy: required
104 - uid: keystore-password
106 externalSecret: '{{ .Values.config.keystoreExternalSecret }}'
107 password: '{{ .Values.config.keystorePassword }}'
108 passwordPolicy: required
111 externalSecret: '{{ .Values.config.dmaapAuthKeyExternalSecret }}'
112 password: '{{ .Values.config.dmaapAuthKey }}'
113 passwordPolicy: required
114 - uid: aai-user-creds
116 externalSecret: '{{ .Values.config.aaiCredsExternalSecret}}'
117 login: '{{ .Values.config.aaiUser }}'
118 password: '{{ .Values.config.aaiPassword }}'
119 passwordPolicy: required
122 externalSecret: '{{ .Values.config.soCredsExternalSecret}}'
123 login: '{{ .Values.config.soUser }}'
124 password: '{{ .Values.config.soPassword }}'
125 passwordPolicy: required
126 - uid: neng-user-creds
128 externalSecret: '{{ .Values.config.nengCredsExternalSecret}}'
129 login: '{{ .Values.config.nengUser }}'
130 password: '{{ .Values.config.nengPassword }}'
131 passwordPolicy: required
132 - uid: cds-user-creds
134 externalSecret: '{{ .Values.config.cdsCredsExternalSecret}}'
135 login: '{{ .Values.config.cdsUser }}'
136 password: '{{ .Values.config.cdsPassword }}'
137 passwordPolicy: required
138 - uid: honeycomb-user-creds
140 externalSecret: '{{ .Values.config.honeycombCredsExternalSecret}}'
141 login: '{{ .Values.config.honeycombUser }}'
142 password: '{{ .Values.config.honeycombPassword }}'
143 passwordPolicy: required
144 - uid: dmaap-user-creds
146 externalSecret: '{{ .Values.config.dmaapCredsExternalSecret}}'
147 login: '{{ .Values.config.dmaapUser }}'
148 password: '{{ .Values.config.dmaapPassword }}'
149 passwordPolicy: required
150 - uid: modeling-user-creds
152 externalSecret: '{{ .Values.config.modelingCredsExternalSecret}}'
153 login: '{{ .Values.config.modelingUser }}'
154 password: '{{ .Values.config.modelingPassword }}'
155 passwordPolicy: required
156 - uid: restconf-creds
158 externalSecret: '{{ .Values.config.restconfCredsExternalSecret}}'
159 login: '{{ .Values.config.restconfUser }}'
160 password: '{{ .Values.config.restconfPassword }}'
161 passwordPolicy: required
163 name: &ansibleSecretName '{{ include "common.release" . }}-sdnc-ansible-creds'
165 externalSecret: '{{ .Values.config.ansibleCredsExternalSecret}}'
166 login: '{{ .Values.config.ansibleUser }}'
167 password: '{{ .Values.config.ansiblePassword }}'
168 passwordPolicy: required
169 - uid: scaleout-creds
171 externalSecret: '{{ .Values.config.scaleoutCredsExternalSecret}}'
172 login: '{{ .Values.config.scaleoutUser }}'
173 password: '{{ .Values.config.scaleoutPassword }}'
174 passwordPolicy: required
175 - uid: oauth-token-secret
177 externalSecret: '{{ ternary (tpl (default "" .Values.config.sdnr.oauth.tokenExternalSecret) .) "oauth-disabled" .Values.config.sdnr.oauth.enabled }}'
178 password: '{{ .Values.config.sdnr.oauth.tokenSecret }}'
179 passwordPolicy: required
180 - uid: keycloak-secret
182 externalSecret: '{{ ternary (tpl (default "" .Values.config.sdnr.oauth.providersSecrets.keycloakExternalSecret) .) "oauth-disabled" .Values.config.sdnr.oauth.enabled }}'
183 password: '{{ .Values.config.sdnr.oauth.providersSecrets.keycloak }}'
184 passwordPolicy: required
185 - uid: ves-collector-secret
187 login: '{{ .Values.config.sdnr.vesCollector.username }}'
188 password: '{{ .Values.config.sdnr.vesCollector.password }}'
190 name: &sdnrdbSecretName '{{ include "common.release" . }}-sdnc-sdnrdb-secret'
192 login: '{{ index .Values "config" "sdnr" "mariadb" "user" }}'
193 password: '{{ index .Values "config" "sdnr" "mariadb" "password" }}'
194 #################################################################
196 #################################################################
198 - mountPath: /var/custom-certs
199 commonName: sdnc.simpledemo.onap.org
201 - sdnc.simpledemo.onap.org
207 name: sdnc-cmpv2-keystore-password
210 group: certmanager.onap.org
212 name: cmpv2-issuer-onap
213 #################################################################
214 # Application configuration defaults.
215 #################################################################
219 image: onap/sdnc-image:3.1.0
221 # flag to enable debugging - application support required
224 # application configuration
229 odlPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
230 # odlCredsExternalSecret: some secret
231 netboxApikey: onceuponatimeiplayedwithnetbox20180814
232 # netboxApikeyExternalSecret: some secret
233 aaiTruststorePassword: changeit
234 # aaiTruststoreExternalSecret: some secret
235 ansibleTruststorePassword: changeit
236 # ansibleTruststoreExternalSecret: some secret
237 truststorePassword: adminadmin
238 # truststoreExternalSecret: some secret
239 keystorePassword: adminadmin
240 # keystoreExternalSecret: some secret
241 aaiUser: sdnc@sdnc.onap.org
242 aaiPassword: demo123456!
243 # aaiCredsExternalSecret: some secret
245 soPassword: password1$
246 # soCredsExternalSecret: some secret
248 nengPassword: ccsdkapps
249 # nengCredsExternalSecret: some secret
251 cdsPassword: ccsdkapps
252 # cdsCredsExternalSecret: some secret
254 honeycombPassword: admin
255 # honeycombCredsExternalSecret: some secret
258 dmaapAuthKey: "fs20cKwalJ6ry4kX:7Hqm6BDZK47IKxGRkOPFk33qMYs="
259 # dmaapCredsExternalSecret: some secret
260 # dmaapAuthKeyExternalSecret: some secret
261 modelingUser: ccsdkapps
262 modelingPassword: ccsdkapps
263 # modelingCredsExternalSecret: some secret
265 restconfPassword: admin
266 # restconfCredsExternalSecret: some secret
268 scaleoutPassword: admin
269 # scaleoutExternalSecret: some secret
271 ansiblePassword: sdnc
272 # ansibleCredsExternalSecret: some secret
274 dbSdnctlDatabase: &sdncDbName sdnctl
275 enableClustering: true
276 sdncHome: /opt/onap/sdnc
277 binDir: /opt/onap/sdnc/bin
278 etcDir: /opt/onap/sdnc/data
280 # if geoEnabled is set to true here, mysql.geoEnabled must be set to true
281 # if geoEnabled is set to true the following 3 values must be set to their proper values
282 myODLCluster: 127.0.0.1
283 peerODLCluster: 127.0.0.1
284 isPrimaryCluster: true
285 configDir: /opt/onap/sdnc/data/properties
286 ccsdkConfigDir: /opt/onap/ccsdk/data/properties
289 logstashServiceName: log-ls
291 ansibleServiceName: sdnc-ansible-server
293 javaHome: /opt/java/openjdk
296 etcDir: /opt/opendaylight/etc
297 binDir: /opt/opendaylight/bin
298 gcLogDir: /opt/opendaylight/data/log
299 salConfigDir: /opt/opendaylight/system/org/opendaylight/controller/sal-clustering-config
300 salConfigVersion: 1.10.4
307 recoveryEventTimeout: 90s
309 persistentActorRestartMinBackoffInSeconds: 10
310 persistentActorRestartMaxBackoffInSeconds: 40
311 persistentActorRestartResetBackoffInSeconds: 20
312 shardTransactionCommitTimeoutInSeconds: 120
313 shardIsolatedLeaderCheckIntervalInMillis: 30000
314 operationTimeoutInSeconds: 120
316 maxGCPauseMillis: 100
317 parallelGCThreads : 3
321 # Next line enables gc logging
322 # gcLogOptions: "-Xlog:gc=trace:file={{.Values.config.odl.gcLogDir}}/gc-%t.log}:time,level,tags:filecount={{.Values.config.odl.javaOptions.numberGCLogFiles}}"
323 # enables sdnr functionality
326 # mode: web - SDNC contains device manager only plus dedicated webserver service for ODLUX (default),
327 # mode: dm - SDNC contains sdnr device manager + ODLUX components
329 # sdnronly: true starts sdnc container with odl and sdnrwt features only
331 sdnrdbTrustAllCerts: true
333 ## for legacy eleasticsearch database
334 enabled: &esdbenabled true
335 # enabled: &esdbenabled false
337 ## for legacy eleasticsearch database
342 externalSecret: *sdnrdbSecretName
347 consumerGroupPrefix: &consumerGroupPrefix sdnr
348 # Strimzi KafkaUser config see configuration below
349 kafkaUser: &kafkaUser
351 - name: unauthenticated.SEC_
355 - name: unauthenticated.VES_PNFREG_OUTPUT
359 - name: *consumerGroupPrefix
363 ## set if bootstrap server is not OOM standard
364 # bootstrapServers: []
365 ## set connection parameters if not default
366 # securityProtocol: PLAINTEXT
367 # saslMechanism: SCRAM-SHA-512
368 ## saslJassConfig: provided by secret
371 mountpointStateProviderEnabled: false
378 tokenIssuer: ONAP SDNC
380 supportOdlusers: true
385 # example definition for a oauth provider
387 keycloak: d8d7ed52-0691-4353-9ac6-5383e72e9c46
391 host: http://keycloak:8080
393 secret: ${KEYCLOAK_SECRET}
395 title: ONAP Keycloak Provider
402 trustAllCertificates: false
405 address: dcae-ves-collector.onap
408 reportingEntityName: ONAP SDN-R
409 eventLogMsgDetail: SHORT
411 # Strimzi KafkaUser/Topic config on top level
412 kafkaUser: *kafkaUser
414 # Annotations to control the execution and deletion of the job
415 # Can be used to delete a job before an Upgrade
418 # # In case of an ArgoCD deployment this Hook deletes the job before syncing
419 # argocd.argoproj.io/hook: Sync
420 # argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
422 # # In case of an Helm/Flux deployment this Hook deletes the job
423 # # This is what defines this resource as a hook. Without this line, the
424 # # job is considered part of the release.
425 # "helm.sh/hook": "pre-upgrade,pre-rollback,post-install"
426 # "helm.sh/hook-delete-policy": "before-hook-creation"
427 # "helm.sh/hook-weight": "1"
429 # dependency / sub-chart configuration
433 mariadb-galera: &mariadbGalera
434 nameOverride: &sdnc-db sdnc-db
435 config: &mariadbGaleraConfig
436 rootPasswordExternalSecret: *rootDbSecret
437 userName: &dbUser sdnctl
438 userCredentialsExternalSecret: *dbSecretName
440 externalSecret: *rootDbSecret
444 externalSecret: *dbSecretName
449 mountSubPath: sdnc/mariadb-galera
456 nameOverride: *sdnc-db
466 <<: *mariadbGaleraConfig
467 mysqlDatabase: *sdncDbName
468 nameOverride: sdnc-ueb-listener
472 configDir: /opt/onap/sdnc/data/properties
473 odlCredsExternalSecret: *odlCredsSecretName
478 restCredsExternalSecret: *ansibleSecretName
482 <<: *mariadbGaleraConfig
483 mysqlDatabase: ansible
485 name: sdnc-ansible-server
490 nameOverride: sdnc-dgbuilder
494 rootPasswordExternalSecret: '{{ .Values.global.mariadbGalera.localCluster |
496 (printf "%s-sdnc-db-root-password" (include "common.release" .))
497 (include "common.mariadb.secret.rootPassSecretName"
498 (dict "dot" . "chartName" "mariadb-galera")) }}'
499 userCredentialsExternalSecret: *dbSecretName
500 dbPodName: *mariadbName
501 dbServiceName: *mariadbService
502 # This should be revisited and changed to plain text
503 dgUserPassword: cc03e747a6afbbcbf8be7668acfebee5
505 nameOverride: sdnc-dgbuilder
517 - baseaddr: "sdnc-dgbuilder-ui"
518 name: "sdnc-dgbuilder"
525 # local elasticsearch cluster
526 localElasticCluster: true
528 enabled: *esdbenabled
529 nameOverride: &elasticSearchName sdnrdb
532 name: *elasticSearchName
535 # dedicatednode: "yes"
536 # working as master node only, in this case increase replicaCount for elasticsearch-data
537 # dedicatednode: "no"
538 # handles master and data node functionality
540 nameOverride: *elasticSearchName
541 cluster_name: sdnrdb-cluster
546 ## set if web socket port should not be default
547 # sdnrWebsocketPort: *sdnrWebsocketPort
548 # default number of instances
555 # probe configuration parameters
557 initialDelaySeconds: 10
559 # necessary to disable liveness probe when setting breakpoints
560 # in debugger so K8s doesn't restart unresponsive container
564 initialDelaySeconds: 10
595 callHomePort: &chport 4334
597 ## set if web socket port should not be default
598 ## change in sdnc-web section as well
599 # sdnrWebsocketPort: &sdnrWebsocketPort 8182
602 ## Persist data to a persitent volume
606 ## A manually managed Persistent Volume and Claim
607 ## Requires persistence.enabled: true
608 ## If defined, PVC must be created manually before volume will be bound
610 volumeReclaimPolicy: Retain
612 ## database data Persistent Volume Storage Class
613 ## If defined, storageClassName: <storageClass>
614 ## If set to "-", storageClassName: "", which disables dynamic provisioning
615 ## If undefined (the default) or set to null, no storageClassName spec is
616 ## set, choosing the default provisioner. (gp2 on AWS, standard on
617 ## GKE, AWS & OpenStack)
618 accessMode: ReadWriteOnce
620 mountPath: /dockerdata-nfs
621 mountSubPath: sdnc/mdsal
622 mdsalPath: /opt/opendaylight/mdsal
623 daeximPath: /opt/opendaylight/mdsal/daexim
624 journalPath: /opt/opendaylight/segmented-journal
625 snapshotsPath: /opt/opendaylight/snapshots
630 - baseaddr: "sdnc-api"
633 - baseaddr: "sdnc-callhome"
634 name: "sdnc-callhome"
644 authorizedPrincipals:
645 - serviceAccount: a1policymanagement-read
646 - serviceAccount: cds-blueprints-processor-read
647 - serviceAccount: consul-read
648 - serviceAccount: ncmp-dmi-plugin-read
649 - serviceAccount: policy-drools-pdp-read
650 - serviceAccount: robot-read
651 - serviceAccount: sdnc-ansible-server-read
652 - serviceAccount: sdnc-dmaap-listener-read
653 - serviceAccount: sdnc-prom-read
654 - serviceAccount: sdnc-ueb-listener-read
655 - serviceAccount: sdnc-web-read
656 - serviceAccount: so-sdnc-adapter-read
657 - serviceAccount: istio-ingress
658 namespace: istio-ingress
659 authorizedPrincipalsSdnHosts:
660 - serviceAccount: sdnc-read
662 #Resource Limit flavor -By Default using small
664 #segregation for different envionment (Small and Large)
683 #Pods Service Account
696 - '{{ include "common.mariadbService" . }}'