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