Merge "[SDNC] Fix dependencies for SDNRONLY mode"
[oom.git] / kubernetes / sdnc / values.yaml
1 # Copyright © 2020 Samsung Electronics, highstreet technologies GmbH
2 # Copyright © 2017 Amdocs, Bell Canada
3 # Copyright © 2021 Nokia
4 #
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
8 #
9 #       http://www.apache.org/licenses/LICENSE-2.0
10 #
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.
16
17 #################################################################
18 # Global configuration defaults.
19 #################################################################
20 global:
21   nodePortPrefix: 302
22   nodePortPrefixExt: 304
23   persistence:
24     mountPath: /dockerdata-nfs
25   aafEnabled: true
26   centralizedLoggingEnabled: true
27   mariadbGalera:
28     #This flag allows SO to instantiate its own mariadb-galera cluster
29     #If shared instance is used, this chart assumes that DB already exists
30     localCluster: false
31     service: mariadb-galera
32     internalPort: 3306
33     nameOverride: mariadb-galera
34
35 #################################################################
36 # Secrets metaconfig
37 #################################################################
38 secrets:
39   - uid: db-root-password
40     name: &rootDbSecret '{{ include "common.release" . }}-sdnc-db-root-password'
41     type: password
42     # If we're using shared mariadb, we need to use the secret name (second
43     # part).
44     # If not, we do the same trick than for user db secret hat allows you
45     # override this secret using external one with the same field that is used
46     # to pass this to subchart.
47     externalSecret: '{{ .Values.global.mariadbGalera.localCluster |
48       ternary ((hasSuffix "sdnc-db-root-password" (index .Values "mariadb-galera" "rootUser" "externalSecret")) |
49                   ternary
50                     ""
51                     (tpl (default "" (index .Values "mariadb-galera" "rootUser" "externalSecret")) .))
52               (include "common.mariadb.secret.rootPassSecretName"
53                 (dict "dot" .
54                       "chartName" .Values.global.mariadbGalera.nameOverride)) }}'
55     password: '{{ (index .Values "mariadb-galera" "rootUser" "password") }}'
56   - uid: db-secret
57     name: &dbSecretName '{{ include "common.release" . }}-sdnc-db-secret'
58     type: basicAuth
59     # This is a nasty trick that allows you override this secret using external one
60     # with the same field that is used to pass this to subchart
61     externalSecret: '{{ (hasSuffix "sdnc-db-secret" (index .Values "mariadb-galera" "db" "externalSecret")) |
62       ternary
63         ""
64         (tpl (default "" (index .Values "mariadb-galera" "db" "externalSecret")) .) }}'
65     login: '{{ index .Values "mariadb-galera" "db" "user" }}'
66     password: '{{ index .Values "mariadb-galera" "db" "password" }}'
67   - uid: odl-creds
68     name: &odlCredsSecretName '{{ include "common.release" . }}-sdnc-odl-creds'
69     type: basicAuth
70     externalSecret: '{{ .Values.config.odlCredsExternalSecret }}'
71     login: '{{ .Values.config.odlUser }}'
72     password: '{{ .Values.config.odlPassword }}'
73     # For now this is left hardcoded but should be revisited in a future
74     passwordPolicy: required
75   - uid: dmaap-proxy-creds
76     name: &dmaapProxyCredsSecretName '{{ include "common.release" . }}-sdnc-dmaap-proxy-creds'
77     type: basicAuth
78     externalSecret: '{{ .Values.config.dmaapProxyCredsExternalSecret }}'
79     login: '{{ .Values.config.sdnr.dmaapProxy.user }}'
80     password: '{{ .Values.config.sdnr.dmaapProxy.password }}'
81     # For now this is left hardcoded but should be revisited in a future
82     passwordPolicy: required
83   - uid: netbox-apikey
84     type: password
85     externalSecret: '{{ .Values.config.netboxApikeyExternalSecret }}'
86     password: '{{ .Values.config.netboxApikey }}'
87     passwordPolicy: required
88   - uid: aai-truststore-password
89     type: password
90     externalSecret: '{{ .Values.config.aaiTruststoreExternalSecret }}'
91     password: '{{ .Values.config.aaiTruststorePassword }}'
92     passwordPolicy: required
93   - uid: ansible-truststore-password
94     type: password
95     externalSecret: '{{ .Values.config.ansibleTruststoreExternalSecret }}'
96     password: '{{ .Values.config.ansibleTruststorePassword }}'
97     passwordPolicy: required
98   - uid: truststore-password
99     type: password
100     externalSecret: '{{ .Values.config.truststoreExternalSecret }}'
101     password: '{{ .Values.config.truststorePassword }}'
102     passwordPolicy: required
103   - uid: keystore-password
104     type: password
105     externalSecret: '{{ .Values.config.keystoreExternalSecret }}'
106     password: '{{ .Values.config.keystorePassword }}'
107     passwordPolicy: required
108   - uid: dmaap-authkey
109     type: password
110     externalSecret: '{{ .Values.config.dmaapAuthKeyExternalSecret }}'
111     password: '{{ .Values.config.dmaapAuthKey }}'
112     passwordPolicy: required
113   - uid: aai-user-creds
114     type: basicAuth
115     externalSecret: '{{ .Values.config.aaiCredsExternalSecret}}'
116     login: '{{ .Values.config.aaiUser }}'
117     password: '{{ .Values.config.aaiPassword }}'
118     passwordPolicy: required
119   - uid: so-user-creds
120     type: basicAuth
121     externalSecret: '{{ .Values.config.soCredsExternalSecret}}'
122     login: '{{ .Values.config.soUser }}'
123     password: '{{ .Values.config.soPassword }}'
124     passwordPolicy: required
125   - uid: neng-user-creds
126     type: basicAuth
127     externalSecret: '{{ .Values.config.nengCredsExternalSecret}}'
128     login: '{{ .Values.config.nengUser }}'
129     password: '{{ .Values.config.nengPassword }}'
130     passwordPolicy: required
131   - uid: cds-user-creds
132     type: basicAuth
133     externalSecret: '{{ .Values.config.cdsCredsExternalSecret}}'
134     login: '{{ .Values.config.cdsUser }}'
135     password: '{{ .Values.config.cdsPassword }}'
136     passwordPolicy: required
137   - uid: honeycomb-user-creds
138     type: basicAuth
139     externalSecret: '{{ .Values.config.honeycombCredsExternalSecret}}'
140     login: '{{ .Values.config.honeycombUser }}'
141     password: '{{ .Values.config.honeycombPassword }}'
142     passwordPolicy: required
143   - uid: dmaap-user-creds
144     type: basicAuth
145     externalSecret: '{{ .Values.config.dmaapCredsExternalSecret}}'
146     login: '{{ .Values.config.dmaapUser }}'
147     password: '{{ .Values.config.dmaapPassword }}'
148     passwordPolicy: required
149   - uid: modeling-user-creds
150     type: basicAuth
151     externalSecret: '{{ .Values.config.modelingCredsExternalSecret}}'
152     login: '{{ .Values.config.modelingUser }}'
153     password: '{{ .Values.config.modelingPassword }}'
154     passwordPolicy: required
155   - uid: restconf-creds
156     type: basicAuth
157     externalSecret: '{{ .Values.config.restconfCredsExternalSecret}}'
158     login: '{{ .Values.config.restconfUser }}'
159     password: '{{ .Values.config.restconfPassword }}'
160     passwordPolicy: required
161   - uid: ansible-creds
162     name: &ansibleSecretName '{{ include "common.release" . }}-sdnc-ansible-creds'
163     type: basicAuth
164     externalSecret: '{{ .Values.config.ansibleCredsExternalSecret}}'
165     login: '{{ .Values.config.ansibleUser }}'
166     password: '{{ .Values.config.ansiblePassword }}'
167     passwordPolicy: required
168   - uid: scaleout-creds
169     type: basicAuth
170     externalSecret: '{{ .Values.config.scaleoutCredsExternalSecret}}'
171     login: '{{ .Values.config.scaleoutUser }}'
172     password: '{{ .Values.config.scaleoutPassword }}'
173     passwordPolicy: required
174   - uid: oauth-token-secret
175     type: password
176     externalSecret: '{{ ternary (tpl (default "" .Values.config.sdnr.oauth.tokenExternalSecret) .) "oauth-disabled" .Values.config.sdnr.oauth.enabled }}'
177     password: '{{ .Values.config.sdnr.oauth.tokenSecret }}'
178     passwordPolicy: required
179   - uid: keycloak-secret
180     type: password
181     externalSecret: '{{ ternary (tpl (default "" .Values.config.sdnr.oauth.providersSecrets.keycloakExternalSecret) .) "oauth-disabled" .Values.config.sdnr.oauth.enabled }}'
182     password: '{{ .Values.config.sdnr.oauth.providersSecrets.keycloak }}'
183     passwordPolicy: required
184
185 #################################################################
186 # Certificates
187 #################################################################
188 certificates:
189   - mountPath:  /var/custom-certs
190     commonName: sdnc.simpledemo.onap.org
191     dnsNames:
192         - sdnc.simpledemo.onap.org
193     keystore:
194       outputType:
195         - jks
196       passwordSecretRef:
197         create: true
198         name: sdnc-cmpv2-keystore-password
199         key: password
200     issuer:
201       group: certmanager.onap.org
202       kind: CMPv2Issuer
203       name: cmpv2-issuer-onap
204 #################################################################
205 # Application configuration defaults.
206 #################################################################
207 # application images
208
209 pullPolicy: Always
210 image: onap/sdnc-image:2.2.2
211
212 # flag to enable debugging - application support required
213 debugEnabled: false
214
215 # application configuration
216 config:
217   odlUid: 100
218   odlGid: 101
219   odlUser: admin
220   odlPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
221   # odlCredsExternalSecret: some secret
222   netboxApikey: onceuponatimeiplayedwithnetbox20180814
223   # netboxApikeyExternalSecret: some secret
224   aaiTruststorePassword: changeit
225   # aaiTruststoreExternalSecret: some secret
226   ansibleTruststorePassword: changeit
227   # ansibleTruststoreExternalSecret: some secret
228   truststorePassword: adminadmin
229   # truststoreExternalSecret: some secret
230   keystorePassword: adminadmin
231   # keystoreExternalSecret: some secret
232   aaiUser: sdnc@sdnc.onap.org
233   aaiPassword: demo123456!
234   # aaiCredsExternalSecret: some secret
235   soUser: sdncaBpmn
236   soPassword: password1$
237   # soCredsExternalSecret: some secret
238   nengUser: ccsdkapps
239   nengPassword: ccsdkapps
240   # nengCredsExternalSecret: some secret
241   cdsUser: ccsdkapps
242   cdsPassword: ccsdkapps
243   # cdsCredsExternalSecret: some secret
244   honeycombUser: admin
245   honeycombPassword: admin
246   # honeycombCredsExternalSecret: some secret
247   dmaapUser: admin
248   dmaapPassword: admin
249   dmaapAuthKey: "fs20cKwalJ6ry4kX:7Hqm6BDZK47IKxGRkOPFk33qMYs="
250   # dmaapCredsExternalSecret: some secret
251   # dmaapAuthKeyExternalSecret: some secret
252   modelingUser: ccsdkapps
253   modelingPassword: ccsdkapps
254   # modelingCredsExternalSecret: some secret
255   restconfUser: admin
256   restconfPassword: admin
257   # restconfCredsExternalSecret: some secret
258   scaleoutUser: admin
259   scaleoutPassword: admin
260   # scaleoutExternalSecret: some secret
261   ansibleUser: sdnc
262   ansiblePassword: sdnc
263   # ansibleCredsExternalSecret: some secret
264   dbSdnctlDatabase: &sdncDbName sdnctl
265   enableClustering: true
266   sdncHome: /opt/onap/sdnc
267   binDir: /opt/onap/sdnc/bin
268   etcDir: /opt/onap/sdnc/data
269   geoEnabled: false
270 # if geoEnabled is set to true here, mysql.geoEnabled must be set to true
271 # if geoEnabled is set to true the following 3 values must be set to their proper values
272   myODLCluster: 127.0.0.1
273   peerODLCluster: 127.0.0.1
274   isPrimaryCluster: true
275   configDir: /opt/onap/sdnc/data/properties
276   ccsdkConfigDir: /opt/onap/ccsdk/data/properties
277   dmaapTopic: SUCCESS
278   dmaapPort: 3904
279   logstashServiceName: log-ls
280   logstashPort: 5044
281   ansibleServiceName: sdnc-ansible-server
282   ansiblePort: 8000
283   javaHome: /opt/java/openjdk
284
285   odl:
286     etcDir: /opt/opendaylight/etc
287     binDir: /opt/opendaylight/bin
288     gcLogDir: /opt/opendaylight/data/log
289     salConfigDir: /opt/opendaylight/system/org/opendaylight/controller/sal-clustering-config
290     salConfigVersion: 1.10.4
291     akka:
292       seedNodeTimeout: 15s
293       circuitBreaker:
294         maxFailures: 10
295         callTimeout: 90s
296         resetTimeout: 30s
297       recoveryEventTimeout: 90s
298     datastore:
299       persistentActorRestartMinBackoffInSeconds: 10
300       persistentActorRestartMaxBackoffInSeconds: 40
301       persistentActorRestartResetBackoffInSeconds: 20
302       shardTransactionCommitTimeoutInSeconds: 120
303       shardIsolatedLeaderCheckIntervalInMillis: 30000
304       operationTimeoutInSeconds: 120
305     javaOptions:
306       maxGCPauseMillis: 100
307       parallelGCThreads : 3
308       numberGCLogFiles: 10
309       minMemory: 512m
310       maxMemory: 2048m
311       gcLogOptions: ""
312       # Next line enables gc logging
313       # gcLogOptions: "-Xlog:gc=trace:file={{.Values.config.odl.gcLogDir}}/gc-%t.log}:time,level,tags:filecount={{.Values.config.odl.javaOptions.numberGCLogFiles}}"
314         # enables sdnr functionality
315   sdnr:
316     enabled: true
317     # mode: web - SDNC contains device manager only plus dedicated webserver service for ODLUX (default),
318     # mode: dm - SDNC contains sdnr device manager + ODLUX components
319     mode: dm
320     # sdnronly: true starts sdnc container with odl and sdnrwt features only
321     sdnronly: false
322     sdnrdbTrustAllCerts: true
323     mountpointRegistrarEnabled: false
324     mountpointStateProviderEnabled: false
325     netconfCallHome:
326       enabled: true
327     #
328     # enable and set dmaap-proxy for mountpointRegistrar
329     dmaapProxy:
330       enabled: false
331       usepwd: true
332       user: addUserHere
333       password: addPasswordHere
334       url: addProxyUrlHere
335     oauth:
336       enabled: false
337       tokenIssuer: ONAP SDNC
338       tokenSecret: secret
339       supportOdlusers: true
340       redirectUri: null
341       publicUrl: none
342       odluxRbac:
343         enabled: true
344       # example definition for a oauth provider
345       providersSecrets:
346         keycloak: d8d7ed52-0691-4353-9ac6-5383e72e9c46
347       providers:
348       - id: keycloak
349         type: KEYCLOAK
350         host: http://keycloak:8080
351         clientId: odlux.app
352         secret: ${KEYCLOAK_SECRET}
353         scope: openid
354         title: ONAP Keycloak Provider
355         roleMapping:
356           mykeycloak: admin
357
358 # dependency / sub-chart configuration
359 certInitializer:
360   nameOverride: sdnc-cert-initializer
361   truststoreMountpath: /opt/onap/sdnc/data/stores
362   fqdn: "sdnc"
363   app_ns: "org.osaaf.aaf"
364   fqi: "sdnc@sdnc.onap.org"
365   fqi_namespace: org.onap.sdnc
366   public_fqdn: "sdnc.onap.org"
367   aafDeployFqi: "deployer@people.osaaf.org"
368   aafDeployPass: demo123456!
369   cadi_latitude: "38.0"
370   cadi_longitude: "-72.0"
371   credsPath: /opt/app/osaaf/local
372   aaf_add_config: >
373     cd /opt/app/osaaf/local;
374     /opt/app/aaf_config/bin/agent.sh local showpass {{.Values.fqi}} {{ .Values.fqdn }} | grep cadi_keystore_password= | cut -d= -f 2 > {{ .Values.credsPath }}/.pass 2>&1
375
376 # dependency / sub-chart configuration
377 network-name-gen:
378   enabled: true
379 mariadb-galera: &mariadbGalera
380   nameOverride: &sdnc-db sdnc-db
381   config: &mariadbGaleraConfig
382     rootPasswordExternalSecret: *rootDbSecret
383     userName: &dbUser sdnctl
384     userCredentialsExternalSecret: *dbSecretName
385   rootUser:
386     externalSecret: *rootDbSecret
387   db:
388     user: *dbUser
389     externalSecret: *dbSecretName
390   service:
391     name: sdnc-dbhost
392   sdnctlPrefix: sdnc
393   persistence:
394     mountSubPath: sdnc/mariadb-galera
395     enabled: true
396   replicaCount: 1
397   serviceAccount:
398     nameOverride: *sdnc-db
399
400 cds:
401   enabled: false
402
403 dmaap-listener:
404   enabled: true
405   nameOverride: sdnc-dmaap-listener
406   mariadb-galera:
407     <<: *mariadbGalera
408     config:
409       <<: *mariadbGaleraConfig
410       mysqlDatabase: *sdncDbName
411   config:
412     sdncChartName: sdnc
413     dmaapPort: 3904
414     sdncPort: 8282
415     configDir: /opt/onap/sdnc/data/properties
416     odlCredsExternalSecret: *odlCredsSecretName
417
418 ueb-listener:
419   enabled: true
420   mariadb-galera:
421     <<: *mariadbGalera
422     config:
423       <<: *mariadbGaleraConfig
424       mysqlDatabase: *sdncDbName
425   nameOverride: sdnc-ueb-listener
426   config:
427     sdncPort: 8282
428     sdncChartName: sdnc
429     configDir: /opt/onap/sdnc/data/properties
430     odlCredsExternalSecret: *odlCredsSecretName
431
432 sdnc-ansible-server:
433   enabled: true
434   config:
435     restCredsExternalSecret: *ansibleSecretName
436   mariadb-galera:
437     <<: *mariadbGalera
438     config:
439       <<: *mariadbGaleraConfig
440       mysqlDatabase: ansible
441   service:
442     name: sdnc-ansible-server
443     internalPort: 8000
444
445 dgbuilder:
446   enabled: true
447   nameOverride: sdnc-dgbuilder
448   certInitializer:
449     nameOverride: sdnc-dgbuilder-cert-initializer
450   config:
451     db:
452       dbName: *sdncDbName
453       rootPasswordExternalSecret: '{{ .Values.global.mariadbGalera.localCluster |
454         ternary
455           (printf "%s-sdnc-db-root-password" (include "common.release" .))
456           (include "common.mariadb.secret.rootPassSecretName"
457             (dict "dot" . "chartName" "mariadb-galera")) }}'
458       userCredentialsExternalSecret: *dbSecretName
459     dbPodName: mariadb-galera
460     dbServiceName: mariadb-galera
461     # This should be revisited and changed to plain text
462     dgUserPassword: cc03e747a6afbbcbf8be7668acfebee5
463   serviceAccount:
464     nameOverride: sdnc-dgbuilder
465   mariadb-galera:
466   service:
467     name: sdnc-dgbuilder
468     nodePort: "03"
469
470   ingress:
471     enabled: false
472     service:
473       - baseaddr: "sdnc-dgbuilder"
474         name: "sdnc-dgbuilder"
475         port: 3000
476       - baseaddr: "sdnc-web-service"
477         name: "sdnc-web-service"
478         port: 8443
479     config:
480       ssl: "redirect"
481
482
483
484 # local elasticsearch cluster
485 localElasticCluster: true
486 elasticsearch:
487   nameOverride: &elasticSearchName sdnrdb
488   name: sdnrdb-cluster
489   certInitializer:
490     fqdn: "sdnc"
491     fqi_namespace: org.onap.sdnc
492     fqi: "sdnc@sdnc.onap.org"
493   service:
494     name: *elasticSearchName
495   master:
496     replicaCount: 3
497     # dedicatednode: "yes"
498     # working as master node only, in this case increase replicaCount for elasticsearch-data
499     # dedicatednode: "no"
500     # handles master and data node functionality
501     dedicatednode: "no"
502     nameOverride: *elasticSearchName
503     cluster_name: sdnrdb-cluster
504 # enable
505 sdnc-web:
506   enabled: true
507 # default number of instances
508 replicaCount: 1
509
510 nodeSelector: {}
511
512 affinity: {}
513
514 # probe configuration parameters
515 liveness:
516   initialDelaySeconds: 10
517   periodSeconds: 10
518   # necessary to disable liveness probe when setting breakpoints
519   # in debugger so K8s doesn't restart unresponsive container
520   enabled: true
521
522 readiness:
523   initialDelaySeconds: 10
524   periodSeconds: 10
525
526 service:
527   type: NodePort
528   name: sdnc
529   portName: sdnc
530   internalPort: 8181
531   internalPort2: 8101
532   internalPort3: 8080
533   internalPort4: 8443
534
535   #port
536   externalPort: 8282
537
538   externalPort2: 8202
539
540   externalPort3: 8280
541
542   externalPort4: 8443
543   nodePort4: 67
544
545   clusterPort: 2550
546   clusterPort2: 2650
547   clusterPort3: 2681
548
549   geoNodePort1: 61
550   geoNodePort2: 62
551   geoNodePort3: 63
552   geoNodePort4: 64
553   geoNodePort5: 65
554   geoNodePort6: 66
555
556   callHomePort: 6666
557   callHomeNodePort: 66
558
559 ## Persist data to a persitent volume
560 persistence:
561   enabled: true
562
563   ## A manually managed Persistent Volume and Claim
564   ## Requires persistence.enabled: true
565   ## If defined, PVC must be created manually before volume will be bound
566   # existingClaim:
567   volumeReclaimPolicy: Retain
568
569   ## database data Persistent Volume Storage Class
570   ## If defined, storageClassName: <storageClass>
571   ## If set to "-", storageClassName: "", which disables dynamic provisioning
572   ## If undefined (the default) or set to null, no storageClassName spec is
573   ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
574   ##   GKE, AWS & OpenStack)
575   accessMode: ReadWriteOnce
576   size: 1Gi
577   mountPath: /dockerdata-nfs
578   mountSubPath: sdnc/mdsal
579   mdsalPath: /opt/opendaylight/mdsal
580   daeximPath: /opt/opendaylight/mdsal/daexim
581   journalPath: /opt/opendaylight/segmented-journal
582   snapshotsPath: /opt/opendaylight/snapshots
583
584 certpersistence:
585   enabled: true
586
587   ## A manually managed Persistent Volume and Claim
588   ## Requires persistence.enabled: true
589   ## If defined, PVC must be created manually before volume will be bound
590   # existingClaim:
591
592   volumeReclaimPolicy: Retain
593   accessMode: ReadWriteOnce
594   size: 50Mi
595   mountPath: /dockerdata-nfs
596   mountSubPath: sdnc/certs
597   certPath: /opt/app/osaaf
598   ##storageClass: "manual"
599
600 ingress:
601   enabled: false
602   service:
603     - baseaddr: "sdnc.api"
604       name: "sdnc"
605       port: 8443
606   config:
607     ssl: "redirect"
608
609 #Resource Limit flavor -By Default using small
610 flavor: small
611 #segregation for different envionment (Small and Large)
612
613 resources:
614   small:
615     limits:
616       cpu: 2
617       memory: 4Gi
618     requests:
619       cpu: 1
620       memory: 2Gi
621   large:
622     limits:
623       cpu: 4
624       memory: 8Gi
625     requests:
626       cpu: 2
627       memory: 4Gi
628   unlimited: {}
629
630 #Pods Service Account
631 serviceAccount:
632   nameOverride: sdnc
633   roles:
634     - read
635
636 #Log configuration
637 log:
638   path: /var/log/onap