Skip to content

chore(deps): update dependency fluxcd/flux2 to v2.10.0 - #1847

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/fluxcd-flux2-2.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/fluxcd-flux2-2.x

Conversation

@renovate

@renovate renovate Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Update Change
fluxcd/flux2 minor v2.9.5 → v2.10.0

Release Notes

fluxcd/flux2

v2.10.0

Compare Source

Highlights

Flux v2.10.0 is a feature release. Users are encouraged to upgrade for the best experience.

Overview of the new features:

  • Object identity is generally available; the ObjectLevelWorkloadIdentity feature gate is retired
  • SPIFFE mTLS for inter-controller communication
  • Notification Event, Alert and Provider APIs promoted to v1
  • OCIRepository as a chart source for HelmRelease
  • SOPS decryption for files encrypted with comment regexes, and --override-manager-before-dry-run (Kustomization)
  • Image update batching with .spec.policyChangeDelay, retry on rejected pushes, and .Changed.Summary (ImageUpdateAutomation)
  • Flux artifact storage backend enabled by default for ImageRepository tags
  • Cross-namespace artifacts, tenant namespace provisioning, and path-pattern discovery (ArtifactGenerator)
  • New Zoom, incident.io and Mastodon notification providers
  • Built with Kubernetes 1.37 and Go 1.27

❤️ Big thanks to all the Flux contributors that helped us with this release!

Kubernetes compatibility

This release is compatible with the following Kubernetes versions:

Kubernetes version Minimum required
v1.35 >= 1.35.2
v1.36 >= 1.36.1
v1.37 >= 1.37.0

[!NOTE]
Note that the Flux project offers support only for the latest three minor versions of Kubernetes.
Backwards compatibility with older versions of Kubernetes and OpenShift is offered by vendors such as
ControlPlane that provide enterprise support for Flux.

OpenShift compatibility

Flux can be installed on Red Hat OpenShift cluster directly from OperatorHub using Flux Operator. The operator allows the configuration of Flux multi-tenancy lockdown, network policies, persistent storage, sharding, vertical scaling and the synchronization of the cluster state from Git repositories, OCI artifacts, and S3-compatible storage.

Upgrade procedure

⚠️ Breaking changes in this release:

  • Object identity is always enabled and the default Flux RBAC no longer grants the create verb on the serviceaccounts/token resource. If your installation relies on the default RBAC, bind a ClusterRole with this permission to the controller ServiceAccount before upgrading. See fluxcd/flux2#6139 for the required ClusterRole and ClusterRoleBinding.
  • The notification Alert and Provider APIs are promoted to v1. Converting a v1beta3 Alert or Provider to v1 drops the deprecated Alert.spec.summary and Provider.spec.interval fields, the static JWT token for Azure Event Hub, and TLS or proxy configuration in Provider.spec.secretRef. Use eventMetadata.summary, proxySecretRef and certSecretRef instead.
  • The Flux artifact storage backend is now the default for the ImageRepository tag database. Switching the gate wipes the local tag database, so the first reconciliation after the upgrade rescans every ImageRepository. Set --feature-gates=FluxStorage=false to keep using BadgerDB.
  • Remote cluster authentication with .spec.kubeConfig.configMapRef uses object identity; replace the legacy audiences key with credential.auth.fluxcd.io/audiences.

Please follow the Upgrade Procedure for Flux v2.7+ for a smooth upgrade from older versions of Flux to v2.10.

Components changelog
CLI changelog
New Contributors

Full Changelog: fluxcd/flux2@v2.9.6...v2.10.0

v2.9.6

Compare Source

Highlights

Flux v2.9.6 is a patch release that stops helm-controller from reapplying chart CRDs on every upgrade when server-side apply is enabled, and recovers HelmReleases left with a drifted Ready=Unknown condition after a failed status patch. source-controller normalizes Azure Blob listing ETags so unchanged containers are no longer re-downloaded on every reconcile, and evicts stale Helm repository index entries from the cache so repositories with frequently changing indexes no longer fail with "Cache is full". kustomize-controller extends SOPS decryption error redaction to spec.postBuild.substituteFrom values, so substituted secrets echoed back in API validation errors are masked out of status conditions and events, and adds the opt-in DisableCommitStatusEvent feature gate. Users are encouraged to upgrade for the best experience.

ℹ️ Please follow the Upgrade Procedure for Flux v2.7+ for a smooth upgrade from Flux v2.6 to the latest version.

Fixes:

  • Stop reapplying chart CRDs on upgrades when using server-side apply with the default Create policy (helm-controller)
  • Recover HelmReleases stranded with a drifted Ready=Unknown condition after a failed status patch (helm-controller)
  • Ignore NotFound when deleting the HelmChart (helm-controller)
  • Normalize Azure Blob listing ETags so unchanged containers are not re-downloaded on every reconcile (source-controller)
  • Evict stale Helm repository index entries from the cache to avoid "Cache is full" errors (source-controller)
  • Extend SOPS decryption error redaction to spec.postBuild.substituteFrom values (kustomize-controller)

