diff --git a/charts/kyverno/Chart.yaml b/charts/kyverno/Chart.yaml index 1d91a13090..eebc82eb5e 100644 --- a/charts/kyverno/Chart.yaml +++ b/charts/kyverno/Chart.yaml @@ -70,3 +70,7 @@ annotations: description: missing image pull policy missing in a couple of deployments - kind: added description: added TUF flags for custom sigstore deployments +dependencies: + - name: grafana + version: "0.0.0" + condition: grafana.enabled diff --git a/charts/kyverno/README.md b/charts/kyverno/README.md index 34019103d6..af4a2e39fe 100644 --- a/charts/kyverno/README.md +++ b/charts/kyverno/README.md @@ -758,6 +758,10 @@ Please see https://kyverno.io/docs/installation/#security-vs-operability for mor Kubernetes: `>=1.16.0-0` +| Repository | Name | Version | +|------------|------|---------| +| | grafana | 0.0.0 | + ## Maintainers | Name | Email | Url | diff --git a/charts/kyverno/charts/grafana/Chart.yaml b/charts/kyverno/charts/grafana/Chart.yaml new file mode 100644 index 0000000000..07f506f2ba --- /dev/null +++ b/charts/kyverno/charts/grafana/Chart.yaml @@ -0,0 +1,3 @@ +apiVersion: v2 +name: grafana +version: 0.0.0 diff --git a/charts/kyverno/charts/grafana/README.md b/charts/kyverno/charts/grafana/README.md new file mode 100644 index 0000000000..514767200a --- /dev/null +++ b/charts/kyverno/charts/grafana/README.md @@ -0,0 +1,16 @@ +# grafana + +![Version: 0.0.0](https://img.shields.io/badge/Version-0.0.0-informational?style=flat-square) + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| configMapName | string | `"{{ include \"kyverno.fullname\" . }}-grafana"` | Configmap name template. | +| namespace | string | `nil` | Namespace to create the grafana dashboard configmap. If not set, it will be created in the same namespace where the chart is deployed. | +| annotations | object | `{}` | Grafana dashboard configmap annotations. | +| labels | object | `{"grafana_dashboard":"1"}` | Grafana dashboard configmap labels | +| grafanaDashboard | object | `{"create":false,"matchLabels":{"dashboards":"grafana"}}` | create GrafanaDashboard custom resource referencing to the configMap. according to https://grafana-operator.github.io/grafana-operator/docs/examples/dashboard_from_configmap/readme/ | + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0) diff --git a/charts/kyverno/grafana/dashboard.json b/charts/kyverno/charts/grafana/dashboard/dashboard.json similarity index 100% rename from charts/kyverno/grafana/dashboard.json rename to charts/kyverno/charts/grafana/dashboard/dashboard.json diff --git a/charts/kyverno/charts/grafana/templates/dashboard.yaml b/charts/kyverno/charts/grafana/templates/dashboard.yaml new file mode 100644 index 0000000000..4da55477bf --- /dev/null +++ b/charts/kyverno/charts/grafana/templates/dashboard.yaml @@ -0,0 +1,30 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ tpl .Values.configMapName . }} + namespace: {{ default (include "kyverno.namespace" .) .Values.namespace }} + annotations: + {{- toYaml .Values.annotations | nindent 4 }} + labels: + {{- toYaml .Values.labels | nindent 4 }} +data: +{{ (.Files.Glob "dashboard/*").AsConfig | indent 2 }} +--- +{{- if .Values.grafanaDashboard.create -}} +{{ range $path, $_ := .Files.Glob "dashboard/*" -}} +{{ $name := base $path }} +apiVersion: grafana.integreatly.org/v1beta1 +kind: GrafanaDashboard +metadata: + name: {{ tpl $.Values.configMapName $ }}-{{ $name }} + namespace: {{ default (include "kyverno.namespace" $ ) $.Values.namespace }} +spec: + instanceSelector: + matchLabels: + {{- toYaml $.Values.grafanaDashboard.matchLabels | nindent 6 }} + configMapRef: + name: {{ tpl $.Values.configMapName $ }} + key: {{ $name }} +--- +{{ end -}} +{{- end -}} diff --git a/charts/kyverno/charts/grafana/values.yaml b/charts/kyverno/charts/grafana/values.yaml new file mode 100644 index 0000000000..15babe2e02 --- /dev/null +++ b/charts/kyverno/charts/grafana/values.yaml @@ -0,0 +1,20 @@ +# -- Configmap name template. +configMapName: '{{ include "kyverno.fullname" . }}-grafana' + +# -- (string) Namespace to create the grafana dashboard configmap. +# If not set, it will be created in the same namespace where the chart is deployed. +namespace: ~ + +# -- Grafana dashboard configmap annotations. +annotations: {} + +# -- Grafana dashboard configmap labels +labels: + grafana_dashboard: "1" + +# -- create GrafanaDashboard custom resource referencing to the configMap. +# according to https://grafana-operator.github.io/grafana-operator/docs/examples/dashboard_from_configmap/readme/ +grafanaDashboard: + create: false + matchLabels: + dashboards: "grafana" diff --git a/charts/kyverno/templates/grafana/dashboard.yaml b/charts/kyverno/templates/grafana/dashboard.yaml deleted file mode 100644 index 50848f32cb..0000000000 --- a/charts/kyverno/templates/grafana/dashboard.yaml +++ /dev/null @@ -1,32 +0,0 @@ -{{- if .Values.grafana.enabled -}} -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ tpl .Values.grafana.configMapName . }} - namespace: {{ default (include "kyverno.namespace" .) .Values.grafana.namespace }} - annotations: - {{- toYaml .Values.grafana.annotations | nindent 4 }} - labels: - {{- toYaml .Values.grafana.labels | nindent 4 }} -data: -{{ (.Files.Glob "grafana/*").AsConfig | indent 2 }} ---- -{{- if .Values.grafana.grafanaDashboard.create -}} -{{ range $path, $_ := .Files.Glob "grafana/*" -}} -{{ $name := base $path }} -apiVersion: grafana.integreatly.org/v1beta1 -kind: GrafanaDashboard -metadata: - name: {{ tpl $.Values.grafana.configMapName $ }}-{{ $name }} - namespace: {{ default (include "kyverno.namespace" $ ) $.Values.grafana.namespace }} -spec: - instanceSelector: - matchLabels: - {{- toYaml $.Values.grafana.grafanaDashboard.matchLabels | nindent 6 }} - configMapRef: - name: {{ tpl $.Values.grafana.configMapName $ }} - key: {{ $name }} ---- -{{ end -}} -{{- end -}} -{{- end -}}