From e5c7ed850617b767483fb3e32ae5b2642d15c145 Mon Sep 17 00:00:00 2001
From: Nacho Barrientos <nacho.barrientos@cern.ch>
Date: Wed, 19 Mar 2025 11:06:57 +0100
Subject: [PATCH] Add standard Helm labels

---
 templates/_helpers.tpl                        | 51 +++++++++++++++++++
 templates/alertmanager/alertmanager.yaml      |  2 +
 templates/alertmanager/ingress.yaml           |  2 +
 templates/alertmanager/service.yaml           |  4 +-
 templates/api_server/servicemonitor.yaml      |  4 +-
 templates/coredns/servicemonitor.yaml         |  4 +-
 templates/ectd/servicemonitor.yaml            |  4 +-
 templates/fluentbit-logs/clusterrole.yaml     |  2 +
 .../fluentbit-logs/clusterrolebinding.yaml    |  2 +
 .../fluentbit-logs/configmap-luascripts.yaml  |  4 +-
 templates/fluentbit-logs/configmap.yaml       |  2 +
 templates/fluentbit-logs/daemonset.yaml       |  2 +
 templates/fluentbit-logs/serviceaccount.yaml  |  2 +
 .../configmap-luascripts.yaml                 |  4 +-
 templates/fluentbit-metrics/configmap.yaml    |  2 +
 templates/fluentbit-metrics/service.yaml      |  2 +-
 templates/fluentbit-metrics/statefulset.yaml  |  2 +
 templates/ingress_nginx/servicemonitor.yaml   |  2 +
 templates/kube_state/clusterrole.yaml         |  2 +-
 templates/kube_state/clusterrolebinding.yaml  |  2 +-
 templates/kube_state/deployment.yaml          |  2 +-
 templates/kube_state/service.yaml             |  2 +-
 templates/kube_state/serviceaccount.yaml      |  2 +-
 templates/kube_state/servicemonitor.yaml      |  3 +-
 templates/kubecontroller/servicemonitor.yaml  |  2 +
 templates/kubelet/servicemonitor.yaml         |  2 +
 templates/kubeproxy/servicemonitor.yaml       |  2 +
 templates/node_exporter/daemonset.yaml        |  2 +
 templates/node_exporter/podmonitor.yaml       |  2 +
 templates/prometheus/clusterrole.yaml         |  2 +
 templates/prometheus/clusterrolebinding.yaml  |  2 +
 .../prometheus/genericservicemonitor.yaml     |  4 +-
 templates/prometheus/prometheus.yaml          |  2 +
 templates/prometheus/remotewritesecret.yaml   |  3 +-
 templates/prometheus/serviceaccount.yaml      |  2 +
 .../prometheus_operator/clusterrole.yaml      |  2 +
 .../clusterrolebinding.yaml                   |  2 +
 templates/prometheus_operator/deployment.yaml |  2 +
 templates/prometheus_operator/service.yaml    |  2 +
 .../prometheus_operator/serviceaccount.yaml   |  2 +
 templates/pushgateway/deployment.yaml         |  2 +-
 templates/pushgateway/ingress.yaml            |  2 +
 templates/pushgateway/service.yaml            |  2 +-
 templates/pushgateway/servicemonitor.yaml     |  4 +-
 templates/scheduler/servicemonitor.yaml       |  2 +
 45 files changed, 139 insertions(+), 18 deletions(-)
 create mode 100644 templates/_helpers.tpl

