Merge "[SDNC] Change sdnc to single startup script solution"
[oom.git] / kubernetes / sdnc / values.yaml
1 # Copyright © 2020 Samsung Electronics, highstreet technologies GmbH
2 # Copyright © 2017 Amdocs, Bell Canada
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 #################################################################
17 # Global configuration defaults.
18 #################################################################
19 global:
20   nodePortPrefix: 302
21   nodePortPrefixExt: 304
22   repository: nexus3.onap.org:10001
23   readinessImage: onap/oom/readiness:3.0.1
24   loggingRepository: docker.elastic.co
25   loggingImage: beats/filebeat:5.5.0
26   persistence:
27     mountPath: /dockerdata-nfs
28   aafEnabled: true
29   # envsusbt
30   envsubstImage: dibi/envsubst
31   mariadbGalera:
32     #This flag allows SO to instantiate its own mariadb-galera cluster
33     #If shared instance is used, this chart assumes that DB already exists
34     localCluster: false
35     service: mariadb-galera
36     internalPort: 3306
37     nameOverride: mariadb-galera
38   # Enabling CMPv2
39   cmpv2Enabled: true
40   platform:
41     certServiceClient:
42       image: onap/org.onap.oom.platform.cert-service.oom-certservice-client:2.1.0
43       secret:
44         name: oom-cert-service-client-tls-secret
45         mountPath: /etc/onap/oom/certservice/certs/
46       envVariables:
47         # Certificate related
48         cert_path: /var/custom-certs
49         cmpv2Organization: "Linux-Foundation"
50         cmpv2OrganizationalUnit: "ONAP"
51         cmpv2Location: "San-Francisco"
52         cmpv2Country: "US"
53         # Client configuration related
54         caName: "RA"
55         common_name: "sdnc.simpledemo.onap.org"
56         requestURL: "https://oom-cert-service:8443/v1/certificate/"
57         requestTimeout: "30000"
58         keystorePath: "/etc/onap/oom/certservice/certs/certServiceClient-keystore.jks"
59         outputType: "P12"
60         keystorePassword: "secret"
61         truststorePath: "/etc/onap/oom/certservice/certs/truststore.jks"
62         truststorePassword: "secret"
63
64 #################################################################
65 # Secrets metaconfig
66 #################################################################
67 secrets:
68   - uid: db-root-password
69     name: '{{ include "common.release" . }}-sdnc-db-root-password'
70     type: password
71     externalSecret: '{{ .Values.global.mariadbGalera.localCluster |
72       ternary (default (include "common.mariadb.secret.rootPassSecretName"
73       (dict "dot" . "chartName"
74       (index .Values "mariadb-galera" "nameOverride")))
75       (index .Values "mariadb-galera" "config"
76       "mariadbRootPasswordExternalSecret"))
77       (include "common.mariadb.secret.rootPassSecretName"
78       (dict "dot" . "chartName" .Values.global.mariadbGalera.nameOverride)) }}'
79     password: '{{ (index .Values "mariadb-galera" "config" "mariadbRootPassword") }}'
80   - uid: db-secret
81     name: &dbSecretName '{{ include "common.release" . }}-sdnc-db-secret'
82     type: basicAuth
83     # This is a nasty trick that allows you override this secret using external one
84     # with the same field that is used to pass this to subchart
85     externalSecret: '{{ ternary "" (tpl (default "" (index .Values "mariadb-galera" "config" "userCredentialsExternalSecret")) .) (hasSuffix "sdnc-db-secret" (index .Values "mariadb-galera" "config" "userCredentialsExternalSecret"))}}'
86     login: '{{ index .Values "mariadb-galera" "config" "userName" }}'
87     password: '{{ index .Values "mariadb-galera" "config" "userPassword" }}'
88   - uid: odl-creds
89     name: &odlCredsSecretName '{{ include "common.release" . }}-sdnc-odl-creds'
90     type: basicAuth
91     externalSecret: '{{ .Values.config.odlCredsExternalSecret }}'
92     login: '{{ .Values.config.odlUser }}'
93     password: '{{ .Values.config.odlPassword }}'
94     # For now this is left hardcoded but should be revisited in a future
95     passwordPolicy: required
96   - uid: netbox-apikey
97     type: password
98     externalSecret: '{{ .Values.config.netboxApikeyExternalSecret }}'
99     password: '{{ .Values.config.netboxApikey }}'
100     passwordPolicy: required
101   - uid: aai-user-creds
102     type: basicAuth
103     externalSecret: '{{ .Values.config.aaiCredsExternalSecret}}'
104     login: '{{ .Values.config.aaiUser }}'
105     password: '{{ .Values.config.aaiPassword }}'
106     passwordPolicy: required
107   - uid: modeling-user-creds
108     type: basicAuth
109     externalSecret: '{{ .Values.config.modelingCredsExternalSecret}}'
110     login: '{{ .Values.config.modelingUser }}'
111     password: '{{ .Values.config.modelingPassword }}'
112     passwordPolicy: required
113   - uid: restconf-creds
114     type: basicAuth
115     externalSecret: '{{ .Values.config.restconfCredsExternalSecret}}'
116     login: '{{ .Values.config.restconfUser }}'
117     password: '{{ .Values.config.restconfPassword }}'
118     passwordPolicy: required
119   - uid: ansible-creds
120     name: &ansibleSecretName '{{ include "common.release" . }}-sdnc-ansible-creds'
121     type: basicAuth
122     externalSecret: '{{ .Values.config.ansibleCredsExternalSecret}}'
123     login: '{{ .Values.config.ansibleUser }}'
124     password: '{{ .Values.config.ansiblePassword }}'
125     passwordPolicy: required
126   - uid: scaleout-creds
127     type: basicAuth
128     externalSecret: '{{ .Values.config.scaleoutCredsExternalSecret}}'
129     login: '{{ .Values.config.scaleoutUser }}'
130     password: '{{ .Values.config.scaleoutPassword }}'
131     passwordPolicy: required
132 #################################################################
133 # Application configuration defaults.
134 #################################################################
135 # application images
136
137 repository: nexus3.onap.org:10001
138 pullPolicy: Always
139 image: onap/sdnc-image:2.0.3
140 busyboxRepository: docker.io
141 busyboxImage: busybox:1.30
142
143 # flag to enable debugging - application support required
144 debugEnabled: false
145
146 # application configuration
147 config:
148   odlUid: 100
149   odlGid: 101
150   odlUser: admin
151   odlPassword: Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
152   # odlCredsExternalSecret: some secret
153   netboxApikey: onceuponatimeiplayedwithnetbox20180814
154   # netboxApikeyExternalSecret: some secret
155   aaiUser: sdnc@sdnc.onap.org
156   aaiPassword: demo123456!
157   # aaiCredsExternalSecret: some secret
158   modelingUser: ccsdkapps
159   modelingPassword: ccsdkapps
160   # modelingCredsExternalSecret: some secret
161   restconfUser: admin
162   restconfPassword: admin
163   # restconfCredsExternalSecret: some secret
164   scaleoutUser: admin
165   scaleoutPassword: admin
166   # scaleoutExternalSecret: some secret
167   ansibleUser: sdnc
168   ansiblePassword: sdnc
169   # ansibleCredsExternalSecret: some secret
170   dbSdnctlDatabase: &sdncDbName sdnctl
171   enableClustering: true
172   sdncHome: /opt/onap/sdnc
173   binDir: /opt/onap/sdnc/bin
174   etcDir: /opt/onap/sdnc/data
175   geoEnabled: false
176 # if geoEnabled is set to true here, mysql.geoEnabled must be set to true
177 # if geoEnabled is set to true the following 3 values must be set to their proper values
178   myODLCluster: 127.0.0.1
179   peerODLCluster: 127.0.0.1
180   isPrimaryCluster: true
181   configDir: /opt/onap/sdnc/data/properties
182   ccsdkConfigDir: /opt/onap/ccsdk/data/properties
183   dmaapTopic: SUCCESS
184   dmaapPort: 3904
185   logstashServiceName: log-ls
186   logstashPort: 5044
187   ansibleServiceName: sdnc-ansible-server
188   ansiblePort: 8000
189   javaHome: /opt/java/openjdk
190
191   odl:
192     etcDir: /opt/opendaylight/etc
193     binDir: /opt/opendaylight/bin
194     gcLogDir: /opt/opendaylight/data/log
195     salConfigDir: /opt/opendaylight/system/org/opendaylight/controller/sal-clustering-config
196     salConfigVersion: 1.9.1
197     akka:
198       seedNodeTimeout: 15s
199       circuitBreaker:
200         maxFailures: 10
201         callTimeout: 90s
202         resetTimeout: 30s
203       recoveryEventTimeout: 90s
204     datastore:
205       persistentActorRestartMinBackoffInSeconds: 10
206       persistentActorRestartMaxBackoffInSeconds: 40
207       persistentActorRestartResetBackoffInSeconds: 20
208       shardTransactionCommitTimeoutInSeconds: 120
209       shardIsolatedLeaderCheckIntervalInMillis: 30000
210       operationTimeoutInSeconds: 120
211     javaOptions:
212       maxGCPauseMillis: 100
213       parallelGCThreads : 3
214       numberGCLogFiles: 10
215       minMemory: 512m
216       maxMemory: 2048m
217       gcLogOptions: ""
218       # Next line enables gc logging
219       # gcLogOptions: "-Xlog:gc=trace:file={{.Values.config.odl.gcLogDir}}/gc-%t.log}:time,level,tags:filecount={{.Values.config.odl.javaOptions.numberGCLogFiles}}"
220         # enables sdnr functionality
221   sdnr:
222     enabled: true
223     # mode: web - SDNC contains device manager only plus dedicated webserver service for ODLUX (default),
224     # mode: dm - SDNC contains sdnr device manager + ODLUX components
225     mode: dm
226     # sdnronly: true starts sdnc container with odl and sdnrwt features only
227     sdnronly: false
228     sdnrdbTrustAllCerts: true
229     mountpointRegistrarEnabled: false
230     mountpointStateProviderEnabled: false
231
232
233
234 # dependency / sub-chart configuration
235 certInitializer:
236   nameOverride: sdnc-cert-initializer
237   truststoreMountpath: /opt/onap/sdnc/data/stores
238   fqdn: "sdnc"
239   app_ns: "org.osaaf.aaf"
240   fqi: "sdnc@sdnc.onap.org"
241   fqi_namespace: org.onap.sdnc
242   public_fqdn: "sdnc.onap.org"
243   aafDeployFqi: "deployer@people.osaaf.org"
244   aafDeployPass: demo123456!
245   cadi_latitude: "38.0"
246   cadi_longitude: "-72.0"
247   credsPath: /opt/app/osaaf/local
248   aaf_add_config: >
249     cd /opt/app/osaaf/local;
250     /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
251
252 # dependency / sub-chart configuration
253 network-name-gen:
254   enabled: true
255 mariadb-galera: &mariadbGalera
256   nameOverride: sdnc-db
257   config: &mariadbGaleraConfig
258     rootPasswordExternalSecret: '{{ ternary (include "common.release" .)-sdnc-db-root-password "" .Values.global.mariadbGalera.localCluster }}'
259     userName: sdnctl
260     userCredentialsExternalSecret: *dbSecretName
261   service:
262     name: sdnc-dbhost
263     internalPort: 3306
264   sdnctlPrefix: sdnc
265   persistence:
266     mountSubPath: sdnc/mariadb-galera
267     enabled: true
268   replicaCount: 1
269
270 cds:
271   enabled: false
272
273 dmaap-listener:
274   enabled: true
275   nameOverride: sdnc-dmaap-listener
276   mariadb-galera:
277     <<: *mariadbGalera
278     config:
279       <<: *mariadbGaleraConfig
280       mysqlDatabase: *sdncDbName
281   config:
282     sdncChartName: sdnc
283     dmaapPort: 3904
284     sdncPort: 8282
285     configDir: /opt/onap/sdnc/data/properties
286     odlCredsExternalSecret: *odlCredsSecretName
287
288 ueb-listener:
289   enabled: true
290   mariadb-galera:
291     <<: *mariadbGalera
292     config:
293       <<: *mariadbGaleraConfig
294       mysqlDatabase: *sdncDbName
295   nameOverride: sdnc-ueb-listener
296   config:
297     sdncPort: 8282
298     sdncChartName: sdnc
299     configDir: /opt/onap/sdnc/data/properties
300     odlCredsExternalSecret: *odlCredsSecretName
301
302 sdnc-ansible-server:
303   enabled: true
304   config:
305     restCredsExternalSecret: *ansibleSecretName
306   mariadb-galera:
307     <<: *mariadbGalera
308     config:
309       <<: *mariadbGaleraConfig
310       mysqlDatabase: ansible
311   service:
312     name: sdnc-ansible-server
313     internalPort: 8000
314
315 dgbuilder:
316   enabled: true
317   nameOverride: sdnc-dgbuilder
318   certInitializer:
319     nameOverride: sdnc-dgbuilder-cert-initializer
320   config:
321     db:
322       dbName: *sdncDbName
323       rootPasswordExternalSecret: '{{ ternary (printf "%s-sdnc-db-root-password" (include "common.release" .)) (include "common.mariadb.secret.rootPassSecretName" (dict "dot" . "chartName" "mariadb-galera")) .Values.global.mariadbGalera.localCluster }}'
324       userCredentialsExternalSecret: *dbSecretName
325     dbPodName: mariadb-galera
326     dbServiceName: mariadb-galera
327     # This should be revisited and changed to plain text
328     dgUserPassword: cc03e747a6afbbcbf8be7668acfebee5
329   mariadb-galera:
330   service:
331     name: sdnc-dgbuilder
332     nodePort: "03"
333
334   ingress:
335     enabled: false
336     service:
337       - baseaddr: "sdnc-dgbuilder"
338         name: "sdnc-dgbuilder"
339         port: 3000
340       - baseaddr: "sdnc-web-service"
341         name: "sdnc-web-service"
342         port: 8443
343     config:
344       ssl: "redirect"
345
346
347
348 # local elasticsearch cluster
349 localElasticCluster: true
350 elasticsearch:
351   nameOverride: sdnrdb
352   name: sdnrdb-cluster
353   certInitializer:
354     fqdn: "sdnc"
355     fqi_namespace: org.onap.sdnc
356     fqi: "sdnc@sdnc.onap.org"
357   service:
358     name: sdnrdb
359   master:
360     replicaCount: 3
361     # dedicatednode: "yes"
362     # working as master node only, in this case increase replicaCount for elasticsearch-data
363     # dedicatednode: "no"
364     # handles master and data node functionality
365     dedicatednode: "no"
366     nameOverride: sdnrdb
367 # enable
368 sdnc-web:
369   enabled: false
370 # default number of instances
371 replicaCount: 1
372
373 nodeSelector: {}
374
375 affinity: {}
376
377 # probe configuration parameters
378 liveness:
379   initialDelaySeconds: 10
380   periodSeconds: 10
381   # necessary to disable liveness probe when setting breakpoints
382   # in debugger so K8s doesn't restart unresponsive container
383   enabled: true
384
385 readiness:
386   initialDelaySeconds: 10
387   periodSeconds: 10
388
389 service:
390   type: NodePort
391   name: sdnc
392   portName: sdnc
393   internalPort: 8181
394   internalPort2: 8101
395   internalPort3: 8080
396   internalPort4: 8443
397
398   #port
399   externalPort: 8282
400
401   externalPort2: 8202
402
403   externalPort3: 8280
404
405   externalPort4: 8443
406   nodePort4: 67
407
408   clusterPort: 2550
409   clusterPort2: 2650
410   clusterPort3: 2681
411
412   geoNodePort1: 61
413   geoNodePort2: 62
414   geoNodePort3: 63
415   geoNodePort4: 64
416   geoNodePort5: 65
417   geoNodePort6: 66
418
419 ## Persist data to a persitent volume
420 persistence:
421   enabled: true
422
423   ## A manually managed Persistent Volume and Claim
424   ## Requires persistence.enabled: true
425   ## If defined, PVC must be created manually before volume will be bound
426   # existingClaim:
427   volumeReclaimPolicy: Retain
428
429   ## database data Persistent Volume Storage Class
430   ## If defined, storageClassName: <storageClass>
431   ## If set to "-", storageClassName: "", which disables dynamic provisioning
432   ## If undefined (the default) or set to null, no storageClassName spec is
433   ##   set, choosing the default provisioner.  (gp2 on AWS, standard on
434   ##   GKE, AWS & OpenStack)
435   accessMode: ReadWriteOnce
436   size: 1Gi
437   mountPath: /dockerdata-nfs
438   mountSubPath: sdnc/mdsal
439   mdsalPath: /opt/opendaylight/current/daexim
440
441 certpersistence:
442   enabled: true
443
444   ## A manually managed Persistent Volume and Claim
445   ## Requires persistence.enabled: true
446   ## If defined, PVC must be created manually before volume will be bound
447   # existingClaim:
448
449   volumeReclaimPolicy: Retain
450   accessMode: ReadWriteOnce
451   size: 50Mi
452   mountPath: /dockerdata-nfs
453   mountSubPath: sdnc/certs
454   certPath: /opt/app/osaaf
455   ##storageClass: "manual"
456
457 ingress:
458   enabled: false
459   service:
460     - baseaddr: "sdnc.api"
461       name: "sdnc"
462       port: 8443
463   config:
464     ssl: "redirect"
465
466 #Resource Limit flavor -By Default using small
467 flavor: small
468 #segregation for different envionment (Small and Large)
469
470 resources:
471   small:
472     limits:
473       cpu: 2
474       memory: 4Gi
475     requests:
476       cpu: 1
477       memory: 2Gi
478   large:
479     limits:
480       cpu: 4
481       memory: 8Gi
482     requests:
483       cpu: 2
484       memory: 4Gi
485   unlimited: {}