9a0079854546c06deba392d112541fa9b8229a0b
[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   centralizedLoggingEnabled: 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
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: netbox-apikey
76     type: password
77     externalSecret: '{{ .Values.config.netboxApikeyExternalSecret }}'
78     password: '{{ .Values.config.netboxApikey }}'
79     passwordPolicy: required
80   - uid: aai-truststore-password
81     type: password
82     externalSecret: '{{ .Values.config.aaiTruststoreExternalSecret }}'
83     password: '{{ .Values.config.aaiTruststorePassword }}'
84     passwordPolicy: required
85   - uid: ansible-truststore-password
86     type: password
87     externalSecret: '{{ .Values.config.ansibleTruststoreExternalSecret }}'
88     password: '{{ .Values.config.ansibleTruststorePassword }}'
89     passwordPolicy: required
90   - uid: truststore-password
91     type: password
92     externalSecret: '{{ .Values.config.truststoreExternalSecret }}'
93     password: '{{ .Values.config.truststorePassword }}'
94     passwordPolicy: required
95   - uid: keystore-password
96     type: password
97     externalSecret: '{{ .Values.config.keystoreExternalSecret }}'
98     password: '{{ .Values.config.keystorePassword }}'
99     passwordPolicy: required
100   - uid: dmaap-authkey
101     type: password
102     externalSecret: '{{ .Values.config.dmaapAuthKeyExternalSecret }}'
103     password: '{{ .Values.config.dmaapAuthKey }}'
104     passwordPolicy: required
105   - uid: aai-user-creds
106     type: basicAuth
107     externalSecret: '{{ .Values.config.aaiCredsExternalSecret}}'
108     login: '{{ .Values.config.aaiUser }}'
109     password: '{{ .Values.config.aaiPassword }}'
110     passwordPolicy: required
111   - uid: so-user-creds
112     type: basicAuth
113     externalSecret: '{{ .Values.config.soCredsExternalSecret}}'
114     login: '{{ .Values.config.soUser }}'
115     password: '{{ .Values.config.soPassword }}'
116     passwordPolicy: required
117   - uid: neng-user-creds
118     type: basicAuth
119     externalSecret: '{{ .Values.config.nengCredsExternalSecret}}'
120     login: '{{ .Values.config.nengUser }}'
121     password: '{{ .Values.config.nengPassword }}'
122     passwordPolicy: required
123   - uid: cds-user-creds
124     type: basicAuth
125     externalSecret: '{{ .Values.config.cdsCredsExternalSecret}}'
126     login: '{{ .Values.config.cdsUser }}'
127     password: '{{ .Values.config.cdsPassword }}'
128     passwordPolicy: required
129   - uid: honeycomb-user-creds
130     type: basicAuth
131     externalSecret: '{{ .Values.config.honeycombCredsExternalSecret}}'
132     login: '{{ .Values.config.honeycombUser }}'
133     password: '{{ .Values.config.honeycombPassword }}'
134     passwordPolicy: required
135   - uid: dmaap-user-creds
136     type: basicAuth
137     externalSecret: '{{ .Values.config.dmaapCredsExternalSecret}}'
138     login: '{{ .Values.config.dmaapUser }}'
139     password: '{{ .Values.config.dmaapPassword }}'
140     passwordPolicy: required
141   - uid: modeling-user-creds
142     type: basicAuth
143     externalSecret: '{{ .Values.config.modelingCredsExternalSecret}}'
144     login: '{{ .Values.config.modelingUser }}'
145     password: '{{ .Values.config.modelingPassword }}'
146     passwordPolicy: required
147   - uid: restconf-creds
148     type: basicAuth
149     externalSecret: '{{ .Values.config.restconfCredsExternalSecret}}'
150     login: '{{ .Values.config.restconfUser }}'
151     password: '{{ .Values.config.restconfPassword }}'
152     passwordPolicy: required
153   - uid: ansible-creds
154     name: &ansibleSecretName '{{ include "common.release" . }}-sdnc-ansible-creds'
155     type: basicAuth
156     externalSecret: '{{ .Values.config.ansibleCredsExternalSecret}}'
157     login: '{{ .Values.config.ansibleUser }}'
158     password: '{{ .Values.config.ansiblePassword }}'
159     passwordPolicy: required
160   - uid: scaleout-creds
161     type: basicAuth
162     externalSecret: '{{ .Values.config.scaleoutCredsExternalSecret}}'
163     login: '{{ .Values.config.scaleoutUser }}'
164     password: '{{ .Values.config.scaleoutPassword }}'
165     passwordPolicy: required
166   - uid: oauth-token-secret
167     type: password
168     externalSecret: '{{ ternary (tpl (default "" .Values.config.sdnr.oauth.tokenExternalSecret) .) "oauth-disabled" .Values.config.sdnr.oauth.enabled }}'
169     password: '{{ .Values.config.sdnr.oauth.tokenSecret }}'
170     passwordPolicy: required
171   - uid: keycloak-secret
172     type: password
173     externalSecret: '{{ ternary (tpl (default "" .Values.config.sdnr.oauth.providersSecrets.keycloakExternalSecret) .) "oauth-disabled" .Values.config.sdnr.oauth.enabled }}'
174     password: '{{ .Values.config.sdnr.oauth.providersSecrets.keycloak }}'
175     passwordPolicy: required
176   - uid: ves-collector-secret
177     type: basicAuth
178     login: '{{ .Values.config.sdnr.vesCollector.username }}'
179     password: '{{ .Values.config.sdnr.vesCollector.password }}'
180 #################################################################
181 # Certificates
182 #################################################################
183 certificates:
184   - mountPath:  /var/custom-certs
185     commonName: sdnc.simpledemo.onap.org
186     dnsNames:
187         - sdnc.simpledemo.onap.org
188     keystore:
189       outputType:
190         - jks
191       passwordSecretRef:
192         create: true
193         name: sdnc-cmpv2-keystore-password
194         key: password
195     issuer:
196       group: certmanager.onap.org
197       kind: CMPv2Issuer
198       name: cmpv2-issuer-onap
199 #################################################################
200 # Application configuration defaults.
201 #################################################################
202 # application images
203
204 pullPolicy: Always
205 image: onap/sdnc-image:2.5.5
206
207 # flag to enable debugging - application support required
208 debugEnabled: false
209
210 # application configuration
211 config:
212   odlUid: 100
213   odlGid: 101
214   odlUser: admin
215   odlPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
216   # odlCredsExternalSecret: some secret
217   netboxApikey: onceuponatimeiplayedwithnetbox20180814
218   # netboxApikeyExternalSecret: some secret
219   aaiTruststorePassword: changeit
220   # aaiTruststoreExternalSecret: some secret
221   ansibleTruststorePassword: changeit
222   # ansibleTruststoreExternalSecret: some secret
223   truststorePassword: adminadmin
224   # truststoreExternalSecret: some secret
225   keystorePassword: adminadmin
226   # keystoreExternalSecret: some secret
227   aaiUser: sdnc@sdnc.onap.org
228   aaiPassword: demo123456!
229   # aaiCredsExternalSecret: some secret
230   soUser: sdncaBpmn
231   soPassword: password1$
232   # soCredsExternalSecret: some secret
233   nengUser: ccsdkapps
234   nengPassword: ccsdkapps
235   # nengCredsExternalSecret: some secret
236   cdsUser: ccsdkapps
237   cdsPassword: ccsdkapps
238   # cdsCredsExternalSecret: some secret
239   honeycombUser: admin
240   honeycombPassword: admin
241   # honeycombCredsExternalSecret: some secret
242   dmaapUser: admin
243   dmaapPassword: admin
244   dmaapAuthKey: "fs20cKwalJ6ry4kX:7Hqm6BDZK47IKxGRkOPFk33qMYs="
245   # dmaapCredsExternalSecret: some secret
246   # dmaapAuthKeyExternalSecret: some secret
247   modelingUser: ccsdkapps
248   modelingPassword: ccsdkapps
249   # modelingCredsExternalSecret: some secret
250   restconfUser: admin
251   restconfPassword: admin
252   # restconfCredsExternalSecret: some secret
253   scaleoutUser: admin
254   scaleoutPassword: admin
255   # scaleoutExternalSecret: some secret
256   ansibleUser: sdnc
257   ansiblePassword: sdnc
258   # ansibleCredsExternalSecret: some secret
259
260   dbSdnctlDatabase: &sdncDbName sdnctl
261   enableClustering: true
262   sdncHome: /opt/onap/sdnc
263   binDir: /opt/onap/sdnc/bin
264   etcDir: /opt/onap/sdnc/data
265   geoEnabled: false
266 # if geoEnabled is set to true here, mysql.geoEnabled must be set to true
267 # if geoEnabled is set to true the following 3 values must be set to their proper values
268   myODLCluster: 127.0.0.1
269   peerODLCluster: 127.0.0.1
270   isPrimaryCluster: true
271   configDir: /opt/onap/sdnc/data/properties
272   ccsdkConfigDir: /opt/onap/ccsdk/data/properties
273   dmaapTopic: SUCCESS
274   dmaapPort: 3904
275   logstashServiceName: log-ls
276   logstashPort: 5044
277   ansibleServiceName: sdnc-ansible-server
278   ansiblePort: 8000
279   javaHome: /opt/java/openjdk
280
281   odl:
282     etcDir: /opt/opendaylight/etc
283     binDir: /opt/opendaylight/bin
284     gcLogDir: /opt/opendaylight/data/log
285     salConfigDir: /opt/opendaylight/system/org/opendaylight/controller/sal-clustering-config
286     salConfigVersion: 1.10.4
287     akka:
288       seedNodeTimeout: 15s
289       circuitBreaker:
290         maxFailures: 10
291         callTimeout: 90s
292         resetTimeout: 30s
293       recoveryEventTimeout: 90s
294     datastore:
295       persistentActorRestartMinBackoffInSeconds: 10
296       persistentActorRestartMaxBackoffInSeconds: 40
297       persistentActorRestartResetBackoffInSeconds: 20
298       shardTransactionCommitTimeoutInSeconds: 120
299       shardIsolatedLeaderCheckIntervalInMillis: 30000
300       operationTimeoutInSeconds: 120
301     javaOptions:
302       maxGCPauseMillis: 100
303       parallelGCThreads : 3
304       numberGCLogFiles: 10
305       minMemory: 512m
306       maxMemory: 2048m
307       gcLogOptions: ""
308       # Next line enables gc logging
309       # gcLogOptions: "-Xlog:gc=trace:file={{.Values.config.odl.gcLogDir}}/gc-%t.log}:time,level,tags:filecount={{.Values.config.odl.javaOptions.numberGCLogFiles}}"
310         # enables sdnr functionality
311   sdnr:
312     enabled: true
313     # mode: web - SDNC contains device manager only plus dedicated webserver service for ODLUX (default),
314     # mode: dm - SDNC contains sdnr device manager + ODLUX components
315     mode: dm
316     # sdnronly: true starts sdnc container with odl and sdnrwt features only
317     sdnronly: false
318     sdnrdbTrustAllCerts: true
319     kafka:
320       enabled: false
321       consumerGroupPrefix: &consumerGroupPrefix sdnr
322       # Strimzi KafkaUser config see configuration below
323       kafkaUser: &kafkaUser
324         acls:
325         - name: unauthenticated.SEC_
326           type: topic
327           patternType: prefix
328           operations: [Read]
329         - name: unauthenticated.VES_PNFREG_OUTPUT
330           type: topic
331           patternType: literal
332           operations: [Read]
333         - name: *consumerGroupPrefix
334           type: group
335           patternType: prefix
336           operations: [Read]
337       ## set if bootstrap server is not OOM standard
338       # bootstrapServers: []
339       ## set connection parameters if not default
340       # securityProtocol: PLAINTEXT
341       # saslMechanism: SCRAM-SHA-512
342       ## saslJassConfig: provided by secret
343
344
345     mountpointStateProviderEnabled: false
346     netconfCallHome:
347       enabled: true
348
349
350     oauth:
351       enabled: false
352       tokenIssuer: ONAP SDNC
353       tokenSecret: secret
354       supportOdlusers: true
355       redirectUri: null
356       publicUrl: none
357       odluxRbac:
358         enabled: true
359       # example definition for a oauth provider
360       providersSecrets:
361         keycloak: d8d7ed52-0691-4353-9ac6-5383e72e9c46
362       providers:
363       - id: keycloak
364         type: KEYCLOAK
365         host: http://keycloak:8080
366         clientId: odlux.app
367         secret: ${KEYCLOAK_SECRET}
368         scope: openid
369         title: ONAP Keycloak Provider
370         roleMapping:
371           mykeycloak: admin
372     vesCollector:
373       enabled: false
374       tls:
375         enabled: true
376       trustAllCertificates: false
377       username: sample1
378       password: sample1
379       address: dcae-ves-collector.onap
380       port: 8080
381       version: v7
382       reportingEntityName: ONAP SDN-R
383       eventLogMsgDetail: SHORT
384
385 # Strimzi KafkaUser/Topic config on top level
386 kafkaUser: *kafkaUser
387
388
389 # dependency / sub-chart configuration
390 network-name-gen:
391   enabled: true
392 mariadb-galera: &mariadbGalera
393   nameOverride: &sdnc-db sdnc-db
394   config: &mariadbGaleraConfig
395     rootPasswordExternalSecret: *rootDbSecret
396     userName: &dbUser sdnctl
397     userCredentialsExternalSecret: *dbSecretName
398   rootUser:
399     externalSecret: *rootDbSecret
400   db:
401     user: *dbUser
402     externalSecret: *dbSecretName
403   service:
404     name: sdnc-dbhost
405   sdnctlPrefix: sdnc
406   persistence:
407     mountSubPath: sdnc/mariadb-galera
408     enabled: true
409   replicaCount: 1
410   serviceAccount:
411     nameOverride: *sdnc-db
412
413 cds:
414   enabled: false
415
416 dmaap-listener:
417   enabled: true
418   nameOverride: sdnc-dmaap-listener
419   mariadb-galera:
420     <<: *mariadbGalera
421     config:
422       <<: *mariadbGaleraConfig
423       mysqlDatabase: *sdncDbName
424   config:
425     sdncChartName: sdnc
426     dmaapPort: 3904
427     sdncPort: 8282
428     configDir: /opt/onap/sdnc/data/properties
429     odlCredsExternalSecret: *odlCredsSecretName
430
431 ueb-listener:
432   enabled: true
433   mariadb-galera:
434     <<: *mariadbGalera
435     config:
436       <<: *mariadbGaleraConfig
437       mysqlDatabase: *sdncDbName
438   nameOverride: sdnc-ueb-listener
439   config:
440     sdncPort: 8282
441     sdncChartName: sdnc
442     configDir: /opt/onap/sdnc/data/properties
443     odlCredsExternalSecret: *odlCredsSecretName
444
445 sdnc-ansible-server:
446   enabled: true
447   config:
448     restCredsExternalSecret: *ansibleSecretName
449   mariadb-galera:
450     <<: *mariadbGalera
451     config:
452       <<: *mariadbGaleraConfig
453       mysqlDatabase: ansible
454   service:
455     name: sdnc-ansible-server
456     internalPort: 8000
457
458 dgbuilder:
459   enabled: true
460   nameOverride: sdnc-dgbuilder
461   config:
462     db:
463       dbName: *sdncDbName
464       rootPasswordExternalSecret: '{{ .Values.global.mariadbGalera.localCluster |
465         ternary
466           (printf "%s-sdnc-db-root-password" (include "common.release" .))
467           (include "common.mariadb.secret.rootPassSecretName"
468             (dict "dot" . "chartName" "mariadb-galera")) }}'
469       userCredentialsExternalSecret: *dbSecretName
470     dbPodName: mariadb-galera
471     dbServiceName: mariadb-galera
472     # This should be revisited and changed to plain text
473     dgUserPassword: cc03e747a6afbbcbf8be7668acfebee5
474   serviceAccount:
475     nameOverride: sdnc-dgbuilder
476   mariadb-galera:
477   service:
478     name: sdnc-dgbuilder
479     ports:
480     - name: http
481       port: 3100
482       nodePort: "03"
483
484   ingress:
485     enabled: false
486     service:
487       - baseaddr: "sdnc-dgbuilder-ui"
488         name: "sdnc-dgbuilder"
489         port: 3100
490     config:
491       ssl: "redirect"
492
493
494
495 # local elasticsearch cluster
496 localElasticCluster: true
497 elasticsearch:
498   nameOverride: &elasticSearchName sdnrdb
499   name: sdnrdb-cluster
500   service:
501     name: *elasticSearchName
502   master:
503     replicaCount: 3
504     # dedicatednode: "yes"
505     # working as master node only, in this case increase replicaCount for elasticsearch-data
506     # dedicatednode: "no"
507     # handles master and data node functionality
508     dedicatednode: "no"
509     nameOverride: *elasticSearchName
510     cluster_name: sdnrdb-cluster
511
512 # enable
513 sdnc-web:
514   enabled: true
515   ## set if web socket port should not be default
516   # sdnrWebsocketPort: *sdnrWebsocketPort
517 # default number of instances
518 replicaCount: 1
519
520 nodeSelector: {}
521
522 affinity: {}
523
524 # probe configuration parameters
525 liveness:
526   initialDelaySeconds: 10
527   periodSeconds: 10
528   # necessary to disable liveness probe when setting breakpoints
529   # in debugger so K8s doesn't restart unresponsive container
530   enabled: true
531
532 readiness:
533   initialDelaySeconds: 10
534   periodSeconds: 10
535
536 service:
537   type: NodePort
538   name: sdnc
539   portName: http
540   internalPort: 8181
541   internalPort2: 8101
542   internalPort3: 8080
543
544   #port
545   externalPort: 8282
546
547   externalPort2: 8202
548
549   externalPort3: 8280
550
551   nodePort4: 67
552
553   clusterPort: 2550
554   clusterPort2: 2650
555   clusterPort3: 2681
556
557   geoNodePort1: 61
558   geoNodePort2: 62
559   geoNodePort3: 63
560   geoNodePort4: 64
561   geoNodePort5: 65
562   geoNodePort6: 66
563
564   callHomePort: &chport 4334
565   callHomeNodePort: 66
566   ## set if web socket port should not be default
567   ## change in sdnc-web section as well
568   # sdnrWebsocketPort: &sdnrWebsocketPort 8182
569
570
571 ## Persist data to a persitent volume
572 persistence:
573   enabled: true
574
575   ## A manually managed Persistent Volume and Claim
576   ## Requires persistence.enabled: true
577   ## If defined, PVC must be created manually before volume will be bound
578   # existingClaim:
579   volumeReclaimPolicy: Retain
580
581   ## database data Persistent Volume Storage Class
582   ## If defined, storageClassName: <storageClass>
583   ## If set to "-", storageClassName: "", which disables dynamic provisioning
584   ## If undefined (the default) or set to null, no storageClassName spec is
585   ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
586   ##   GKE, AWS & OpenStack)
587   accessMode: ReadWriteOnce
588   size: 1Gi
589   mountPath: /dockerdata-nfs
590   mountSubPath: sdnc/mdsal
591   mdsalPath: /opt/opendaylight/mdsal
592   daeximPath: /opt/opendaylight/mdsal/daexim
593   journalPath: /opt/opendaylight/segmented-journal
594   snapshotsPath: /opt/opendaylight/snapshots
595
596 ingress:
597   enabled: false
598   service:
599   - baseaddr: "sdnc-api"
600     name: "sdnc"
601     port: 8282
602   - baseaddr: "sdnc-callhome"
603     name: "sdnc-callhome"
604     port: *chport
605     protocol: tcp
606     exposedPort: *chport
607     exposedProtocol: TCP
608   config:
609     ssl: "redirect"
610
611 serviceMesh:
612   authorizationPolicy:
613     authorizedPrincipals:
614       - serviceAccount: a1policymanagement-read
615       - serviceAccount: cds-blueprints-processor-read
616       - serviceAccount: consul-read
617       - serviceAccount: ncmp-dmi-plugin-read
618       - serviceAccount: policy-drools-pdp-read
619       - serviceAccount: robot-read
620       - serviceAccount: sdnc-ansible-server-read
621       - serviceAccount: sdnc-dmaap-listener-read
622       - serviceAccount: sdnc-prom-read
623       - serviceAccount: sdnc-ueb-listener-read
624       - serviceAccount: sdnc-web-read
625       - serviceAccount: so-sdnc-adapter-read
626       - serviceAccount: istio-ingress
627         namespace: istio-ingress
628     authorizedPrincipalsSdnHosts:
629       - serviceAccount: sdnc-read
630
631 #Resource Limit flavor -By Default using small
632 flavor: small
633 #segregation for different envionment (Small and Large)
634
635 resources:
636   small:
637     limits:
638       cpu: 999
639       memory: 4.7Gi
640     requests:
641       cpu: 1
642       memory: 4.7Gi
643   large:
644     limits:
645       cpu: 999
646       memory: 9.4Gi
647     requests:
648       cpu: 2
649       memory: 9.4Gi
650   unlimited: {}
651
652 #Pods Service Account
653 serviceAccount:
654   nameOverride: sdnc
655   roles:
656     - read
657
658 #Log configuration
659 log:
660   path: /var/log/onap