diff --git a/templates/_helpers.tpl b/templates/_helpers.tpl
new file mode 100644
index 0000000..d69a68c
--- /dev/null
+++ b/templates/_helpers.tpl
@@ -0,0 +1,51 @@
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "cern-it-monitoring-kubernetes.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "cern-it-monitoring-kubernetes.fullname" -}}
+{{- if .Values.fullnameOverride }}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default .Chart.Name .Values.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "cern-it-monitoring-kubernetes.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "cern-it-monitoring-kubernetes.labels" -}}
+helm.sh/chart: {{ include "cern-it-monitoring-kubernetes.chart" . }}
+{{ include "cern-it-monitoring-kubernetes.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "cern-it-monitoring-kubernetes.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "cern-it-monitoring-kubernetes.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
\ No newline at end of file
diff --git a/templates/alertmanager/alertmanager.yaml b/templates/alertmanager/alertmanager.yaml
index af4e7c6..a423a78 100644
--- a/templates/alertmanager/alertmanager.yaml
+++ b/templates/alertmanager/alertmanager.yaml
@@ -4,6 +4,8 @@ kind: Alertmanager
 metadata:
   name: it-monit-alertmanager
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   image: '{{ .Values.metrics.alertmanager.image }}:{{ .Values.metrics.alertmanager.tag }}'
   version: {{ .Values.metrics.alertmanager.tag }}
diff --git a/templates/alertmanager/ingress.yaml b/templates/alertmanager/ingress.yaml
index f912425..aa4a996 100644
--- a/templates/alertmanager/ingress.yaml
+++ b/templates/alertmanager/ingress.yaml
@@ -5,6 +5,8 @@ kind: Ingress
 metadata:
   name: it-monit-alertmanager
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   {{- if .Values.metrics.alertmanager.ingress.className }}
   ingressClassName: {{ .Values.metrics.alertmanager.ingress.className }}
diff --git a/templates/alertmanager/service.yaml b/templates/alertmanager/service.yaml
index 272f9bd..a3ae7e8 100644
--- a/templates/alertmanager/service.yaml
+++ b/templates/alertmanager/service.yaml
@@ -4,6 +4,8 @@ kind: Service
 metadata:
   name: it-monit-alertmanager
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   clusterIP: None
   ports:
@@ -11,4 +13,4 @@ spec:
     port: 9093
   selector:
     app.kubernetes.io/instance: it-monit-alertmanager
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/templates/api_server/servicemonitor.yaml b/templates/api_server/servicemonitor.yaml
index fa989ba..dce53e5 100644
--- a/templates/api_server/servicemonitor.yaml
+++ b/templates/api_server/servicemonitor.yaml
@@ -4,6 +4,8 @@ kind: ServiceMonitor
 metadata:
   name: it-monit-metrics-servicemonitor-apiserver
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   endpoints:
   - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
@@ -37,4 +39,4 @@ spec:
     matchLabels:
       component: apiserver
       provider: kubernetes
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/templates/coredns/servicemonitor.yaml b/templates/coredns/servicemonitor.yaml
index 2250f65..920e92e 100644
--- a/templates/coredns/servicemonitor.yaml
+++ b/templates/coredns/servicemonitor.yaml
@@ -4,6 +4,8 @@ kind: ServiceMonitor
 metadata:
   name: it-monit-metrics-servicemonitor-coredns
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   endpoints:
   - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
@@ -24,4 +26,4 @@ spec:
     matchLabels:
       app.kubernetes.io/name: coredns
       app.kubernetes.io/component: metrics
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/templates/ectd/servicemonitor.yaml b/templates/ectd/servicemonitor.yaml
index cd8b9dc..54de9a6 100644
--- a/templates/ectd/servicemonitor.yaml
+++ b/templates/ectd/servicemonitor.yaml
@@ -4,6 +4,8 @@ kind: ServiceMonitor
 metadata:
   name: it-monit-metrics-servicemonitor-etcd
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   endpoints:
   - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
@@ -24,4 +26,4 @@ spec:
     matchLabels:
       app: kube-prometheus-stack-kube-etcd
       release: cern-magnum
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/templates/fluentbit-logs/clusterrole.yaml b/templates/fluentbit-logs/clusterrole.yaml
index 57fe128..8e479ba 100644
--- a/templates/fluentbit-logs/clusterrole.yaml
+++ b/templates/fluentbit-logs/clusterrole.yaml
@@ -4,6 +4,8 @@ kind: ClusterRole
 metadata:
   name: it-monit-logs-collector-fluentbit
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 rules:
   - apiGroups:
       - ""
diff --git a/templates/fluentbit-logs/clusterrolebinding.yaml b/templates/fluentbit-logs/clusterrolebinding.yaml
index 40eec5b..02b69a2 100644
--- a/templates/fluentbit-logs/clusterrolebinding.yaml
+++ b/templates/fluentbit-logs/clusterrolebinding.yaml
@@ -4,6 +4,8 @@ kind: ClusterRoleBinding
 metadata:
   name: it-monit-logs-collector-fluentbit
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: ClusterRole
diff --git a/templates/fluentbit-logs/configmap-luascripts.yaml b/templates/fluentbit-logs/configmap-luascripts.yaml
index 916c74d..f3b7c57 100644
--- a/templates/fluentbit-logs/configmap-luascripts.yaml
+++ b/templates/fluentbit-logs/configmap-luascripts.yaml
@@ -3,6 +3,8 @@ apiVersion: v1
 kind: ConfigMap
 metadata:
   name: it-monit-logs-collector-fluentbit-scripts
+  labels:
+      {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 data:
   time_to_ts.lua: |
     function add_timestamp_from_time(tag, timestamp, record)
@@ -17,4 +19,4 @@ data:
   {{ $key }}: {{ $value | quote }}
   {{ end }}
   {{ end }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/templates/fluentbit-logs/configmap.yaml b/templates/fluentbit-logs/configmap.yaml
index dc7fb82..d6c8679 100644
--- a/templates/fluentbit-logs/configmap.yaml
+++ b/templates/fluentbit-logs/configmap.yaml
@@ -4,6 +4,8 @@ kind: ConfigMap
 metadata:
   name: it-monit-logs-collector-fluentbit
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 data:
   custom_parsers.conf: |
     {{- (tpl .Values.logs.fluentbit.customParsers $) | nindent 4 }}
diff --git a/templates/fluentbit-logs/daemonset.yaml b/templates/fluentbit-logs/daemonset.yaml
index 31a10c6..1104a45 100644
--- a/templates/fluentbit-logs/daemonset.yaml
+++ b/templates/fluentbit-logs/daemonset.yaml
@@ -4,6 +4,8 @@ kind: DaemonSet
 metadata:
   name: it-monit-logs-collector-fluentbit
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   selector:
       matchLabels:
diff --git a/templates/fluentbit-logs/serviceaccount.yaml b/templates/fluentbit-logs/serviceaccount.yaml
index 5f13659..3b1bda3 100644
--- a/templates/fluentbit-logs/serviceaccount.yaml
+++ b/templates/fluentbit-logs/serviceaccount.yaml
@@ -4,4 +4,6 @@ kind: ServiceAccount
 metadata:
   name: it-monit-logs-collector-fluentbit
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 {{- end -}}
diff --git a/templates/fluentbit-metrics/configmap-luascripts.yaml b/templates/fluentbit-metrics/configmap-luascripts.yaml
index ea6f6a8..e11b4ab 100644
--- a/templates/fluentbit-metrics/configmap-luascripts.yaml
+++ b/templates/fluentbit-metrics/configmap-luascripts.yaml
@@ -3,10 +3,12 @@ apiVersion: v1
 kind: ConfigMap
 metadata:
   name: it-monit-metrics-collector-fluentbit-scripts
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 data:
   {{- if .Values.metrics.fluentbit.luaScripts -}}
   {{ range $key, $value := .Values.metrics.fluentbit.luaScripts }}
   {{ $key }}: {{ $value | quote }}
   {{ end }}
   {{ end }}
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/templates/fluentbit-metrics/configmap.yaml b/templates/fluentbit-metrics/configmap.yaml
index d753bbb..18bfd5a 100644
--- a/templates/fluentbit-metrics/configmap.yaml
+++ b/templates/fluentbit-metrics/configmap.yaml
@@ -4,6 +4,8 @@ kind: ConfigMap
 metadata:
   name: it-monit-metrics-collector-fluentbit
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 data:
   fluent-bit.yaml: |
     service:
diff --git a/templates/fluentbit-metrics/service.yaml b/templates/fluentbit-metrics/service.yaml
index f5f494d..e45fc29 100644
--- a/templates/fluentbit-metrics/service.yaml
+++ b/templates/fluentbit-metrics/service.yaml
@@ -5,7 +5,7 @@ metadata:
   name: it-monit-metrics-fluentbit
   namespace: {{ .Release.Namespace }}
   labels:
-    name: it-monit-metrics-collector-fluentbit
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   clusterIP: None
   ports:
diff --git a/templates/fluentbit-metrics/statefulset.yaml b/templates/fluentbit-metrics/statefulset.yaml
index 066c236..6fc036a 100644
--- a/templates/fluentbit-metrics/statefulset.yaml
+++ b/templates/fluentbit-metrics/statefulset.yaml
@@ -4,6 +4,8 @@ kind: StatefulSet
 metadata:
   name: it-monit-metrics-collector-fluentbit
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   selector:
       matchLabels:
diff --git a/templates/ingress_nginx/servicemonitor.yaml b/templates/ingress_nginx/servicemonitor.yaml
index c06c5ce..400086c 100644
--- a/templates/ingress_nginx/servicemonitor.yaml
+++ b/templates/ingress_nginx/servicemonitor.yaml
@@ -4,6 +4,8 @@ kind: ServiceMonitor
 metadata:
   name: it-monit-metrics-servicemonitor-ingress-nginx
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   endpoints:
   - interval: 15s
diff --git a/templates/kube_state/clusterrole.yaml b/templates/kube_state/clusterrole.yaml
index 6ce043c..af53bc1 100644
--- a/templates/kube_state/clusterrole.yaml
+++ b/templates/kube_state/clusterrole.yaml
@@ -5,7 +5,7 @@ metadata:
   name: it-monit-metrics-collector-kubestate
   namespace: {{ .Release.Namespace }}
   labels:
-    app.kubernetes.io/name: it-monit-metrics-collector-kubestate
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 rules:
 - apiGroups:
   - ""
diff --git a/templates/kube_state/clusterrolebinding.yaml b/templates/kube_state/clusterrolebinding.yaml
index aec5ec6..75096cf 100644
--- a/templates/kube_state/clusterrolebinding.yaml
+++ b/templates/kube_state/clusterrolebinding.yaml
@@ -5,7 +5,7 @@ metadata:
   name: it-monit-metrics-collector-kubestate
   namespace: {{ .Release.Namespace }}
   labels:
-    app.kubernetes.io/name: it-monit-metrics-collector-kubestate
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: ClusterRole
diff --git a/templates/kube_state/deployment.yaml b/templates/kube_state/deployment.yaml
index 981de6c..b506c48 100644
--- a/templates/kube_state/deployment.yaml
+++ b/templates/kube_state/deployment.yaml
@@ -5,7 +5,7 @@ metadata:
   name: it-monit-metrics-collector-kubestate
   namespace: {{ .Release.Namespace }}
   labels:
-    app.kubernetes.io/name: it-monit-metrics-collector-kubestate
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   replicas: 1
   selector:
diff --git a/templates/kube_state/service.yaml b/templates/kube_state/service.yaml
index f76c04a..a5ba53e 100644
--- a/templates/kube_state/service.yaml
+++ b/templates/kube_state/service.yaml
@@ -5,7 +5,7 @@ metadata:
   name: it-monit-metrics-collector-kubestate
   namespace: {{ .Release.Namespace }}
   labels:
-    app.kubernetes.io/name: it-monit-metrics-collector-kubestate
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   clusterIP: None
   ports:
diff --git a/templates/kube_state/serviceaccount.yaml b/templates/kube_state/serviceaccount.yaml
index c5c101e..72be31b 100644
--- a/templates/kube_state/serviceaccount.yaml
+++ b/templates/kube_state/serviceaccount.yaml
@@ -6,5 +6,5 @@ metadata:
   name: it-monit-metrics-collector-kubestate
   namespace: {{ .Release.Namespace }}
   labels:
-    app.kubernetes.io/name: it-monit-metrics-collector-kubestate
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 {{- end -}}
diff --git a/templates/kube_state/servicemonitor.yaml b/templates/kube_state/servicemonitor.yaml
index 5f9811c..b4ed03c 100644
--- a/templates/kube_state/servicemonitor.yaml
+++ b/templates/kube_state/servicemonitor.yaml
@@ -4,7 +4,8 @@ kind: ServiceMonitor
 metadata:
   name: it-monit-metrics-servicemonitor-kubestate
   namespace: {{ .Release.Namespace }}
-
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   jobLabel: k8s-app
   endpoints:
diff --git a/templates/kubecontroller/servicemonitor.yaml b/templates/kubecontroller/servicemonitor.yaml
index 8cd5381..5802cf7 100644
--- a/templates/kubecontroller/servicemonitor.yaml
+++ b/templates/kubecontroller/servicemonitor.yaml
@@ -4,6 +4,8 @@ kind: ServiceMonitor
 metadata:
   name: it-monit-metrics-servicemonitor-kubecontroller
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   endpoints:
   - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
diff --git a/templates/kubelet/servicemonitor.yaml b/templates/kubelet/servicemonitor.yaml
index 6c224f3..697bd17 100644
--- a/templates/kubelet/servicemonitor.yaml
+++ b/templates/kubelet/servicemonitor.yaml
@@ -4,6 +4,8 @@ kind: ServiceMonitor
 metadata:
   name: it-monit-metrics-servicemonitor-kubelet
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   jobLabel: k8s-app
   endpoints:
diff --git a/templates/kubeproxy/servicemonitor.yaml b/templates/kubeproxy/servicemonitor.yaml
index 2fb4838..d5ac606 100644
--- a/templates/kubeproxy/servicemonitor.yaml
+++ b/templates/kubeproxy/servicemonitor.yaml
@@ -4,6 +4,8 @@ kind: ServiceMonitor
 metadata:
   name: it-monit-metrics-servicemonitor-kubeproxy
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   endpoints:
   - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
diff --git a/templates/node_exporter/daemonset.yaml b/templates/node_exporter/daemonset.yaml
index 436e7bc..fdd1c36 100644
--- a/templates/node_exporter/daemonset.yaml
+++ b/templates/node_exporter/daemonset.yaml
@@ -4,6 +4,8 @@ kind: DaemonSet
 metadata:
   name: it-monit-metrics-collector-nodeexporter
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   selector:
     matchLabels:
diff --git a/templates/node_exporter/podmonitor.yaml b/templates/node_exporter/podmonitor.yaml
index fbf48f7..091ed20 100644
--- a/templates/node_exporter/podmonitor.yaml
+++ b/templates/node_exporter/podmonitor.yaml
@@ -4,6 +4,8 @@ kind: PodMonitor
 metadata:
   name: it-monit-metrics-podmonitor-nodeexporter
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   namespaceSelector:
       matchNames:
diff --git a/templates/prometheus/clusterrole.yaml b/templates/prometheus/clusterrole.yaml
index 26b6f9f..d8675a2 100644
--- a/templates/prometheus/clusterrole.yaml
+++ b/templates/prometheus/clusterrole.yaml
@@ -4,6 +4,8 @@ kind: ClusterRole
 metadata:
   name: it-monit-metrics-collector-prometheus
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 rules:
 - apiGroups: [""]
   resources:
diff --git a/templates/prometheus/clusterrolebinding.yaml b/templates/prometheus/clusterrolebinding.yaml
index e038639..e4b70bb 100644
--- a/templates/prometheus/clusterrolebinding.yaml
+++ b/templates/prometheus/clusterrolebinding.yaml
@@ -4,6 +4,8 @@ kind: ClusterRoleBinding
 metadata:
   name: it-monit-metrics-collector-prometheus
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: ClusterRole
diff --git a/templates/prometheus/genericservicemonitor.yaml b/templates/prometheus/genericservicemonitor.yaml
index 05aa234..527a564 100644
--- a/templates/prometheus/genericservicemonitor.yaml
+++ b/templates/prometheus/genericservicemonitor.yaml
@@ -8,8 +8,10 @@ kind: ServiceMonitor
 metadata:
   name: {{ $t.name }}
   namespace: {{ $top.Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   {{- toYaml $t.spec | nindent 2 }}
 {{- end }}
 {{- end }}
-{{- end }}
\ No newline at end of file
+{{- end }}
diff --git a/templates/prometheus/prometheus.yaml b/templates/prometheus/prometheus.yaml
index b53ca4e..9c3ec15 100644
--- a/templates/prometheus/prometheus.yaml
+++ b/templates/prometheus/prometheus.yaml
@@ -4,6 +4,8 @@ kind: Prometheus
 metadata:
   name: it-monit-metrics-collector-prometheus
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   image: {{ .Values.metrics.prometheus.server.image }}
   version: {{ .Values.metrics.prometheus.server.version }}
diff --git a/templates/prometheus/remotewritesecret.yaml b/templates/prometheus/remotewritesecret.yaml
index 59eca9b..f557cdd 100644
--- a/templates/prometheus/remotewritesecret.yaml
+++ b/templates/prometheus/remotewritesecret.yaml
@@ -4,7 +4,8 @@ apiVersion: v1
 kind: Secret
 metadata:
   name: it-monit-metrics-collector-prometheus
-  namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 type: kubernetes.io/basic-auth
 data:
 {{- if and .Values.metrics.prometheus.server.remoteWrite.username .Values.metrics.prometheus.server.remoteWrite.password }}
diff --git a/templates/prometheus/serviceaccount.yaml b/templates/prometheus/serviceaccount.yaml
index 8f46639..8495fc1 100644
--- a/templates/prometheus/serviceaccount.yaml
+++ b/templates/prometheus/serviceaccount.yaml
@@ -4,4 +4,6 @@ kind: ServiceAccount
 metadata:
   name: it-monit-metrics-collector-prometheus
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 {{- end -}}
diff --git a/templates/prometheus_operator/clusterrole.yaml b/templates/prometheus_operator/clusterrole.yaml
index 22db1ad..870a4d0 100644
--- a/templates/prometheus_operator/clusterrole.yaml
+++ b/templates/prometheus_operator/clusterrole.yaml
@@ -4,6 +4,8 @@ kind: ClusterRole
 metadata:
   name: it-monit-metrics-operator-prometheus
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 rules:
 - apiGroups:
   - monitoring.coreos.com
diff --git a/templates/prometheus_operator/clusterrolebinding.yaml b/templates/prometheus_operator/clusterrolebinding.yaml
index a951431..f0d87ad 100644
--- a/templates/prometheus_operator/clusterrolebinding.yaml
+++ b/templates/prometheus_operator/clusterrolebinding.yaml
@@ -4,6 +4,8 @@ kind: ClusterRoleBinding
 metadata:
   name: it-monit-metrics-operator-prometheus
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: ClusterRole
diff --git a/templates/prometheus_operator/deployment.yaml b/templates/prometheus_operator/deployment.yaml
index 795efaa..c7631d3 100644
--- a/templates/prometheus_operator/deployment.yaml
+++ b/templates/prometheus_operator/deployment.yaml
@@ -4,6 +4,8 @@ kind: Deployment
 metadata:
   name: it-monit-metrics-operator-prometheus
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   replicas: 1
   selector:
diff --git a/templates/prometheus_operator/service.yaml b/templates/prometheus_operator/service.yaml
index 34e52af..14fa20d 100644
--- a/templates/prometheus_operator/service.yaml
+++ b/templates/prometheus_operator/service.yaml
@@ -4,6 +4,8 @@ kind: Service
 metadata:
   name: it-monit-metrics-operator-prometheus
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   clusterIP: None
   ports:
diff --git a/templates/prometheus_operator/serviceaccount.yaml b/templates/prometheus_operator/serviceaccount.yaml
index 969c59e..ebdccad 100644
--- a/templates/prometheus_operator/serviceaccount.yaml
+++ b/templates/prometheus_operator/serviceaccount.yaml
@@ -5,4 +5,6 @@ kind: ServiceAccount
 metadata:
   name: it-monit-metrics-operator-prometheus
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 {{- end -}}
diff --git a/templates/pushgateway/deployment.yaml b/templates/pushgateway/deployment.yaml
index f36f93f..1d2d40e 100644
--- a/templates/pushgateway/deployment.yaml
+++ b/templates/pushgateway/deployment.yaml
@@ -5,7 +5,7 @@ metadata:
   name: it-monit-metrics-collector-pushgateway
   namespace: {{ .Release.Namespace }}
   labels:
-    app.kubernetes.io/name: it-monit-metrics-collector-pushgateway
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   replicas: 1
   selector:
diff --git a/templates/pushgateway/ingress.yaml b/templates/pushgateway/ingress.yaml
index 886f2ee..7b64d8c 100644
--- a/templates/pushgateway/ingress.yaml
+++ b/templates/pushgateway/ingress.yaml
@@ -5,6 +5,8 @@ kind: Ingress
 metadata:
   name: it-monit-metrics-collector-pushgateway
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   {{- if .Values.metrics.pushgateway.ingress.className }}
   ingressClassName: {{ .Values.metrics.pushgateway.ingress.className }}
diff --git a/templates/pushgateway/service.yaml b/templates/pushgateway/service.yaml
index 7768dcb..729241c 100644
--- a/templates/pushgateway/service.yaml
+++ b/templates/pushgateway/service.yaml
@@ -5,7 +5,7 @@ metadata:
   name: it-monit-metrics-collector-pushgateway
   namespace: {{ .Release.Namespace }}
   labels:
-    app.kubernetes.io/name: it-monit-metrics-collector-pushgateway
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   clusterIP: None
   ports:
diff --git a/templates/pushgateway/servicemonitor.yaml b/templates/pushgateway/servicemonitor.yaml
index 44eec39..4ece85c 100644
--- a/templates/pushgateway/servicemonitor.yaml
+++ b/templates/pushgateway/servicemonitor.yaml
@@ -4,6 +4,8 @@ kind: ServiceMonitor
 metadata:
   name: it-monit-metrics-servicemonitor-pushgateway
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   endpoints:
   - port: http
@@ -13,4 +15,4 @@ spec:
   selector:
     matchLabels:
       app.kubernetes.io/name: it-monit-metrics-collector-pushgateway
-{{- end -}}
\ No newline at end of file
+{{- end -}}
diff --git a/templates/scheduler/servicemonitor.yaml b/templates/scheduler/servicemonitor.yaml
index 954c154..dd7e2a6 100644
--- a/templates/scheduler/servicemonitor.yaml
+++ b/templates/scheduler/servicemonitor.yaml
@@ -4,6 +4,8 @@ kind: ServiceMonitor
 metadata:
   name: servicemonitor-scheduler
   namespace: {{ .Release.Namespace }}
+  labels:
+    {{- include "cern-it-monitoring-kubernetes.labels" . | nindent 4 }}
 spec:
   endpoints:
   - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
-- 
GitLab