Fix installation of Kubernetes metrics server by updating the URL
[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   config:
207     OSMLCM_VCA_CLOUD: "lxd-cloud"
208     OSMLCM_VCA_K8S_CLOUD: "k8scloud"
209     # OSMLCM_VCA_APIPROXY: "<VCA API proxy>"
210     # OSMLCM_VCA_ENABLEOSUPGRADE: true
211     # OSMLCM_VCA_APTMIRROR: "http://archive.ubuntu.com/ubuntu/"
212
213 mon:
214   enabled: true
215   # logLevel: DEBUG
216   image: {}
217     # repository: opensourcemano/mon
218     # tag: "testing-daily"
219   # replicaCount: 1
220   useOsmSecret: true
221   # secretName: "mon-secret"
222   config: {}
223
224 mysql:
225   enabled: true
226   image:
227     tag: "8.1-debian-11"
228   fullnameOverride: "mysql"
229
230 nbi:
231   enabled: true
232   ingress: {}
233   #   host: nbi.<IP_ADDRESS>.nip.io
234   logLevel: DEBUG
235   service: {}
236   #   type: NodePort
237   #   port: 9999
238   #   nodePort: 9999
239   image: {}
240     # repository: opensourcemano/nbi
241     # tag: "testing-daily"
242   # replicaCount: 1
243   useOsmSecret: true
244   # secretName: "nbi-secret"
245
246 ngui:
247   enabled: true
248   service: {}
249   #   type: NodePort
250   #   port: 80
251   #   nodePort: 80
252   ingress: {}
253   #   host: <IP_ADDRESS>.nip.io
254   image: {}
255     # repository: opensourcemano/ng-ui
256     # tag: "testing-daily"
257   # replicaCount: 1
258
259 # pla module is disabled by default unless global.oldServiceAssurance and pla.enabled are set to true
260 pla:
261   enabled: false
262   # logLevel: DEBUG
263   image: {}
264     # repository: opensourcemano/pla
265     # tag: "testing-daily"
266   # replicaCount: 1
267
268 # pol module is disabled by default unless global.oldServiceAssurance and pol.enabled are set to true
269 pol:
270   enabled: true
271   # logLevel: DEBUG
272   image: {}
273     # repository: opensourcemano/pol
274     # tag: "testing-daily"
275   # replicaCount: 1
276   useOsmSecret: true
277   # secretName: "pol-secret"
278
279 prometheus:
280   enabled: true
281   configmapReload:
282     prometheus:
283       enabled: true
284   prometheus-node-exporter:
285     enabled: false
286   kube-state-metrics:
287     enabled: false
288   server:
289     extraFlags:
290       - web.enable-lifecycle
291     statefulSet:
292       enabled: true
293     configPath: /etc/prometheus/prometheus.yml
294     fullnameOverride: "prometheus"
295     service:
296       servicePort: 9090
297     #   type: NodePort
298     #   nodePort: 9091
299     ingress:
300       enabled: true
301       ingressClassName: nginx
302       # hosts:
303       #   - prometheus.<IP_ADDRESS>.nip.io
304     sidecarContainers:
305       prometheus-config-sidecar:
306         securityContext:
307           # readOnlyRootFilesystem: true
308           allowPrivilegeEscalation: false
309           # runAsNonRoot: true
310         image: opensourcemano/prometheus:testing-daily
311         imagePullPolicy: IfNotPresent
312         command: ["/bin/sh", "-c"]
313         args: ["sleep 50; python -u ./app.py"]
314         volumeMounts:
315           - name: prom-config
316             mountPath: /etc/prometheus
317           - name: prom-config-base
318             mountPath: /etc/prometheus_base
319         resources:
320           limits:
321             memory: 1024Mi
322           requests:
323             memory: 128Mi
324         envFrom:
325           - configMapRef:
326               name: osm-prometheus-sidecar-configmap
327     extraInitContainers:
328       - name: prometheus-init-config
329         image: busybox
330         command: ["/bin/sh", "-c"]
331           #args: [' sleep 100000 ']
332         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']
333         volumeMounts:
334           - name: prom-config
335             mountPath: /etc/prometheus
336           - name: prom-config-base
337             mountPath: /config
338     extraVolumeMounts:
339       - name: prom-config
340         mountPath: /etc/prometheus
341     extraVolumes:
342       - name: prom-config
343         emptyDir: {}
344       - name: prom-config-base
345         projected:
346           sources:
347             - configMap:
348                 name: osm-prom-configmap
349                 items:
350                   - key: prometheus.yml
351                     path: prometheus.yml
352             - configMap:
353                 name: osm-prometheus-recordingrules-configmap
354                 items:
355                   - key: osm_metric_rules.yml
356                     path: osm_metric_rules.yml
357             - configMap:
358                 name: osm-prometheus-alertingrules-configmap
359                 items:
360                   - key: osm_alert_rules.yml
361                     path: osm_alert_rules.yml
362   extraManifests:
363     - |
364       apiVersion: v1
365       kind: ConfigMap
366       metadata:
367         name: osm-prometheus-alertingrules-configmap
368       data:
369         osm_alert_rules.yml: |
370           groups:
371             - name: osm_alert_rules
372               rules:
373               - alert: vdu_down
374                 expr: vm_status_extended != 1
375                 for: 3m
376                 annotations:
377                   summary: "VDU {{ "{{" }} $labels.vm_id }} in VIM {{ "{{" }} $labels.vim_id }} is down"
378                   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 }}"
379     - |
380       apiVersion: v1
381       kind: ConfigMap
382       metadata:
383         name: osm-prometheus-recordingrules-configmap
384       data:
385         osm_metric_rules.yml: |
386           groups:
387             - name: osm_metric_rules
388               rules:
389               - record: vm_status_extended
390                 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)
391                 labels:
392                   job: osm_prometheus
393               - record: vnf_status
394                 expr: (0 * (count (vm_status_extended==0) by (ns_id, vnf_id)>=0)) or (min by (ns_id, vnf_id) (vm_status_extended))
395                 labels:
396                   job: osm_prometheus
397               - record: ns_status
398                 expr: (0 * (count (vm_status_extended==0) by (ns_id)>=0)) or (min by (ns_id) (vm_status_extended))
399                 labels:
400                   job: osm_prometheus
401     - |
402       apiVersion: v1
403       kind: ConfigMap
404       metadata:
405         name: osm-prometheus-sidecar-configmap
406       data:
407         MONGODB_URL: "mongodb://mongodb-k8s:27017/?replicaSet=rs0"
408         PROMETHEUS_CONFIG_FILE: "/etc/prometheus/prometheus.yml"
409         PROMETHEUS_BASE_CONFIG_FILE: "/etc/prometheus_base/prometheus.yml"
410         TARGET_DATABASE: "osm"
411         PROMETHEUS_URL: "http://prometheus:9090"
412     - |
413       apiVersion: v1
414       kind: ConfigMap
415       metadata:
416         name: osm-prom-configmap
417       data:
418         prometheus.yml: |
419           global:
420             scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
421             evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
422             # scrape_timeout is set to the global default (10s).
423           # Alertmanager configuration
424           alerting:
425             alertmanagers:
426             - static_configs:
427               - targets:
428                 - alertmanager:9093
429           rule_files:
430             - "osm_metric_rules.yml"
431             - "osm_alert_rules.yml"
432           scrape_configs:
433             - job_name: 'mon_exporter'
434               static_configs:
435               - targets: ['mon:8000']
436             - job_name: pushgateway
437               honor_labels: true
438               scrape_interval: 30s
439               static_configs:
440               - targets:
441                 - pushgateway-prometheus-pushgateway:9091
442             - job_name: prometheus
443               static_configs:
444                 - targets:
445                   - localhost:9090
446             - job_name: node
447               static_configs:
448                 - targets: ['prometheus-node-exporter:9100']
449   alertmanager:
450     enabled: true
451     fullnameOverride: "alertmanager"
452     extraArgs:
453       log.level: debug
454     # service:
455     #   type: NodePort
456     #   nodePort: 9093
457     #   port: 9093
458     # ingress:
459     #   enabled: True
460     #   className: nginx
461     #   hosts:
462     #     - host: localhost
463     #       paths:
464     #         - path: /
465     #           pathType: ImplementationSpecific
466     #   tls: []
467     config:
468       receivers:
469         - name: default-receiver
470         - name: vdu-webhook
471           webhook_configs:
472            - url: http://webhook-translator:9998/vdu_down
473         - name: scaleout-webhook
474           webhook_configs:
475            - url: http://webhook-translator:9998/scaleout_vdu
476         - name: scalein-webhook
477           webhook_configs:
478            - url: http://webhook-translator:9998/scalein_vdu
479         - name: alarm-webhook
480           webhook_configs:
481            - url: http://webhook-translator:9998/vdu_alarm
482       route:
483         group_wait: 10s
484         group_interval: 2m
485         receiver: default-receiver
486         routes:
487         - receiver: vdu-webhook
488           repeat_interval: 15m
489           matchers:
490           - alertname = "vdu_down"
491         - receiver: 'scaleout-webhook'
492           repeat_interval: 5m
493           matchers:
494           - alertname =~ "^scaleout_.*"
495         - receiver: 'scalein-webhook'
496           repeat_interval: 5m
497           matchers:
498           - alertname =~ "^scalein_.*"
499         - receiver: 'alarm-webhook'
500           repeat_interval: 5m
501           matchers:
502           - alertname =~ "^vdu_alarm_.*"
503   prometheus-pushgateway:
504     fullnameOverride: "pushgateway-prometheus-pushgateway"
505
506 ro:
507   enabled: true
508   # logLevel: DEBUG
509   service:
510     port: 9090
511   image: {}
512     # repository: opensourcemano/ro
513     # tag: "testing-daily"
514   # replicaCount: 1
515   useOsmSecret: true
516   # secretName: "ro-secret"
517
518 vca:
519   enabled: false
520   # host: ""
521   # secret: ""
522   # cacert: ""
523   # pubkey: ""
524
525 webhookTranslator:
526   enabled: true
527   # replicaCount: 1
528   image: {}
529     # repository: opensourcemano/webhook
530     # tag: "testing-daily"
531   ingress: {}
532   #   host: webhook.<IP_ADDRESS>.nip.io
533   # replicaCount: 1
534   service: {}
535   #   type: NodePort
536   #   nodePort: 9998
537   #   port: 9998