From a978e53cb810aba055a6d9e3cfe03ce7196cb95a Mon Sep 17 00:00:00 2001 From: Alexander Katsyuba Date: Thu, 2 Jan 2020 18:37:41 +0300 Subject: [PATCH] [stable/kube-state-metrics] Namespace override (#18990) Signed-off-by: Alexander Katsyuba --- charts/kube-state-metrics/Chart.yaml | 2 +- charts/kube-state-metrics/README.md | 1 + charts/kube-state-metrics/templates/NOTES.txt | 2 +- charts/kube-state-metrics/templates/_helpers.tpl | 11 +++++++++++ .../templates/clusterrolebinding.yaml | 2 +- charts/kube-state-metrics/templates/deployment.yaml | 1 + .../templates/psp-clusterrolebinding.yaml | 2 +- charts/kube-state-metrics/templates/service.yaml | 1 + .../kube-state-metrics/templates/serviceaccount.yaml | 1 + .../kube-state-metrics/templates/servicemonitor.yaml | 1 + charts/kube-state-metrics/values.yaml | 4 ++++ 11 files changed, 24 insertions(+), 4 deletions(-) diff --git a/charts/kube-state-metrics/Chart.yaml b/charts/kube-state-metrics/Chart.yaml index 3143924c..7ec3c0f0 100644 --- a/charts/kube-state-metrics/Chart.yaml +++ b/charts/kube-state-metrics/Chart.yaml @@ -6,7 +6,7 @@ keywords: - monitoring - prometheus - kubernetes -version: 2.5.0 +version: 2.6.0 appVersion: 1.9.0 home: https://github.com/kubernetes/kube-state-metrics/ sources: diff --git a/charts/kube-state-metrics/README.md b/charts/kube-state-metrics/README.md index 52f3d5fd..45d3dbd9 100644 --- a/charts/kube-state-metrics/README.md +++ b/charts/kube-state-metrics/README.md @@ -69,3 +69,4 @@ $ helm install stable/kube-state-metrics | `prometheus.monitor.additionalLabels` | Additional labels that can be used so ServiceMonitor will be discovered by Prometheus | `{}` | | `prometheus.monitor.namespace` | Namespace where servicemonitor resource should be created | `the same namespace as kube-state-metrics` | | `prometheus.monitor.honorLabels` | Honor metric labels | `false` | +| `namespaceOverride` | Override the deployment namespace | `""` (`Release.Namespace`) | diff --git a/charts/kube-state-metrics/templates/NOTES.txt b/charts/kube-state-metrics/templates/NOTES.txt index d804011e..5a646e0c 100644 --- a/charts/kube-state-metrics/templates/NOTES.txt +++ b/charts/kube-state-metrics/templates/NOTES.txt @@ -3,7 +3,7 @@ The exposed metrics can be found here: https://github.com/kubernetes/kube-state-metrics/blob/master/docs/README.md#exposed-metrics The metrics are exported on the HTTP endpoint /metrics on the listening port. -In your case, {{ template "kube-state-metrics.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local:{{ .Values.service.port }}/metrics +In your case, {{ template "kube-state-metrics.fullname" . }}.{{ template "kube-state-metrics.namespace" . }}.svc.cluster.local:{{ .Values.service.port }}/metrics They are served either as plaintext or protobuf depending on the Accept header. They are designed to be consumed either by Prometheus itself or by a scraper that is compatible with scraping a Prometheus client endpoint. diff --git a/charts/kube-state-metrics/templates/_helpers.tpl b/charts/kube-state-metrics/templates/_helpers.tpl index e59ada57..6ae0e647 100644 --- a/charts/kube-state-metrics/templates/_helpers.tpl +++ b/charts/kube-state-metrics/templates/_helpers.tpl @@ -34,3 +34,14 @@ Create the name of the service account to use {{ default "default" .Values.serviceAccount.name }} {{- end -}} {{- end -}} + +{{/* +Allow the release namespace to be overridden for multi-namespace deployments in combined charts +*/}} +{{- define "kube-state-metrics.namespace" -}} + {{- if .Values.namespaceOverride -}} + {{- .Values.namespaceOverride -}} + {{- else -}} + {{- .Release.Namespace -}} + {{- end -}} +{{- end -}} diff --git a/charts/kube-state-metrics/templates/clusterrolebinding.yaml b/charts/kube-state-metrics/templates/clusterrolebinding.yaml index b4586fb7..4635985a 100644 --- a/charts/kube-state-metrics/templates/clusterrolebinding.yaml +++ b/charts/kube-state-metrics/templates/clusterrolebinding.yaml @@ -15,5 +15,5 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "kube-state-metrics.fullname" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ template "kube-state-metrics.namespace" . }} {{- end -}} diff --git a/charts/kube-state-metrics/templates/deployment.yaml b/charts/kube-state-metrics/templates/deployment.yaml index db07f405..71dedce5 100644 --- a/charts/kube-state-metrics/templates/deployment.yaml +++ b/charts/kube-state-metrics/templates/deployment.yaml @@ -2,6 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: {{ template "kube-state-metrics.fullname" . }} + namespace: {{ template "kube-state-metrics.namespace" . }} labels: app.kubernetes.io/name: {{ template "kube-state-metrics.name" . }} helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" diff --git a/charts/kube-state-metrics/templates/psp-clusterrolebinding.yaml b/charts/kube-state-metrics/templates/psp-clusterrolebinding.yaml index 74186182..a206e640 100644 --- a/charts/kube-state-metrics/templates/psp-clusterrolebinding.yaml +++ b/charts/kube-state-metrics/templates/psp-clusterrolebinding.yaml @@ -15,5 +15,5 @@ roleRef: subjects: - kind: ServiceAccount name: {{ template "kube-state-metrics.fullname" . }} - namespace: {{ .Release.Namespace }} + namespace: {{ template "kube-state-metrics.namespace" . }} {{- end }} diff --git a/charts/kube-state-metrics/templates/service.yaml b/charts/kube-state-metrics/templates/service.yaml index a880bf91..5dacf521 100644 --- a/charts/kube-state-metrics/templates/service.yaml +++ b/charts/kube-state-metrics/templates/service.yaml @@ -2,6 +2,7 @@ apiVersion: v1 kind: Service metadata: name: {{ template "kube-state-metrics.fullname" . }} + namespace: {{ template "kube-state-metrics.namespace" . }} labels: app.kubernetes.io/name: {{ template "kube-state-metrics.name" . }} helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" diff --git a/charts/kube-state-metrics/templates/serviceaccount.yaml b/charts/kube-state-metrics/templates/serviceaccount.yaml index e2bf7c01..32bb1640 100644 --- a/charts/kube-state-metrics/templates/serviceaccount.yaml +++ b/charts/kube-state-metrics/templates/serviceaccount.yaml @@ -8,6 +8,7 @@ metadata: app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/instance: {{ .Release.Name }} name: {{ template "kube-state-metrics.fullname" . }} + namespace: {{ template "kube-state-metrics.namespace" . }} imagePullSecrets: {{ toYaml .Values.serviceAccount.imagePullSecrets | indent 2 }} {{- end -}} diff --git a/charts/kube-state-metrics/templates/servicemonitor.yaml b/charts/kube-state-metrics/templates/servicemonitor.yaml index 6405bd47..54cde362 100644 --- a/charts/kube-state-metrics/templates/servicemonitor.yaml +++ b/charts/kube-state-metrics/templates/servicemonitor.yaml @@ -3,6 +3,7 @@ apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ template "kube-state-metrics.fullname" . }} + namespace: {{ template "kube-state-metrics.namespace" . }} labels: app.kubernetes.io/name: {{ template "kube-state-metrics.name" . }} helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" diff --git a/charts/kube-state-metrics/values.yaml b/charts/kube-state-metrics/values.yaml index a57a86da..747e5d8b 100644 --- a/charts/kube-state-metrics/values.yaml +++ b/charts/kube-state-metrics/values.yaml @@ -113,3 +113,7 @@ collectors: # Namespace to be enabled for collecting resources. By default all namespaces are collected. # namespace: "" + +## Override the deployment namespace +## +namespaceOverride: ""