Improvements:

  • Add the opt-in DisableCommitStatusEvent feature gate (kustomize-controller)

Components changelog

CLI changelog

Full Changelog: fluxcd/flux2@v2.9.5...v2.9.6


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from a-mcf as a code owner October 1, 2026 18:04
@claude

claude Bot commented Oct 1, 2026

Copy link
Copy Markdown
  • Risk: LOW — patch bump (v2.9.5 → v2.9.6) of Flux itself. The blast radius is the whole cluster, since it updates the controllers, but the changes are bug fixes.
  • Breaking changes: none. The PR only changes cluster/base/flux-system/gotk-components.yaml (version labels and controller images). Release notes (taken from the PR body, not fetched separately) list only fixes:
    • helm-controller no longer reapplies chart CRDs on upgrade under server-side apply, and recovers HelmReleases stuck with Ready=Unknown.
    • source-controller normalizes Azure Blob ETags and evicts stale Helm index cache entries.
    • kustomize-controller extends SOPS error redaction to postBuild.substituteFrom values.
    • The new DisableCommitStatusEvent feature gate is opt-in. This repo doesn't set it.
  • Behavior to watch: the helm-controller CRD change affects HelmReleases that manage CRDs (e.g. kube-prometheus-stack, cloudnative-pg, metallb, traefik). It should only reduce needless CRD churn. After merge, check flux get hr -A for anything not Ready.
  • Action needed: none, safe to merge on green.

@renovate
renovate Bot force-pushed the renovate/fluxcd-flux2-2.x branch from 12fc48b to a4cea26 Compare October 20, 2026 13:46
@claude

claude Bot commented Oct 20, 2026

Copy link
Copy Markdown
  • Risk: LOW — patch bump (Flux v2.9.5 → v2.9.6), but it updates all Flux controllers (source v1.9.6, kustomize v1.9.6, helm v1.6.5), so blast radius is cluster-wide GitOps. Only gotk-components.yaml changes (version labels/images).
  • Breaking changes: none. Release notes (from the Renovate PR body, which quotes the upstream v2.9.6 release) list only fixes plus one opt-in feature gate (DisableCommitStatusEvent). I did not fetch the upstream page separately.
    • helm-controller no longer reapplies chart CRDs on upgrade with SSA and the default Create policy. This matches crds: Create in the traefik and traefik-internal HelmReleases and should reduce churn. It doesn't change behaviour for CreateReplace.
    • SOPS error redaction now also covers postBuild.substituteFrom. cluster/base/apps.yaml uses substituteFrom and SOPS, so this is a benefit and needs no config change.
    • Other fixes (Azure Blob ETags, Helm index cache eviction, HelmRelease Ready=Unknown recovery) need no config change.
  • Action needed: none, safe to merge on green. After merge, check that the flux-system Kustomization reconciles and the controllers roll out (flux check).

@renovate renovate Bot changed the title chore(deps): update dependency fluxcd/flux2 to v2.9.6 chore(deps): update dependency fluxcd/flux2 to v2.10.0 Oct 27, 2026
@renovate
renovate Bot force-pushed the renovate/fluxcd-flux2-2.x branch from a4cea26 to 4f6a220 Compare October 27, 2026 01:00
@claude

claude Bot commented Oct 27, 2026

Copy link
Copy Markdown
  • Risk: MEDIUM. It's a minor bump (v2.9.5 → v2.10.0), but it upgrades the Flux controllers and CRDs themselves, so a bad rollout affects every reconciliation in the cluster.
  • Breaking changes (checked against the release notes in the PR body, since I didn't WebFetch upstream, and against this repo's manifests):
    • Default RBAC: crd-controller-flux-system swaps serviceaccounts/token create for subjectaccessreviews create. This is the 'object identity GA' change. It only matters if something here relies on workload identity or impersonation. I found no kubeConfig, serviceAccountName or feature-gate patches in the repo, and kustomization.yaml has no patches on the controllers. Not affected.
    • Notification Alert and Provider v1: cluster/base/flux-system/notifications/notifications.yaml uses v1beta3, which is now deprecated but still served. It also uses none of the dropped fields (spec.summary, spec.interval, TLS or proxy settings in secretRef). That directory is commented out in flux-system/kustomization.yaml anyway, so nothing is applied.
    • ImageRepository storage default and kubeConfig.configMapRef audiences: no image-automation controllers are installed and there is no kubeConfig. Not affected.
    • Kubernetes must be at least 1.35.2 (or 1.36.1 / 1.37.0 for those minors). I couldn't check the k3s version from the repo, so confirm it.
  • Action needed: none, safe to merge on green once the cluster is on a supported k3s version. Optionally bump the notification manifests to v1 before re-enabling them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants