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