Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ spec:
spec:
chart: prometheus-operator-crds
# renovate: datasource=helm registryUrl=https://prometheus-community.github.io/helm-charts
version: 25.0.1
version: 26.0.1
sourceRef:
kind: HelmRepository
name: prometheus-community
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ spec:
spec:
chart: kube-prometheus-stack
# renovate: datasource=helm registryUrl=https://prometheus-community.github.io/helm-charts
version: 80.4.2
version: 81.5.0
Comment on lines 11 to +12
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# First, find and read the helmrelease file
find . -name helmrelease.yaml | grep "kube-prometheus-stack"

Repository: jlengelbrecht/prox-ops

Length of output: 140


🏁 Script executed:

#!/bin/bash
# Read the full helmrelease.yaml file to understand the values configuration
cat -n kubernetes/apps/observability/kube-prometheus-stack/app/helmrelease.yaml | head -200

Repository: jlengelbrecht/prox-ops

Length of output: 6918


🏁 Script executed:

#!/bin/bash
# Check if the HelmRepository exists
rg -n "prometheus-community" kubernetes/apps/observability/ -A 2 -B 2 | head -50

Repository: jlengelbrecht/prox-ops

Length of output: 1756


🏁 Script executed:

#!/bin/bash
# Search for any deprecated values mentioned in the review (forceDeployDatasources, defaultDashboardsEnabled, serviceMonitorSelectorNilUsesHelmValues)
rg -n "forceDeployDatasources|defaultDashboardsEnabled|serviceMonitorSelectorNilUsesHelmValues" kubernetes/apps/observability/kube-prometheus-stack/

Repository: jlengelbrecht/prox-ops

Length of output: 422


🌐 Web query:

kube-prometheus-stack 81.0.0 breaking changes release notes

💡 Result:

kube-prometheus-stack 81.0.0 — breaking / upgrade-impacting changes

  • Major chart bump is driven by Prometheus Operator upgrade to v0.88.0. (newreleases.io)
    Practical implication: expect CRD/schema and admission-webhook validation changes consistent with Prometheus Operator v0.88.0.

  • Prometheus Operator v0.88.0 notable “CHANGE” items (most likely to bite during upgrades):

    • Uses narrower selectors for StatefulSet informers in the Alertmanager and ThanosRuler controllers; upstream recommends upgrading from at least v0.85.0. (github.com)
    • Rejects EC2/Lightsail service discovery in ScrapeConfig when Prometheus is >= 3.8.0. (github.com)
  • CRD upgrade warning (operational breaking change): Helm upgrades commonly don’t upgrade CRDs automatically, which can cause failed upgrades / validation errors unless you update CRDs separately. (github.com)

Citations:


🌐 Web query:

kube-prometheus-stack v81 failurePolicy Prometheus Operator v0.88.0

💡 Result:

In kube-prometheus-stack v81.0.0 (which bumps Prometheus Operator to v0.88.0) the admission webhook behavior is controlled by:

prometheusOperator:
  admissionWebhooks:
    failurePolicy: Fail | Ignore | IgnoreOnInstallOnly
  • v81.0.0 includes the operator bump to 0.88.0. [1]
  • The chart supports Fail / Ignore / IgnoreOnInstallOnly for failurePolicy (with IgnoreOnInstallOnly meaning “Ignore on install, Fail afterwards”). [2]
  • If you’re hitting install/upgrade errors like failed calling webhook ... x509: certificate signed by unknown authority / webhook not reachable, the common mitigation is setting failurePolicy: Ignore (or IgnoreOnInstallOnly) so the API server won’t block CR updates when the webhook is temporarily broken/unreachable. [3]

Also note: in this chart, if you explicitly set prometheusOperator.admissionWebhooks.failurePolicy, that value is used (even when the webhook patch job is enabled). [4]

Sources: [1] [2] [3] [4]


🌐 Web query:

forceDeployDatasources deprecated kube-prometheus-stack 81

💡 Result:

In the upstream prometheus-community/kube-prometheus-stack v81.x releases (e.g. 81.0.0 on Jan 16, 2026) there isn’t an announced removal of grafana.forceDeployDatasources; it’s still a supported value in the chart and is meant to “create datasource configmap even if grafana deployment has been disabled.” [1][2]

