diff --git a/charts/dragonfly-operator/dashboards/grafana-dashboard.json b/charts/dragonfly-operator/dashboards/grafana-dashboard.json new file mode 120000 index 0000000..af20b65 --- /dev/null +++ b/charts/dragonfly-operator/dashboards/grafana-dashboard.json @@ -0,0 +1 @@ +../../../monitoring/grafana-dashboard.json \ No newline at end of file diff --git a/charts/dragonfly-operator/templates/grafanadashboards.yaml b/charts/dragonfly-operator/templates/grafanadashboards.yaml new file mode 100644 index 0000000..2668794 --- /dev/null +++ b/charts/dragonfly-operator/templates/grafanadashboards.yaml @@ -0,0 +1,47 @@ +{{ if .Values.grafanaDashboard.enabled -}} +{{- $files := .Files.Glob "dashboards/*.json" }} +{{- if $files }} +--- +apiVersion: v1 +kind: ConfigMapList +items: +{{- range $path, $fileContents := $files }} +{{- $dashboardName := regexReplaceAll "(^.*/)(.*)\\.json$" $path "${2}" | lower }} +- apiVersion: v1 + kind: ConfigMap + metadata: + annotations: + {{ $.Values.grafanaDashboard.annotations.name }}: {{ $.Values.grafanaDashboard.folder }} + labels: + {{ $.Values.grafanaDashboard.labels.name }}: {{ $dashboardName }} + {{- include "dragonfly-operator.labels" $ | nindent 6 }} + app.kubernetes.io/component: dashboard + name: {{ printf "dashboard-dragonfly-operator-%s" $dashboardName | trunc 63 | trimSuffix "-" }} + data: + {{ $dashboardName }}.json: |- +{{ $.Files.Get $path | indent 6}} +{{- end }} +{{ if $.Values.grafanaDashboard.grafanaOperator.enabled -}} +{{- range $path, $fileContents := $files }} +{{- $dashboardName := regexReplaceAll "(^.*/)(.*)\\.json$" $path "${2}" | lower }} +--- +apiVersion: grafana.integreatly.org/v1beta1 +kind: GrafanaDashboard +metadata: + labels: + {{- include "dragonfly-operator.labels" $ | nindent 4 }} + app.kubernetes.io/component: dashboard + name: {{ printf "dragonfly-operator-%s" $dashboardName | trunc 63 | trimSuffix "-" }} +spec: + allowCrossNamespaceImport: {{ $.Values.grafanaDashboard.grafanaOperator.allowCrossNamespaceImport }} + folder: {{ $.Values.grafanaDashboard.folder }} + instanceSelector: + matchLabels: + {{- toYaml $.Values.grafanaDashboard.grafanaOperator.matchLabels | nindent 6 }} + configMapRef: + name: {{ printf "dashboard-dragonfly-operator-%s" $dashboardName | trunc 63 | trimSuffix "-" }} + key: {{ $dashboardName }}.json +{{- end }} +{{- end }} +{{- end }} +{{- end }} diff --git a/charts/dragonfly-operator/values.yaml b/charts/dragonfly-operator/values.yaml index 10d7c9c..4250766 100644 --- a/charts/dragonfly-operator/values.yaml +++ b/charts/dragonfly-operator/values.yaml @@ -126,7 +126,6 @@ manager: # values: # - linux - serviceMonitor: # When set true then use a ServiceMonitor to configure scraping enabled: false @@ -147,4 +146,20 @@ serviceMonitor: # - sourceLabels: [dbinstance_identifier] # action: replace # replacement: mydbname - # targetLabel: dbname \ No newline at end of file + # targetLabel: dbname + +grafanaDashboard: + enabled: false + folder: database + # -- Grafana dashboard configmap annotations. + annotations: + name: grafana_folder + # -- Grafana dashboard configmap labels + labels: + name: grafana_dashboard + grafanaOperator: + enabled: false + allowCrossNamespaceImport: true + # -- Selected labels for Grafana instance + matchLabels: + dashboards: grafana