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