So if you’re seeing “deprecated” warnings, they’re most likely coming from a wrapper/consumer chart (or a values-schema/linter in your platform), not from kube-prometheus-stack itself.

What to do:

  • If you disable Grafana in kube-prometheus-stack but still want the chart to render the Grafana datasource ConfigMap(s) for an external Grafana, keep using:
    • grafana.enabled: false
    • grafana.forceDeployDatasources: true (and similarly forceDeployDashboards if needed) [2]
  • If you run Grafana via the subchart (grafana.enabled: true), you typically don’t need forceDeployDatasources (leave it false). [2]

Sources
[1] Release list showing kube-prometheus-stack 81.0.0/81.x (dates/versions) — releasealert.dev
[2] kube-prometheus-stack values.yaml changelog snippet documenting forceDeployDatasources purpose — baptiste.is-a.dev


🌐 Web query:

serviceMonitorSelectorNilUsesHelmValues deprecated removed v81

💡 Result:

In the prometheus-community/kube-prometheus-stack Helm chart, prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues (and the other *SelectorNilUsesHelmValues flags) were deprecated in the 62.x → 63.x upgrade, with a documented migration path. The chart maintainers recommend replacing them by explicitly setting the selector, and using matchLabels: null to force an “empty selector” behavior. [1]

What to do (migration)

If you previously had:

prometheus:
  prometheusSpec:
    serviceMonitorSelectorNilUsesHelmValues: false

Change to:

prometheus:
  prometheusSpec:
    serviceMonitorSelector:
      matchLabels: null

This same pattern applies to the related flags (podMonitorSelectorNilUsesHelmValues, probeSelectorNilUsesHelmValues, ruleSelectorNilUsesHelmValues, scrapeConfigSelectorNilUsesHelmValues, etc.). [1]

If you’re seeing failures on chart v81.x, it’s consistent with these deprecated flags no longer being accepted by the chart/templates you’re upgrading to—so removing them and switching to explicit selectors as above is the intended fix. [1]

Source
[1] kube-prometheus-stack upgrade notes (62.x → 63.x), deprecating *SelectorNilUsesHelmValues and the matchLabels: null replacement. (gist.github.com)

Citations:


Migrate deprecated *SelectorNilUsesHelmValues patterns before upgrading to 81.x.

The config uses deprecated selector flags introduced in v62→63 that are no longer accepted in v81:

  • serviceMonitorSelectorNilUsesHelmValues: false (line 64)
  • podMonitorSelectorNilUsesHelmValues: false (line 65)
  • ruleSelectorNilUsesHelmValues: false (line 66)

Replace with explicit selectors:

prometheus:
  prometheusSpec:
    serviceMonitorSelector:
      matchLabels: null
    podMonitorSelector:
      matchLabels: null
    ruleSelector:
      matchLabels: null

Also verify CRD updates: v81.0.0 bundles Prometheus Operator v0.88.0 with narrower StatefulSet informer selectors. Ensure crds: CreateReplace in the upgrade strategy (already configured) triggers a CRD refresh, since Helm doesn't auto-upgrade CRDs by default.

🤖 Prompt for AI Agents
In `@kubernetes/apps/observability/kube-prometheus-stack/app/helmrelease.yaml`
around lines 11 - 12, The helmrelease currently uses deprecated flags
serviceMonitorSelectorNilUsesHelmValues, podMonitorSelectorNilUsesHelmValues,
and ruleSelectorNilUsesHelmValues (set to false); replace those three keys by
adding explicit selectors under prometheus.prometheusSpec: set
serviceMonitorSelector.matchLabels: null, podMonitorSelector.matchLabels: null,
and ruleSelector.matchLabels: null so the operator sees empty selectors instead
of the deprecated flags, and confirm the existing crds: CreateReplace
upgradeStrategy remains in place to force CRD refresh for Prometheus Operator
v0.88.0 compatibility.

sourceRef:
kind: HelmRepository
name: prometheus-community
Expand Down
Loading