From 3e11d6347c6535b07f8313f908653d939a2f493d Mon Sep 17 00:00:00 2001 From: Ruben Rodriguez Date: Mon, 24 Oct 2022 15:10:47 +0200 Subject: [PATCH 1/2] Helm: add additional labels to resources --- helm-charts/kubeinvaders/templates/deployment.yaml | 6 ++++++ helm-charts/kubeinvaders/templates/ingress.yaml | 3 +++ helm-charts/kubeinvaders/templates/rbac-cluster.yaml | 3 +++ helm-charts/kubeinvaders/templates/rbac.yaml | 3 +++ helm-charts/kubeinvaders/templates/service.yaml | 3 +++ helm-charts/kubeinvaders/templates/serviceaccount.yaml | 3 +++ helm-charts/kubeinvaders/templates/servicemonitor.yaml | 3 +++ helm-charts/kubeinvaders/values.yaml | 3 +++ 8 files changed, 27 insertions(+) diff --git a/helm-charts/kubeinvaders/templates/deployment.yaml b/helm-charts/kubeinvaders/templates/deployment.yaml index 2e531a21e..a6f8704dd 100644 --- a/helm-charts/kubeinvaders/templates/deployment.yaml +++ b/helm-charts/kubeinvaders/templates/deployment.yaml @@ -7,6 +7,9 @@ metadata: helm.sh/chart: {{ include "kubeinvaders.chart" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: {{ .Release.Service }} + {{- with .Values.additionalLabels }} + {{- . | toYaml | nindent 4 }} + {{- end }} spec: replicas: {{ .Values.deployment.replicaCount }} selector: @@ -18,6 +21,9 @@ spec: labels: app.kubernetes.io/name: kubeinvaders app.kubernetes.io/instance: {{ .Release.Name }} + {{- with .Values.additionalLabels }} + {{- . | toYaml | nindent 8 }} + {{- end }} spec: serviceAccountName: kubeinvaders {{- with .Values.deployment.securityContext }} diff --git a/helm-charts/kubeinvaders/templates/ingress.yaml b/helm-charts/kubeinvaders/templates/ingress.yaml index d53eb7916..c8a7cd470 100644 --- a/helm-charts/kubeinvaders/templates/ingress.yaml +++ b/helm-charts/kubeinvaders/templates/ingress.yaml @@ -8,6 +8,9 @@ metadata: helm.sh/chart: {{ include "kubeinvaders.chart" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: {{ .Release.Service }} + {{- with .Values.additionalLabels }} + {{- . | toYaml | nindent 4 }} + {{- end }} {{- with .Values.ingress.annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/helm-charts/kubeinvaders/templates/rbac-cluster.yaml b/helm-charts/kubeinvaders/templates/rbac-cluster.yaml index 926bcf88b..5c4f88ed5 100644 --- a/helm-charts/kubeinvaders/templates/rbac-cluster.yaml +++ b/helm-charts/kubeinvaders/templates/rbac-cluster.yaml @@ -9,6 +9,9 @@ metadata: chart: {{ template "kubeinvaders.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} + {{- with .Values.additionalLabels }} + {{- . | toYaml | nindent 4 }} + {{- end }} rules: - apiGroups: [""] resources: ["pods", "pods/log"] diff --git a/helm-charts/kubeinvaders/templates/rbac.yaml b/helm-charts/kubeinvaders/templates/rbac.yaml index 51132beee..75ce83128 100644 --- a/helm-charts/kubeinvaders/templates/rbac.yaml +++ b/helm-charts/kubeinvaders/templates/rbac.yaml @@ -8,6 +8,9 @@ metadata: chart: {{ template "kubeinvaders.chart" $ }} release: {{ $.Release.Name }} heritage: {{ $.Release.Service }} + {{- with .Values.additionalLabels }} + {{- . | toYaml | nindent 4 }} + {{- end }} rules: - apiGroups: [""] resources: ["pods", "pods/log", "jobs"] diff --git a/helm-charts/kubeinvaders/templates/service.yaml b/helm-charts/kubeinvaders/templates/service.yaml index 08793f787..49d510bf6 100644 --- a/helm-charts/kubeinvaders/templates/service.yaml +++ b/helm-charts/kubeinvaders/templates/service.yaml @@ -7,6 +7,9 @@ metadata: helm.sh/chart: {{ include "kubeinvaders.chart" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: {{ .Release.Service }} + {{- with .Values.additionalLabels }} + {{- . | toYaml | nindent 4 }} + {{- end }} spec: type: {{ .Values.service.type }} ports: diff --git a/helm-charts/kubeinvaders/templates/serviceaccount.yaml b/helm-charts/kubeinvaders/templates/serviceaccount.yaml index 6cc7aab18..e1c1304c3 100644 --- a/helm-charts/kubeinvaders/templates/serviceaccount.yaml +++ b/helm-charts/kubeinvaders/templates/serviceaccount.yaml @@ -9,3 +9,6 @@ metadata: chart: {{ template "kubeinvaders.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} + {{- with .Values.additionalLabels }} + {{- . | toYaml | nindent 4 }} + {{- end }} diff --git a/helm-charts/kubeinvaders/templates/servicemonitor.yaml b/helm-charts/kubeinvaders/templates/servicemonitor.yaml index de6929f71..f8584fd5f 100644 --- a/helm-charts/kubeinvaders/templates/servicemonitor.yaml +++ b/helm-charts/kubeinvaders/templates/servicemonitor.yaml @@ -8,6 +8,9 @@ metadata: helm.sh/chart: {{ include "kubeinvaders.chart" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: {{ .Release.Service }} + {{- with .Values.additionalLabels }} + {{- . | toYaml | nindent 4 }} + {{- end }} spec: endpoints: - port: http diff --git a/helm-charts/kubeinvaders/values.yaml b/helm-charts/kubeinvaders/values.yaml index e22de5a29..2767f5110 100644 --- a/helm-charts/kubeinvaders/values.yaml +++ b/helm-charts/kubeinvaders/values.yaml @@ -5,6 +5,9 @@ nameOverride: "" fullnameOverride: "" +# Additional labels for resources +additionalLabels: {} + config: # target_namespace where kubeinvaders should be allowed to kill pods target_namespace: "default" From bc69a774fa91876b1ab2b5a720927b53e038a96a Mon Sep 17 00:00:00 2001 From: Ruben Rodriguez Date: Mon, 24 Oct 2022 15:22:31 +0200 Subject: [PATCH 2/2] Helm: add Grafana Dashboard for Grafana operator --- .../dashboards/KubeInvadersDashboard.json | 1 + .../templates/grafanadashboard.yaml | 43 +++++++++++++++++++ helm-charts/kubeinvaders/values.yaml | 5 +++ 3 files changed, 49 insertions(+) create mode 120000 helm-charts/kubeinvaders/dashboards/KubeInvadersDashboard.json create mode 100644 helm-charts/kubeinvaders/templates/grafanadashboard.yaml diff --git a/helm-charts/kubeinvaders/dashboards/KubeInvadersDashboard.json b/helm-charts/kubeinvaders/dashboards/KubeInvadersDashboard.json new file mode 120000 index 000000000..f0716f328 --- /dev/null +++ b/helm-charts/kubeinvaders/dashboards/KubeInvadersDashboard.json @@ -0,0 +1 @@ +../../../grafana/KubeInvadersDashboard.json \ No newline at end of file diff --git a/helm-charts/kubeinvaders/templates/grafanadashboard.yaml b/helm-charts/kubeinvaders/templates/grafanadashboard.yaml new file mode 100644 index 000000000..4894a2ac5 --- /dev/null +++ b/helm-charts/kubeinvaders/templates/grafanadashboard.yaml @@ -0,0 +1,43 @@ +{{ if .Values.grafanaDashboard.enabled }} +{{ $currentScope := .}} +{{ range $path, $_ := .Files.Glob "dashboards/**.json" }} +{{ $dashboardName := regexReplaceAll "(^.*/)(.*)\\.json$" $path "${2}" }} +{{- with $currentScope}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: "grafana-dashboards-{{ lower $dashboardName }}" + labels: + app.kubernetes.io/name: kubeinvaders + helm.sh/chart: {{ include "kubeinvaders.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + {{- with .Values.additionalLabels }} + {{- . | toYaml | nindent 4 }} + {{- end }} +data: + {{- (.Files.Glob $path).AsConfig | nindent 2 }} +--- +apiVersion: integreatly.org/v1alpha1 +kind: GrafanaDashboard +metadata: + name: "grafana-dashboards-{{ lower $dashboardName }}" + labels: + app.kubernetes.io/name: kubeinvaders + helm.sh/chart: {{ include "kubeinvaders.chart" . }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + {{- with .Values.additionalLabels }} + {{- . | toYaml | nindent 4 }} + {{- end }} +spec: + datasources: + - inputName: "DS_PROMETHEUS" + datasourceName: "Prometheus" + configMapRef: + name: "grafana-dashboards-{{ lower $dashboardName }}" + key: {{ $dashboardName }}.json +{{- end }} +{{ end }} +{{ end }} diff --git a/helm-charts/kubeinvaders/values.yaml b/helm-charts/kubeinvaders/values.yaml index e22de5a29..8254836c0 100644 --- a/helm-charts/kubeinvaders/values.yaml +++ b/helm-charts/kubeinvaders/values.yaml @@ -67,3 +67,8 @@ route_host: "" serviceMonitor: enabled: false + +# Create Grafana Dashboard CRD and configmap for Grafana operator +grafanaDashboard: + enabled: false + labels: {} # Labels configured in Grafana operator as dashboardLabelSelector