[SDNC] Enable SDNC to use external oauth provider
[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-user-creds
90     type: basicAuth
91     externalSecret: '{{ .Values.config.aaiCredsExternalSecret}}'
92     login: '{{ .Values.config.aaiUser }}'
93     password: '{{ .Values.config.aaiPassword }}'
94     passwordPolicy: required
95   - uid: modeling-user-creds
96     type: basicAuth
97     externalSecret: '{{ .Values.config.modelingCredsExternalSecret}}'
98     login: '{{ .Values.config.modelingUser }}'
99     password: '{{ .Values.config.modelingPassword }}'
100     passwordPolicy: required
101   - uid: restconf-creds
102     type: basicAuth
103     externalSecret: '{{ .Values.config.restconfCredsExternalSecret}}'
104     login: '{{ .Values.config.restconfUser }}'
105     password: '{{ .Values.config.restconfPassword }}'
106     passwordPolicy: required
107   - uid: ansible-creds
108     name: &ansibleSecretName '{{ include "common.release" . }}-sdnc-ansible-creds'
109     type: basicAuth
110     externalSecret: '{{ .Values.config.ansibleCredsExternalSecret}}'
111     login: '{{ .Values.config.ansibleUser }}'
112     password: '{{ .Values.config.ansiblePassword }}'
113     passwordPolicy: required
114   - uid: scaleout-creds
115     type: basicAuth
116     externalSecret: '{{ .Values.config.scaleoutCredsExternalSecret}}'
117     login: '{{ .Values.config.scaleoutUser }}'
118     password: '{{ .Values.config.scaleoutPassword }}'
119     passwordPolicy: required
120   - uid: oauth-token-secret
121     type: password
122     externalSecret: '{{ ternary (tpl (default "" .Values.config.sdnr.oauth.tokenExternalSecret) .) "oauth-disabled" .Values.config.sdnr.oauth.enabled }}'
123     password: '{{ .Values.config.sdnr.oauth.tokenSecret }}'
124     passwordPolicy: required
125   - uid: keycloak-secret
126     type: password
127     externalSecret: '{{ ternary (tpl (default "" .Values.config.sdnr.oauth.providersSecrets.keycloakExternalSecret) .) "oauth-disabled" .Values.config.sdnr.oauth.enabled }}'
128     password: '{{ .Values.config.sdnr.oauth.providersSecrets.keycloak }}'
129     passwordPolicy: required
130
131 #################################################################
132 # Certificates
133 #################################################################
134 certificates:
135   - mountPath:  /var/custom-certs
136     commonName: sdnc.simpledemo.onap.org
137     dnsNames:
138         - sdnc.simpledemo.onap.org
139     keystore:
140       outputType:
141         - jks
142       passwordSecretRef:
143         name: sdnc-cmpv2-keystore-password
144         key: password
145     issuer:
146       group: certmanager.onap.org
147       kind: CMPv2Issuer
148       name: cmpv2-issuer-onap
149 #################################################################
150 # Application configuration defaults.
151 #################################################################
152 # application images
153
154 pullPolicy: Always
155 image: onap/sdnc-image:2.0.5
156
157 # flag to enable debugging - application support required
158 debugEnabled: false
159
160 # application configuration
161 config:
162   odlUid: 100
163   odlGid: 101
164   odlUser: admin
165   odlPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
166   # odlCredsExternalSecret: some secret
167   netboxApikey: onceuponatimeiplayedwithnetbox20180814
168   # netboxApikeyExternalSecret: some secret
169   aaiUser: sdnc@sdnc.onap.org
170   aaiPassword: demo123456!
171   # aaiCredsExternalSecret: some secret
172   modelingUser: ccsdkapps
173   modelingPassword: ccsdkapps
174   # modelingCredsExternalSecret: some secret
175   restconfUser: admin
176   restconfPassword: admin
177   # restconfCredsExternalSecret: some secret
178   scaleoutUser: admin
179   scaleoutPassword: admin
180   # scaleoutExternalSecret: some secret
181   ansibleUser: sdnc
182   ansiblePassword: sdnc
183   # ansibleCredsExternalSecret: some secret
184   dbSdnctlDatabase: &sdncDbName sdnctl
185   enableClustering: true
186   sdncHome: /opt/onap/sdnc
187   binDir: /opt/onap/sdnc/bin
188   etcDir: /opt/onap/sdnc/data
189   geoEnabled: false
190 # if geoEnabled is set to true here, mysql.geoEnabled must be set to true
191 # if geoEnabled is set to true the following 3 values must be set to their proper values
192   myODLCluster: 127.0.0.1
193   peerODLCluster: 127.0.0.1
194   isPrimaryCluster: true
195   configDir: /opt/onap/sdnc/data/properties
196   ccsdkConfigDir: /opt/onap/ccsdk/data/properties
197   dmaapTopic: SUCCESS
198   dmaapPort: 3904
199   logstashServiceName: log-ls
200   logstashPort: 5044
201   ansibleServiceName: sdnc-ansible-server
202   ansiblePort: 8000
203   javaHome: /opt/java/openjdk
204
205   odl:
206     etcDir: /opt/opendaylight/etc
207     binDir: /opt/opendaylight/bin
208     gcLogDir: /opt/opendaylight/data/log
209     salConfigDir: /opt/opendaylight/system/org/opendaylight/controller/sal-clustering-config
210     salConfigVersion: 1.10.4
211     akka:
212       seedNodeTimeout: 15s
213       circuitBreaker:
214         maxFailures: 10
215         callTimeout: 90s
216         resetTimeout: 30s
217       recoveryEventTimeout: 90s
218     datastore:
219       persistentActorRestartMinBackoffInSeconds: 10
220       persistentActorRestartMaxBackoffInSeconds: 40
221       persistentActorRestartResetBackoffInSeconds: 20
222       shardTransactionCommitTimeoutInSeconds: 120
223       shardIsolatedLeaderCheckIntervalInMillis: 30000
224       operationTimeoutInSeconds: 120
225     javaOptions:
226       maxGCPauseMillis: 100
227       parallelGCThreads : 3
228       numberGCLogFiles: 10
229       minMemory: 512m
230       maxMemory: 2048m
231       gcLogOptions: ""
232       # Next line enables gc logging
233       # gcLogOptions: "-Xlog:gc=trace:file={{.Values.config.odl.gcLogDir}}/gc-%t.log}:time,level,tags:filecount={{.Values.config.odl.javaOptions.numberGCLogFiles}}"
234         # enables sdnr functionality
235   sdnr:
236     enabled: true
237     # mode: web - SDNC contains device manager only plus dedicated webserver service for ODLUX (default),
238     # mode: dm - SDNC contains sdnr device manager + ODLUX components
239     mode: dm
240     # sdnronly: true starts sdnc container with odl and sdnrwt features only
241     sdnronly: false
242     sdnrdbTrustAllCerts: true
243     mountpointRegistrarEnabled: false
244     mountpointStateProviderEnabled: false
245     #
246     # enable and set dmaap-proxy for mountpointRegistrar
247     dmaapProxy:
248       enabled: false
249       usepwd: true
250       user: addUserHere
251       password: addPasswordHere
252       url: addProxyUrlHere
253     oauth:
254       enabled: false
255       tokenIssuer: ONAP SDNC
256       tokenSecret: secret
257       supportOdlusers: true
258       redirectUri: null
259       publicUrl: none
260       odluxRbac:
261         enabled: true
262       # example definition for a oauth provider
263       providersSecrets:
264         keycloak: d8d7ed52-0691-4353-9ac6-5383e72e9c46
265       providers:
266       - id: keycloak
267         type: KEYCLOAK
268         host: http://keycloak:8080
269         clientId: odlux.app
270         secret: ${KEYCLOAK_SECRET}
271         scope: openid
272         title: ONAP Keycloak Provider
273         roleMapping:
274           mykeycloak: admin
275
276 # dependency / sub-chart configuration
277 certInitializer:
278   nameOverride: sdnc-cert-initializer
279   truststoreMountpath: /opt/onap/sdnc/data/stores
280   fqdn: "sdnc"
281   app_ns: "org.osaaf.aaf"
282   fqi: "sdnc@sdnc.onap.org"
283   fqi_namespace: org.onap.sdnc
284   public_fqdn: "sdnc.onap.org"
285   aafDeployFqi: "deployer@people.osaaf.org"
286   aafDeployPass: demo123456!
287   cadi_latitude: "38.0"
288   cadi_longitude: "-72.0"
289   credsPath: /opt/app/osaaf/local
290   aaf_add_config: >
291     cd /opt/app/osaaf/local;
292     /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
293
294 # dependency / sub-chart configuration
295 network-name-gen:
296   enabled: true
297 mariadb-galera: &mariadbGalera
298   nameOverride: &sdnc-db sdnc-db
299   config: &mariadbGaleraConfig
300     rootPasswordExternalSecret: *rootDbSecret
301     userName: &dbUser sdnctl
302     userCredentialsExternalSecret: *dbSecretName
303   rootUser:
304     externalSecret: *rootDbSecret
305   db:
306     user: *dbUser
307     externalSecret: *dbSecretName
308   service:
309     name: sdnc-dbhost
310   sdnctlPrefix: sdnc
311   persistence:
312     mountSubPath: sdnc/mariadb-galera
313     enabled: true
314   replicaCount: 1
315   serviceAccount:
316     nameOverride: *sdnc-db
317
318 cds:
319   enabled: false
320
321 dmaap-listener:
322   enabled: true
323   nameOverride: sdnc-dmaap-listener
324   mariadb-galera:
325     <<: *mariadbGalera
326     config:
327       <<: *mariadbGaleraConfig
328       mysqlDatabase: *sdncDbName
329   config:
330     sdncChartName: sdnc
331     dmaapPort: 3904
332     sdncPort: 8282
333     configDir: /opt/onap/sdnc/data/properties
334     odlCredsExternalSecret: *odlCredsSecretName
335
336 ueb-listener:
337   enabled: true
338   mariadb-galera:
339     <<: *mariadbGalera
340     config:
341       <<: *mariadbGaleraConfig
342       mysqlDatabase: *sdncDbName
343   nameOverride: sdnc-ueb-listener
344   config:
345     sdncPort: 8282
346     sdncChartName: sdnc
347     configDir: /opt/onap/sdnc/data/properties
348     odlCredsExternalSecret: *odlCredsSecretName
349
350 sdnc-ansible-server:
351   enabled: true
352   config:
353     restCredsExternalSecret: *ansibleSecretName
354   mariadb-galera:
355     <<: *mariadbGalera
356     config:
357       <<: *mariadbGaleraConfig
358       mysqlDatabase: ansible
359   service:
360     name: sdnc-ansible-server
361     internalPort: 8000
362
363 dgbuilder:
364   enabled: true
365   nameOverride: sdnc-dgbuilder
366   certInitializer:
367     nameOverride: sdnc-dgbuilder-cert-initializer
368   config:
369     db:
370       dbName: *sdncDbName
371       rootPasswordExternalSecret: '{{ .Values.global.mariadbGalera.localCluster |
372         ternary
373           (printf "%s-sdnc-db-root-password" (include "common.release" .))
374           (include "common.mariadb.secret.rootPassSecretName"
375             (dict "dot" . "chartName" "mariadb-galera")) }}'
376       userCredentialsExternalSecret: *dbSecretName
377     dbPodName: mariadb-galera
378     dbServiceName: mariadb-galera
379     # This should be revisited and changed to plain text
380     dgUserPassword: cc03e747a6afbbcbf8be7668acfebee5
381   mariadb-galera:
382   service:
383     name: sdnc-dgbuilder
384     nodePort: "03"
385
386   ingress:
387     enabled: false
388     service:
389       - baseaddr: "sdnc-dgbuilder"
390         name: "sdnc-dgbuilder"
391         port: 3000
392       - baseaddr: "sdnc-web-service"
393         name: "sdnc-web-service"
394         port: 8443
395     config:
396       ssl: "redirect"
397
398
399
400 # local elasticsearch cluster
401 localElasticCluster: true
402 elasticsearch:
403   nameOverride: &elasticSearchName sdnrdb
404   name: sdnrdb-cluster
405   certInitializer:
406     fqdn: "sdnc"
407     fqi_namespace: org.onap.sdnc
408     fqi: "sdnc@sdnc.onap.org"
409   service:
410     name: *elasticSearchName
411   master:
412     replicaCount: 3
413     # dedicatednode: "yes"
414     # working as master node only, in this case increase replicaCount for elasticsearch-data
415     # dedicatednode: "no"
416     # handles master and data node functionality
417     dedicatednode: "no"
418     nameOverride: *elasticSearchName
419     cluster_name: sdnrdb-cluster
420 # enable
421 sdnc-web:
422   enabled: true
423 # default number of instances
424 replicaCount: 1
425
426 nodeSelector: {}
427
428 affinity: {}
429
430 # probe configuration parameters
431 liveness:
432   initialDelaySeconds: 10
433   periodSeconds: 10
434   # necessary to disable liveness probe when setting breakpoints
435   # in debugger so K8s doesn't restart unresponsive container
436   enabled: true
437
438 readiness:
439   initialDelaySeconds: 10
440   periodSeconds: 10
441
442 service:
443   type: NodePort
444   name: sdnc
445   portName: sdnc
446   internalPort: 8181
447   internalPort2: 8101
448   internalPort3: 8080
449   internalPort4: 8443
450
451   #port
452   externalPort: 8282
453
454   externalPort2: 8202
455
456   externalPort3: 8280
457
458   externalPort4: 8443
459   nodePort4: 67
460
461   clusterPort: 2550
462   clusterPort2: 2650
463   clusterPort3: 2681
464
465   geoNodePort1: 61
466   geoNodePort2: 62
467   geoNodePort3: 63
468   geoNodePort4: 64
469   geoNodePort5: 65
470   geoNodePort6: 66
471
472 ## Persist data to a persitent volume
473 persistence:
474   enabled: true
475
476   ## A manually managed Persistent Volume and Claim
477   ## Requires persistence.enabled: true
478   ## If defined, PVC must be created manually before volume will be bound
479   # existingClaim:
480   volumeReclaimPolicy: Retain
481
482   ## database data Persistent Volume Storage Class
483   ## If defined, storageClassName: <storageClass>
484   ## If set to "-", storageClassName: "", which disables dynamic provisioning
485   ## If undefined (the default) or set to null, no storageClassName spec is
486   ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
487   ##   GKE, AWS & OpenStack)
488   accessMode: ReadWriteOnce
489   size: 1Gi
490   mountPath: /dockerdata-nfs
491   mountSubPath: sdnc/mdsal
492   mdsalPath: /opt/opendaylight/mdsal
493   daeximPath: /opt/opendaylight/mdsal/daexim
494   journalPath: /opt/opendaylight/journal
495   snapshotsPath: /opt/opendaylight/snapshots
496
497 certpersistence:
498   enabled: true
499
500   ## A manually managed Persistent Volume and Claim
501   ## Requires persistence.enabled: true
502   ## If defined, PVC must be created manually before volume will be bound
503   # existingClaim:
504
505   volumeReclaimPolicy: Retain
506   accessMode: ReadWriteOnce
507   size: 50Mi
508   mountPath: /dockerdata-nfs
509   mountSubPath: sdnc/certs
510   certPath: /opt/app/osaaf
511   ##storageClass: "manual"
512
513 ingress:
514   enabled: false
515   service:
516     - baseaddr: "sdnc.api"
517       name: "sdnc"
518       port: 8443
519   config:
520     ssl: "redirect"
521
522 #Resource Limit flavor -By Default using small
523 flavor: small
524 #segregation for different envionment (Small and Large)
525
526 resources:
527   small:
528     limits:
529       cpu: 2
530       memory: 4Gi
531     requests:
532       cpu: 1
533       memory: 2Gi
534   large:
535     limits:
536       cpu: 4
537       memory: 8Gi
538     requests:
539       cpu: 2
540       memory: 4Gi
541   unlimited: {}