[OOM] Fixing k8s ServiceAccounts
[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   serviceAccount:
393     nameOverride: sdnc-name-gen
394 mariadb-galera: &mariadbGalera
395   nameOverride: &sdnc-db sdnc-db
396   config: &mariadbGaleraConfig
397     rootPasswordExternalSecret: *rootDbSecret
398     userName: &dbUser sdnctl
399     userCredentialsExternalSecret: *dbSecretName
400   rootUser:
401     externalSecret: *rootDbSecret
402   db:
403     user: *dbUser
404     externalSecret: *dbSecretName
405   service:
406     name: sdnc-dbhost
407   sdnctlPrefix: sdnc
408   persistence:
409     mountSubPath: sdnc/mariadb-galera
410     enabled: true
411   replicaCount: 1
412   serviceAccount:
413     nameOverride: *sdnc-db
414
415 cds:
416   enabled: false
417
418 dmaap-listener:
419   enabled: true
420   nameOverride: sdnc-dmaap-listener
421   mariadb-galera:
422     <<: *mariadbGalera
423     config:
424       <<: *mariadbGaleraConfig
425       mysqlDatabase: *sdncDbName
426   config:
427     sdncChartName: sdnc
428     dmaapPort: 3904
429     sdncPort: 8282
430     configDir: /opt/onap/sdnc/data/properties
431     odlCredsExternalSecret: *odlCredsSecretName
432
433 ueb-listener:
434   enabled: true
435   mariadb-galera:
436     <<: *mariadbGalera
437     config:
438       <<: *mariadbGaleraConfig
439       mysqlDatabase: *sdncDbName
440   nameOverride: sdnc-ueb-listener
441   config:
442     sdncPort: 8282
443     sdncChartName: sdnc
444     configDir: /opt/onap/sdnc/data/properties
445     odlCredsExternalSecret: *odlCredsSecretName
446
447 sdnc-ansible-server:
448   enabled: true
449   config:
450     restCredsExternalSecret: *ansibleSecretName
451   mariadb-galera:
452     <<: *mariadbGalera
453     config:
454       <<: *mariadbGaleraConfig
455       mysqlDatabase: ansible
456   service:
457     name: sdnc-ansible-server
458     internalPort: 8000
459
460 dgbuilder:
461   enabled: true
462   nameOverride: sdnc-dgbuilder
463   config:
464     db:
465       dbName: *sdncDbName
466       rootPasswordExternalSecret: '{{ .Values.global.mariadbGalera.localCluster |
467         ternary
468           (printf "%s-sdnc-db-root-password" (include "common.release" .))
469           (include "common.mariadb.secret.rootPassSecretName"
470             (dict "dot" . "chartName" "mariadb-galera")) }}'
471       userCredentialsExternalSecret: *dbSecretName
472     dbPodName: mariadb-galera
473     dbServiceName: mariadb-galera
474     # This should be revisited and changed to plain text
475     dgUserPassword: cc03e747a6afbbcbf8be7668acfebee5
476   serviceAccount:
477     nameOverride: sdnc-dgbuilder
478   mariadb-galera:
479   service:
480     name: sdnc-dgbuilder
481     ports:
482     - name: http
483       port: 3100
484       nodePort: "03"
485
486   ingress:
487     enabled: false
488     service:
489       - baseaddr: "sdnc-dgbuilder-ui"
490         name: "sdnc-dgbuilder"
491         port: 3100
492     config:
493       ssl: "redirect"
494
495
496
497 # local elasticsearch cluster
498 localElasticCluster: true
499 elasticsearch:
500   nameOverride: &elasticSearchName sdnrdb
501   name: sdnrdb-cluster
502   service:
503     name: *elasticSearchName
504   master:
505     replicaCount: 3
506     # dedicatednode: "yes"
507     # working as master node only, in this case increase replicaCount for elasticsearch-data
508     # dedicatednode: "no"
509     # handles master and data node functionality
510     dedicatednode: "no"
511     nameOverride: *elasticSearchName
512     cluster_name: sdnrdb-cluster
513
514 # enable
515 sdnc-web:
516   enabled: true
517   ## set if web socket port should not be default
518   # sdnrWebsocketPort: *sdnrWebsocketPort
519 # default number of instances
520 replicaCount: 1
521
522 nodeSelector: {}
523
524 affinity: {}
525
526 # probe configuration parameters
527 liveness:
528   initialDelaySeconds: 10
529   periodSeconds: 10
530   # necessary to disable liveness probe when setting breakpoints
531   # in debugger so K8s doesn't restart unresponsive container
532   enabled: true
533
534 readiness:
535   initialDelaySeconds: 10
536   periodSeconds: 10
537
538 service:
539   type: NodePort
540   name: sdnc
541   portName: http
542   internalPort: 8181
543   internalPort2: 8101
544   internalPort3: 8080
545
546   #port
547   externalPort: 8282
548
549   externalPort2: 8202
550
551   externalPort3: 8280
552
553   nodePort4: 67
554
555   clusterPort: 2550
556   clusterPort2: 2650
557   clusterPort3: 2681
558
559   geoNodePort1: 61
560   geoNodePort2: 62
561   geoNodePort3: 63
562   geoNodePort4: 64
563   geoNodePort5: 65
564   geoNodePort6: 66
565
566   callHomePort: &chport 4334
567   callHomeNodePort: 66
568   ## set if web socket port should not be default
569   ## change in sdnc-web section as well
570   # sdnrWebsocketPort: &sdnrWebsocketPort 8182
571
572
573 ## Persist data to a persitent volume
574 persistence:
575   enabled: true
576
577   ## A manually managed Persistent Volume and Claim
578   ## Requires persistence.enabled: true
579   ## If defined, PVC must be created manually before volume will be bound
580   # existingClaim:
581   volumeReclaimPolicy: Retain
582
583   ## database data Persistent Volume Storage Class
584   ## If defined, storageClassName: <storageClass>
585   ## If set to "-", storageClassName: "", which disables dynamic provisioning
586   ## If undefined (the default) or set to null, no storageClassName spec is
587   ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
588   ##   GKE, AWS & OpenStack)
589   accessMode: ReadWriteOnce
590   size: 1Gi
591   mountPath: /dockerdata-nfs
592   mountSubPath: sdnc/mdsal
593   mdsalPath: /opt/opendaylight/mdsal
594   daeximPath: /opt/opendaylight/mdsal/daexim
595   journalPath: /opt/opendaylight/segmented-journal
596   snapshotsPath: /opt/opendaylight/snapshots
597
598 ingress:
599   enabled: false
600   service:
601   - baseaddr: "sdnc-api"
602     name: "sdnc"
603     port: 8282
604   - baseaddr: "sdnc-callhome"
605     name: "sdnc-callhome"
606     port: *chport
607     protocol: tcp
608     exposedPort: *chport
609     exposedProtocol: TCP
610   config:
611     ssl: "redirect"
612
613 serviceMesh:
614   authorizationPolicy:
615     authorizedPrincipals:
616       - serviceAccount: a1policymanagement-read
617       - serviceAccount: cds-blueprints-processor-read
618       - serviceAccount: consul-read
619       - serviceAccount: ncmp-dmi-plugin-read
620       - serviceAccount: policy-drools-pdp-read
621       - serviceAccount: robot-read
622       - serviceAccount: sdnc-ansible-server-read
623       - serviceAccount: sdnc-dmaap-listener-read
624       - serviceAccount: sdnc-prom-read
625       - serviceAccount: sdnc-ueb-listener-read
626       - serviceAccount: sdnc-web-read
627       - serviceAccount: so-sdnc-adapter-read
628       - serviceAccount: istio-ingress
629         namespace: istio-ingress
630     authorizedPrincipalsSdnHosts:
631       - serviceAccount: sdnc-read
632
633 #Resource Limit flavor -By Default using small
634 flavor: small
635 #segregation for different envionment (Small and Large)
636
637 resources:
638   small:
639     limits:
640       cpu: 999
641       memory: 4.7Gi
642     requests:
643       cpu: 1
644       memory: 4.7Gi
645   large:
646     limits:
647       cpu: 999
648       memory: 9.4Gi
649     requests:
650       cpu: 2
651       memory: 9.4Gi
652   unlimited: {}
653
654 #Pods Service Account
655 serviceAccount:
656   nameOverride: sdnc
657   roles:
658     - read
659
660 #Log configuration
661 log:
662   path: /var/log/onap