13d8d42627d9bcbb86476233fc1588c70b2ec0f1
[osm/devops.git] / installers / helm / osm / values.yaml
1 #######################################################################################
2 # Copyright ETSI Contributors and Others.
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
13 # implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #######################################################################################
17 # Default values for osm.
18 # This is a YAML-formatted file.
19 # Declare variables to be passed into your templates.
20
21 global:
22   replicaCount: 1
23   logLevel: INFO
24   # hostname to be used for the ingress objects
25   hostname: ~
26   image:
27     repositoryBase: docker.io/opensourcemano
28     pullPolicy: IfNotPresent
29     # Overrides the image tag whose default is the chart appVersion.
30     tag: "testing-daily"
31
32   imagePullSecrets: []
33   nameOverride: ""
34   fullnameOverride: ""
35
36   serviceAccount:
37     # Specifies whether a service account should be created
38     create: true
39     # Annotations to add to the service account
40     annotations: {}
41     # The name of the service account to use.
42     # If not set and create is true, a name is generated using the fullname template
43     name: ""
44
45   podAnnotations: {}
46
47   podSecurityContext:
48     # runAsUser: 1000
49     # runAsGroup: 1000
50     fsGroup: 1000
51
52   securityContext:
53     runAsUser: 1000
54
55   nodeSelector: {}
56
57   tolerations: []
58
59   affinity: {}
60
61   behindHttpProxy: false
62   httpProxy: {}
63     # HTTP_PROXY: <HTTP_PROXY>
64     # HTTPS_PROXY: <HTTPS_PROXY>
65     # NO_PROXY: <NO_PROXY>
66
67   oldServiceAssurance: false
68
69 airflow:
70   enabled: true
71
72 alertmanager:
73   enabled: true
74   ingress: {}
75   #   host: alertmanager.<IP_ADDRESS>.nip.io
76
77 certauth:
78   enabled: true
79
80 grafana:
81   enabled: true
82   fullnameOverride: "grafana"
83   # service:
84   #   type: NodePort
85   #   nodePort: 3000
86   #   port: 3000
87   ingress:
88     enabled: true
89     ingressClassName: nginx
90     # hosts:
91     #   - grafana.<IP_ADDRESS>.nip.io
92   extraVolumes:
93     - emptyDir: {}
94       name: sc-dashboard-volume-k8s
95     - emptyDir: {}
96       name: sc-dashboard-volume-osm
97   extraVolumeMounts:
98     - name: sc-dashboard-volume-k8s
99       mountPath: "/tmp/dashboards/Kubernetes Cluster"
100     - name: sc-dashboard-volume-osm
101       mountPath: "/tmp/dashboards/Open Source MANO"
102   rbac:
103     extraClusterRoleRules:
104     - apiGroups:
105       - ""
106       resources:
107       - configmaps
108       - secrets
109       verbs:
110       - get
111       - watch
112       - list
113   datasources:
114     datasource.yaml:
115       apiVersion: 1
116       datasources:
117       - name: osm_prometheus
118         type: prometheus
119         url: http://prometheus:9090
120         access: proxy
121         allowUiUpdates: true
122         isDefault: true
123       - name: Prometheus
124         type: prometheus
125         url: http://osm-monitoring-kube-promet-prometheus.monitoring:9090
126         access: proxy
127         allowUiUpdates: true
128         isDefault: false
129   dashboardProviders:
130     provider.yaml:
131      apiVersion: 1
132      providers:
133      - name: 'Kubernetes Cluster'
134        orgId: 1
135        folder: 'Kubernetes Cluster'
136        type: file
137        disableDeletion: false
138        options:
139          path: '/tmp/dashboards/Kubernetes Cluster'
140      - name: 'Open Source MANO'
141        orgId: 1
142        folder: 'Open Source MANO'
143        type: file
144        disableDeletion: false
145        options:
146          path: '/tmp/dashboards/Open Source MANO'
147   sidecar:
148     dashboards:
149       enabled: true
150       folder: "/tmp/dashboards/"
151       resource: both
152       searchNamespace: osm
153       extraMounts:
154         - name: sc-dashboard-volume-k8s
155           mountPath: "/tmp/dashboards/Kubernetes Cluster"
156         - name: sc-dashboard-volume-osm
157           mountPath: "/tmp/dashboards/Open Source MANO"
158   extraInitContainers:
159     - env:
160       - name: METHOD
161         value: LIST
162       - name: LABEL
163         value: grafana_datasource
164       - name: FOLDER
165         value: /etc/grafana/provisioning/datasources
166       - name: RESOURCE
167         value: both
168       image: kiwigrid/k8s-sidecar:1.15.6
169       imagePullPolicy: IfNotPresent
170       name: grafana-sc-datasources
171       resources: {}
172       terminationMessagePath: /dev/termination-log
173       terminationMessagePolicy: File
174       volumeMounts:
175       - mountPath: /etc/grafana/provisioning/datasources
176         name: config
177
178 kafka:
179   enabled: true
180   listeners:
181     client:
182       protocol: "PLAINTEXT"
183   fullnameOverride: "kafka"
184   # replicaCount: 1
185
186 keystone:
187   enabled: true
188   service:
189     port: 5000
190   image: {}
191     # repository: opensourcemano/keystone
192     # tag: "testing-daily"
193   # replicaCount: 1
194   useOsmSecret: true
195   # secretName: "keystone-secret"
196
197 lcm:
198   enabled: true
199   logLevel: DEBUG
200   image: {}
201     # repository: opensourcemano/lcm
202     # tag: "testing-daily"
203   # replicaCount: 1
204   useOsmSecret: true
205   # secretName: "lcm-secret"
206   mainPostRenderer:
207     scriptName: mainPostRenderer
208     path: /app/N2VC/n2vc/post-renderer-scripts/mainPostRenderer/
209   podLabelsPostRenderer:
210     scriptName: podLabels
211     path: /app/N2VC/n2vc/post-renderer-scripts/podLabels/
212   config:
213     OSMLCM_VCA_CLOUD: "lxd-cloud"
214     OSMLCM_VCA_K8S_CLOUD: "k8scloud"
215     # OSMLCM_VCA_APIPROXY: "<VCA API proxy>"
216     # OSMLCM_VCA_ENABLEOSUPGRADE: true
217     # OSMLCM_VCA_APTMIRROR: "http://archive.ubuntu.com/ubuntu/"
218
219 mon:
220   enabled: true
221   # logLevel: DEBUG
222   image: {}
223     # repository: opensourcemano/mon
224     # tag: "testing-daily"
225   # replicaCount: 1
226   useOsmSecret: true
227   # secretName: "mon-secret"
228   config: {}
229
230 mysql:
231   enabled: true
232   image:
233     tag: "8.1-debian-11"
234   fullnameOverride: "mysql"
235
236 nbi:
237   enabled: true
238   ingress: {}
239   #   host: nbi.<IP_ADDRESS>.nip.io
240   logLevel: DEBUG
241   service: {}
242   #   type: NodePort
243   #   port: 9999
244   #   nodePort: 9999
245   image: {}
246     # repository: opensourcemano/nbi
247     # tag: "testing-daily"
248   # replicaCount: 1
249   useOsmSecret: true
250   # secretName: "nbi-secret"
251
252 ngui:
253   enabled: true
254   service: {}
255   #   type: NodePort
256   #   port: 80
257   #   nodePort: 80
258   ingress: {}
259   #   host: <IP_ADDRESS>.nip.io
260   image: {}
261     # repository: opensourcemano/ng-ui
262     # tag: "testing-daily"
263   # replicaCount: 1
264
265 # pla module is disabled by default unless global.oldServiceAssurance and pla.enabled are set to true
266 pla:
267   enabled: false
268   # logLevel: DEBUG
269   image: {}
270     # repository: opensourcemano/pla
271     # tag: "testing-daily"
272   # replicaCount: 1
273
274 # pol module is disabled by default unless global.oldServiceAssurance and pol.enabled are set to true
275 pol:
276   enabled: true
277   # logLevel: DEBUG
278   image: {}
279     # repository: opensourcemano/pol
280     # tag: "testing-daily"
281   # replicaCount: 1
282   useOsmSecret: true
283   # secretName: "pol-secret"
284
285 prometheus:
286   enabled: true
287   configmapReload:
288     prometheus:
289       enabled: true
290   prometheus-node-exporter:
291     enabled: false
292   kube-state-metrics:
293     enabled: false
294   server:
295     extraFlags:
296       - web.enable-lifecycle
297     statefulSet:
298       enabled: true
299     configPath: /etc/prometheus/prometheus.yml
300     fullnameOverride: "prometheus"
301     service:
302       servicePort: 9090
303     #   type: NodePort
304     #   nodePort: 9091
305     ingress:
306       enabled: true
307       ingressClassName: nginx
308       # hosts:
309       #   - prometheus.<IP_ADDRESS>.nip.io
310     sidecarContainers:
311       prometheus-config-sidecar:
312         securityContext:
313           # readOnlyRootFilesystem: true
314           allowPrivilegeEscalation: false
315           # runAsNonRoot: true
316         image: opensourcemano/prometheus:testing-daily
317         imagePullPolicy: IfNotPresent
318         command: ["/bin/sh", "-c"]
319         args: ["sleep 50; python -u ./app.py"]
320         volumeMounts:
321           - name: prom-config
322             mountPath: /etc/prometheus
323           - name: prom-config-base
324             mountPath: /etc/prometheus_base
325         resources:
326           limits:
327             memory: 1024Mi
328           requests:
329             memory: 128Mi
330         envFrom:
331           - configMapRef:
332               name: osm-prometheus-sidecar-configmap
333     extraInitContainers:
334       - name: prometheus-init-config
335         image: busybox
336         command: ["/bin/sh", "-c"]
337           #args: [' sleep 100000 ']
338         args: ['if [ ! -f "/etc/prometheus/prometheus.yml" ]; then cp /config/prometheus.yml /etc/prometheus; fi; cp /config/osm_metric_rules.yml /config/osm_alert_rules.yml /etc/prometheus']
339         volumeMounts:
340           - name: prom-config
341             mountPath: /etc/prometheus
342           - name: prom-config-base
343             mountPath: /config
344     extraVolumeMounts:
345       - name: prom-config
346         mountPath: /etc/prometheus
347     extraVolumes:
348       - name: prom-config
349         emptyDir: {}
350       - name: prom-config-base
351         projected:
352           sources:
353             - configMap:
354                 name: osm-prom-configmap
355                 items:
356                   - key: prometheus.yml
357                     path: prometheus.yml
358             - configMap:
359                 name: osm-prometheus-recordingrules-configmap
360                 items:
361                   - key: osm_metric_rules.yml
362                     path: osm_metric_rules.yml
363             - configMap:
364                 name: osm-prometheus-alertingrules-configmap
365                 items:
366                   - key: osm_alert_rules.yml
367                     path: osm_alert_rules.yml
368   extraManifests:
369     - |
370       apiVersion: v1
371       kind: ConfigMap
372       metadata:
373         name: osm-prometheus-alertingrules-configmap
374       data:
375         osm_alert_rules.yml: |
376           groups:
377             - name: osm_alert_rules
378               rules:
379               - alert: vdu_down
380                 expr: vm_status_extended != 1
381                 for: 3m
382                 annotations:
383                   summary: "VDU {{ "{{" }} $labels.vm_id }} in VIM {{ "{{" }} $labels.vim_id }} is down"
384                   description: "VDU {{ "{{" }} $labels.vm_id }} in VIM {{ "{{" }} $labels.vim_id }} has been down for more than 3 minutes. NS instance id is {{ "{{" }} $labels.ns_id }}"
385     - |
386       apiVersion: v1
387       kind: ConfigMap
388       metadata:
389         name: osm-prometheus-recordingrules-configmap
390       data:
391         osm_metric_rules.yml: |
392           groups:
393             - name: osm_metric_rules
394               rules:
395               - record: vm_status_extended
396                 expr: (last_over_time(vm_status[1m]) * on (vm_id, vim_id) group_left(ns_id, vnf_id, vdu_id, project_id, job, vdu_name, vnf_member_index) last_over_time(ns_topology[1m])) or (last_over_time(ns_topology[1m]) * -1)
397                 labels:
398                   job: osm_prometheus
399               - record: vnf_status
400                 expr: (0 * (count (vm_status_extended==0) by (ns_id, vnf_id)>=0)) or (min by (ns_id, vnf_id) (vm_status_extended))
401                 labels:
402                   job: osm_prometheus
403               - record: ns_status
404                 expr: (0 * (count (vm_status_extended==0) by (ns_id)>=0)) or (min by (ns_id) (vm_status_extended))
405                 labels:
406                   job: osm_prometheus
407     - |
408       apiVersion: v1
409       kind: ConfigMap
410       metadata:
411         name: osm-prometheus-sidecar-configmap
412       data:
413         MONGODB_URL: "mongodb://mongodb-k8s:27017/?replicaSet=rs0"
414         PROMETHEUS_CONFIG_FILE: "/etc/prometheus/prometheus.yml"
415         PROMETHEUS_BASE_CONFIG_FILE: "/etc/prometheus_base/prometheus.yml"
416         TARGET_DATABASE: "osm"
417         PROMETHEUS_URL: "http://prometheus:9090"
418     - |
419       apiVersion: v1
420       kind: ConfigMap
421       metadata:
422         name: osm-prom-configmap
423       data:
424         prometheus.yml: |
425           global:
426             scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
427             evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
428             # scrape_timeout is set to the global default (10s).
429           # Alertmanager configuration
430           alerting:
431             alertmanagers:
432             - static_configs:
433               - targets:
434                 - alertmanager:9093
435           rule_files:
436             - "osm_metric_rules.yml"
437             - "osm_alert_rules.yml"
438           scrape_configs:
439             - job_name: 'mon_exporter'
440               static_configs:
441               - targets: ['mon:8000']
442             - job_name: pushgateway
443               honor_labels: true
444               scrape_interval: 30s
445               static_configs:
446               - targets:
447                 - pushgateway-prometheus-pushgateway:9091
448             - job_name: prometheus
449               static_configs:
450                 - targets:
451                   - localhost:9090
452             - job_name: node
453               static_configs:
454                 - targets: ['prometheus-node-exporter:9100']
455   alertmanager:
456     enabled: true
457     fullnameOverride: "alertmanager"
458     extraArgs:
459       log.level: debug
460     # service:
461     #   type: NodePort
462     #   nodePort: 9093
463     #   port: 9093
464     # ingress:
465     #   enabled: True
466     #   className: nginx
467     #   hosts:
468     #     - host: localhost
469     #       paths:
470     #         - path: /
471     #           pathType: ImplementationSpecific
472     #   tls: []
473     config:
474       receivers:
475         - name: default-receiver
476         - name: vdu-webhook
477           webhook_configs:
478            - url: http://webhook-translator:9998/vdu_down
479         - name: scaleout-webhook
480           webhook_configs:
481            - url: http://webhook-translator:9998/scaleout_vdu
482         - name: scalein-webhook
483           webhook_configs:
484            - url: http://webhook-translator:9998/scalein_vdu
485         - name: alarm-webhook
486           webhook_configs:
487            - url: http://webhook-translator:9998/vdu_alarm
488       route:
489         group_wait: 10s
490         group_interval: 2m
491         receiver: default-receiver
492         routes:
493         - receiver: vdu-webhook
494           repeat_interval: 15m
495           matchers:
496           - alertname = "vdu_down"
497         - receiver: 'scaleout-webhook'
498           repeat_interval: 5m
499           matchers:
500           - alertname =~ "^scaleout_.*"
501         - receiver: 'scalein-webhook'
502           repeat_interval: 5m
503           matchers:
504           - alertname =~ "^scalein_.*"
505         - receiver: 'alarm-webhook'
506           repeat_interval: 5m
507           matchers:
508           - alertname =~ "^vdu_alarm_.*"
509   prometheus-pushgateway:
510     fullnameOverride: "pushgateway-prometheus-pushgateway"
511
512 ro:
513   enabled: true
514   # logLevel: DEBUG
515   service:
516     port: 9090
517   image: {}
518     # repository: opensourcemano/ro
519     # tag: "testing-daily"
520   # replicaCount: 1
521   useOsmSecret: true
522   # secretName: "ro-secret"
523
524 vca:
525   enabled: false
526   # host: ""
527   # secret: ""
528   # cacert: ""
529   # pubkey: ""
530
531 webhookTranslator:
532   enabled: true
533   # replicaCount: 1
534   image: {}
535     # repository: opensourcemano/webhook
536     # tag: "testing-daily"
537   ingress: {}
538   #   host: webhook.<IP_ADDRESS>.nip.io
539   # replicaCount: 1
540   service: {}
541   #   type: NodePort
542   #   nodePort: 9998
543   #   port: 9998