94 lines
2.9 KiB
YAML
94 lines
2.9 KiB
YAML
{{- if .Values.defaultDashboards.enabled }}
|
|
|
|
{{- /*
|
|
Create custom template context
|
|
*/}}
|
|
{{- $ctx := dict "helm" . -}}
|
|
|
|
{{- /*
|
|
Loop through all dashboard files, that were crafted with hack/sync_grafana_dashboards.py
|
|
*/}}
|
|
{{- range $dashboardFile, $_ := .Files.Glob "files/dashboards/**.yaml" -}}
|
|
|
|
{{- /*
|
|
Get dashboard name
|
|
*/}}
|
|
{{- $dashboardBase := base $dashboardFile }}
|
|
{{- $dashboardName := (trimSuffix (ext $dashboardBase) $dashboardBase) -}}
|
|
|
|
{{- /*
|
|
Get dashboard data from file
|
|
*/}}
|
|
{{- $dashboardData := fromYaml (tpl ($.Files.Get $dashboardFile) $) -}}
|
|
|
|
{{- /*
|
|
Save condition for a dashboard from file
|
|
*/}}
|
|
{{- $dashboardCondition := $dashboardData.condition }}
|
|
{{- if hasKey (index ((($.Values).defaultDashboards).dashboards) $dashboardName) "enabled" }}
|
|
{{- $dashboardCondition = index $.Values.defaultDashboards.dashboards $dashboardName "enabled" }}
|
|
{{- end }}
|
|
|
|
{{- /*
|
|
Delete condition from dashboard
|
|
*/}}
|
|
{{- $_ := unset $dashboardData "condition" -}}
|
|
|
|
{{- if and $.Values.grafana.sidecar.dashboards.enabled $.Values.grafana.dashboards -}}
|
|
{{ fail `It is not possible to use both "grafana.sidecar.dashboards.enabled: true" and "grafana.dashboards" at the same time.
|
|
Disable either sidecar or dashboards configuration. See more details at https://docs.victoriametrics.com/helm/victoriametrics-k8s-stack/#adding-external-dashboards` }}
|
|
{{- end -}}
|
|
|
|
{{- /*
|
|
Check if dashboard is enabled
|
|
*/}}
|
|
{{- if $dashboardCondition }}
|
|
|
|
{{- $dashboardResult := toRawJson $dashboardData -}}
|
|
{{- $app := ((printf "%s-grafana" (include "vm.name" $)) | trunc 63 | trimSuffix "-") }}
|
|
{{- $_ := set $ctx "extraLabels" (dict "app" $app) }}
|
|
{{- if $.Values.defaultDashboards.grafanaOperator.enabled }}
|
|
---
|
|
apiVersion: grafana.integreatly.org/v1beta1
|
|
kind: GrafanaDashboard
|
|
metadata:
|
|
namespace: {{ include "vm.namespace" $ }}
|
|
name: {{ printf "%s-%s" (include "vm.fullname" $ctx) $dashboardName | replace "_" "" }}
|
|
labels: {{ include "vm.labels" $ctx | nindent 4 }}
|
|
{{- with $.Values.defaultDashboards.annotations }}
|
|
annotations:
|
|
{{- range $key, $val := . }}
|
|
{{ $key }}: {{ $val | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
spec:
|
|
json: | {{ $dashboardResult | nindent 4 }}
|
|
{{- toYaml $.Values.defaultDashboards.grafanaOperator.spec | nindent 2 }}
|
|
{{- else }}
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
namespace: {{ include "vm.namespace" $ }}
|
|
name: {{ printf "%s-%s" (include "vm.fullname" $) $dashboardName }}
|
|
labels:
|
|
{{- if $.Values.grafana.sidecar.dashboards.label }}
|
|
{{ $.Values.grafana.sidecar.dashboards.label }}: "1"
|
|
{{- end }}
|
|
{{- range $key, $val := $.Values.defaultDashboards.labels }}
|
|
{{ $key }}: {{ $val | quote }}
|
|
{{- end }}
|
|
{{- include "vm.labels" $ctx | nindent 4 }}
|
|
{{- with $.Values.defaultDashboards.annotations }}
|
|
annotations:
|
|
{{- range $key, $val := . }}
|
|
{{ $key }}: {{ $val | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
data:
|
|
{{ $dashboardName }}.json: | {{ $dashboardResult | nindent 4 }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|