From c5d8ec102bcbc5b5d65972c4215f9e123ef559fa Mon Sep 17 00:00:00 2001 From: Amir Alavi Date: Sat, 21 Feb 2026 00:03:18 -0500 Subject: [PATCH] chart: allow overriding ServiceMonitor apiVersion --- charts/descheduler/README.md | 1 + .../descheduler/templates/servicemonitor.yaml | 2 +- .../tests/servicemonitor_test.yaml | 31 +++++++++++++++++++ charts/descheduler/values.yaml | 1 + 4 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 charts/descheduler/tests/servicemonitor_test.yaml diff --git a/charts/descheduler/README.md b/charts/descheduler/README.md index 66b41b8eb..f9d6c5b20 100644 --- a/charts/descheduler/README.md +++ b/charts/descheduler/README.md @@ -79,6 +79,7 @@ The following table lists the configurable parameters of the _descheduler_ chart | `nodeSelector` | Node selectors to run the descheduler cronjob/deployment on specific nodes | `nil` | | `service.enabled` | If `true`, create a service for deployment | `false` | | `serviceMonitor.enabled` | If `true`, create a ServiceMonitor for deployment | `false` | +| `serviceMonitor.apiVersion` | API version used by the ServiceMonitor resource | `monitoring.coreos.com/v1` | | `serviceMonitor.namespace` | The namespace where Prometheus expects to find service monitors | `nil` | | `serviceMonitor.additionalLabels` | Add custom labels to the ServiceMonitor resource | `{}` | | `serviceMonitor.interval` | The scrape interval. If not set, the Prometheus default scrape interval is used | `nil` | diff --git a/charts/descheduler/templates/servicemonitor.yaml b/charts/descheduler/templates/servicemonitor.yaml index 4824069a8..8657c562a 100644 --- a/charts/descheduler/templates/servicemonitor.yaml +++ b/charts/descheduler/templates/servicemonitor.yaml @@ -1,6 +1,6 @@ {{- if eq .Values.kind "Deployment" }} {{- if eq .Values.serviceMonitor.enabled true }} -apiVersion: monitoring.coreos.com/v1 +apiVersion: {{ .Values.serviceMonitor.apiVersion | default "monitoring.coreos.com/v1" }} kind: ServiceMonitor metadata: name: {{ template "descheduler.fullname" . }}-servicemonitor diff --git a/charts/descheduler/tests/servicemonitor_test.yaml b/charts/descheduler/tests/servicemonitor_test.yaml new file mode 100644 index 000000000..e4051e73f --- /dev/null +++ b/charts/descheduler/tests/servicemonitor_test.yaml @@ -0,0 +1,31 @@ +suite: Test ServiceMonitor + +templates: + - "*.yaml" + +release: + name: descheduler + +set: + kind: Deployment + serviceMonitor: + enabled: true + +tests: + - it: uses default ServiceMonitor apiVersion + template: templates/servicemonitor.yaml + asserts: + - equal: + path: apiVersion + value: monitoring.coreos.com/v1 + + - it: supports overriding ServiceMonitor apiVersion + set: + serviceMonitor: + enabled: true + apiVersion: azmonitoring.coreos.com/v1 + template: templates/servicemonitor.yaml + asserts: + - equal: + path: apiVersion + value: azmonitoring.coreos.com/v1 diff --git a/charts/descheduler/values.yaml b/charts/descheduler/values.yaml index f98a8cf13..e53283181 100644 --- a/charts/descheduler/values.yaml +++ b/charts/descheduler/values.yaml @@ -255,6 +255,7 @@ service: serviceMonitor: enabled: false + apiVersion: "monitoring.coreos.com/v1" # The namespace where Prometheus expects to find service monitors. # namespace: "" # Add custom labels to the ServiceMonitor resource