You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Flux v2.9.5 is a patch release that moves helm-controller and source-controller back to upstream Helm, now at v4.2.4, dropping the temporary Flux fork. It hardens the handling of kubeconfig Secrets in helm-controller and kustomize-controller, which now reject kubeconfigs referencing files on the local filesystem and require credentials and certificates to be embedded inline. It also stops kustomize-controller from leaving behind the temporary directories of a previous process that exited without running its cleanup, and fixes a crash in post-build substitution where a substring expression with a negative length, e.g. ${VAR:2:-1}, panicked instead of counting back from the end of the string like Bash does. Across all controllers and the CLI, the fluxcd/pkg dependencies have been updated, bringing Kubernetes to 1.36.4. Users are encouraged to upgrade for the best experience.
Validate kubeconfigs from .spec.kubeConfig Secrets, rejecting local file references in certificate-authority, tokenFile, client-certificate and client-key; credentials and certificates must be embedded inline (helm-controller, kustomize-controller)
Purge temporary directories at startup (kustomize-controller)
Fix panic on negative-length substring expressions in post-build substitution (kustomize-controller, flux CLI)
Improvements:
Move back to upstream Helm v4.2.4, dropping the Flux fork (helm-controller, source-controller)
Update fluxcd/pkg dependencies, which bring Kubernetes to 1.36.4 (all controllers, flux CLI)
Flux v2.9.4 is a patch release that ships various fixes to the Flux controllers, covering source-watcher tarball extraction and glob expansion limits, the refspecs accepted by ImageUpdateAutomation, the HTTP request limits of the notification-controller servers, and Helm repository index loading, OCI chart digest pinning, Bucket error handling and GCS static authentication in source-controller. On the CLI side, flux migrate -f now supports migrating repositories to Flux 2.9. Users are encouraged to upgrade for the best experience.
Note that this release contains CRD schema changes for ArtifactGenerator and ImageUpdateAutomation; both CRDs must be updated along with the controllers.
Flux v2.9.3 is a patch release. It fixes empty lines vanishing from rendered Helm chart manifests, HelmReleases being marked as tested when their Helm test hooks never ran, and spec.images entries that set only some image fields discarding the remaining fields already declared for the same image in the kustomization.yaml. The latter affects both kustomize-controller and the flux build|diff kustomization commands. Users are encouraged to upgrade for the best experience.
Fix empty lines vanishing from rendered chart manifests (helm-controller)
Fix HasBeenTested for all corner cases, where a release could be marked as tested although its Helm test hooks never ran (helm-controller)
Fix a spec.images entry setting only some of the image fields discarding the remaining fields already declared for the same image in the kustomization.yaml at spec.path, e.g. overriding only newName produced an untagged image reference (kustomize-controller, flux CLI)
Improvements:
Update fluxcd/pkg dependencies
Include source-watcher in the OCI flux-manifests artifact
Flux v2.9.2 is a patch release. The main fix addresses a regression introduced in
v2.9.1 where a Kustomization with openapi.path pointing to a URL failed to
reconcile with failed to read OpenAPI schema. This release also corrects several
CRD field descriptions that contained inaccurate or leaked content. Users are
encouraged to upgrade for the best experience.
Fix a regression where a Kustomization with openapi.path pointing to a URL failed to reconcile with failed to read OpenAPI schema (kustomize-controller)
Fix the HelmChart CRD description for .status.url, which pointed users at BucketStatus.Artifact instead of HelmChartStatus.Artifact (source-controller)
Fix the ImageRepository CRD description for .status.observedExclusionList, which referred to spec.lastScanResult instead of status.lastScanResult (image-reflector-controller)
Fix the ImageUpdateAutomation CRD description for .status.observedSourceRevision, which had a stray Go struct declaration leaking into it (image-automation-controller)
Flux v2.9.1 is a patch release. The main fix, applied across all controllers, disables Flux variable substitution on the Flux CRDs by annotating them with kustomize.toolkit.fluxcd.io/substitute: disabled, so that Kustomizations with post-build substitution enabled no longer corrupt the CRD schemas when they contain ${...} sequences. Users are encouraged to upgrade for the best experience.
Disable Flux variable substitution on all Flux CRDs, preventing post-build substitution from corrupting CRD schemas that contain ${...} sequences (all controllers)
Update SOPS dependency to fix .ini file decryption (kustomize-controller)
Fix a dry-run error where applying a resource with a strategic merge patch could fail with <resource> is invalid (kustomize-controller)
Fix a breaking change in the in-memory Kustomization build (Flux CLI)
Improvements:
Cache the registry authorization token during Notation verification, so it is fetched once per verification instead of once per request (source-controller)
❤️ 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.34
>= 1.34.1
v1.35
>= 1.35.0
v1.36
>= 1.36.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
⚠️ The Flux APIs image.toolkit.fluxcd.io/v1beta2 and notification.toolkit.fluxcd.io/v1beta2
have reached end-of-life and have been removed from the CRDs.
Flux v2.8.8 is a patch release that includes CVE fixes via go-git v5.19.1 (source-controller, image-automation-controller), reliability fixes in helm-controller and source-controller, the move of Helm back to upstream v4.2.0, support for GCP sovereign cloud artifact registries, and dependency updates. Users are encouraged to upgrade for the best experience.
Flux v2.8.7 is a patch release that includes a bug fix in kustomize-controller, a CVE fix in source-controller and image-automation-controller via go-git v5.19.0, and dependency updates. Users are encouraged to upgrade for the best experience.
Fix management of objects annotated with kustomize.toolkit.fluxcd.io/ssa: IfNotPresent where non-namespaced resources were being deleted and recreated on each reconciliation (kustomize-controller)
Improvements:
Update go-git to v5.19.0 which fixes CVE-2026-45022 (source-controller, image-automation-controller)
Flux v2.8.6 is a patch release that includes bug fixes and improvements across helm-controller, image-automation-controller, kustomize-controller, notification-controller, and source-controller. Users are encouraged to upgrade for the best experience.
MERGE PRIORITY: CRITICAL — The old version (v2.8.5) bundles go-git v5.16.5 which exposes 1 CRITICAL (CVE-2026-45570, CVSS 9.6) and 1 HIGH (CVE-2026-45022, CVSS 7.5) vulnerability affecting source-controller and image-automation-controller. v2.9.3 bundles go-git v5.19.1 which fixes all known go-git CVEs.
No new vulnerabilities introduced by v2.9.3.
Review breaking changes in v2.9.0 release notes before merging (API version migrations, feature gates).
Merge this PR promptly to remediate the exposed CRITICAL SSH injection vulnerability.
⚠️ This comment was posted by an automated security scanner (Ciel).
To re-scan, trigger the renovate-security-scanner skill.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v2.8.5→v2.9.6Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
fluxcd/flux2 (ghcr.io/fluxcd/flux-manifests)
v2.9.6Compare 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=Unknowncondition 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 tospec.postBuild.substituteFromvalues, so substituted secrets echoed back in API validation errors are masked out of status conditions and events, and adds the opt-inDisableCommitStatusEventfeature 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:
Createpolicy (helm-controller)Ready=Unknowncondition after a failed status patch (helm-controller)NotFoundwhen deleting the HelmChart (helm-controller)spec.postBuild.substituteFromvalues (kustomize-controller)Improvements:
DisableCommitStatusEventfeature gate (kustomize-controller)Components changelog
CLI changelog
Full Changelog: fluxcd/flux2@v2.9.5...v2.9.6
v2.9.5Compare Source
Highlights
Flux v2.9.5 is a patch release that moves helm-controller and source-controller back to upstream Helm, now at v4.2.4, dropping the temporary Flux fork. It hardens the handling of kubeconfig Secrets in helm-controller and kustomize-controller, which now reject kubeconfigs referencing files on the local filesystem and require credentials and certificates to be embedded inline. It also stops kustomize-controller from leaving behind the temporary directories of a previous process that exited without running its cleanup, and fixes a crash in post-build substitution where a substring expression with a negative length, e.g.
${VAR:2:-1}, panicked instead of counting back from the end of the string like Bash does. Across all controllers and the CLI, the fluxcd/pkg dependencies have been updated, bringing Kubernetes to 1.36.4. 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:
.spec.kubeConfigSecrets, rejecting local file references incertificate-authority,tokenFile,client-certificateandclient-key; credentials and certificates must be embedded inline (helm-controller, kustomize-controller)Improvements:
Components changelog
CLI changelog
Full Changelog: fluxcd/flux2@v2.9.4...v2.9.5
v2.9.4Compare Source
Highlights
Flux v2.9.4 is a patch release that ships various fixes to the Flux controllers, covering source-watcher tarball extraction and glob expansion limits, the refspecs accepted by
ImageUpdateAutomation, the HTTP request limits of the notification-controller servers, and Helm repository index loading, OCI chart digest pinning,Bucketerror handling and GCS static authentication in source-controller. On the CLI side,flux migrate -fnow supports migrating repositories to Flux 2.9. Users are encouraged to upgrade for the best experience.Note that this release contains CRD schema changes for
ArtifactGeneratorandImageUpdateAutomation; both CRDs must be updated along with the controllers.ℹ️ Please follow the Upgrade Procedure for Flux v2.7+ for a smooth upgrade from Flux v2.6 to the latest version.
Fixes:
Bucketreconciliation (source-controller)allow-webhooksnetwork policy to the receiver port (flux CLI)Improvements:
flux migrate -f(flux CLI)Components changelog
CLI changelog
migrate -fby @fluxcdbot in #6021allow-webhooksnetpol to receiver port by @fluxcdbot in #6029Full Changelog: fluxcd/flux2@v2.9.3...v2.9.4
v2.9.3Compare Source
Highlights
Flux v2.9.3 is a patch release. It fixes empty lines vanishing from rendered Helm chart manifests, HelmReleases being marked as tested when their Helm test hooks never ran, and
spec.imagesentries that set only some image fields discarding the remaining fields already declared for the same image in thekustomization.yaml. The latter affects both kustomize-controller and theflux build|diff kustomizationcommands. 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:
HasBeenTestedfor all corner cases, where a release could be marked as tested although its Helm test hooks never ran (helm-controller)spec.imagesentry setting only some of the image fields discarding the remaining fields already declared for the same image in thekustomization.yamlatspec.path, e.g. overriding onlynewNameproduced an untagged image reference (kustomize-controller, flux CLI)Improvements:
Components changelog
CLI changelog
Full Changelog: fluxcd/flux2@v2.9.2...v2.9.3
v2.9.2Compare Source
Highlights
Flux v2.9.2 is a patch release. The main fix addresses a regression introduced in
v2.9.1 where a Kustomization with
openapi.pathpointing to a URL failed toreconcile with
failed to read OpenAPI schema. This release also corrects severalCRD field descriptions that contained inaccurate or leaked content. 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:
openapi.pathpointing to a URL failed to reconcile withfailed to read OpenAPI schema(kustomize-controller)HelmChartCRD description for.status.url, which pointed users atBucketStatus.Artifactinstead ofHelmChartStatus.Artifact(source-controller)ImageRepositoryCRD description for.status.observedExclusionList, which referred tospec.lastScanResultinstead ofstatus.lastScanResult(image-reflector-controller)ImageUpdateAutomationCRD description for.status.observedSourceRevision, which had a stray Go struct declaration leaking into it (image-automation-controller)Improvements:
Components changelog
CLI changelog
Full Changelog: fluxcd/flux2@v2.9.1...v2.9.2
v2.9.1Compare Source
Highlights
Flux v2.9.1 is a patch release. The main fix, applied across all controllers, disables Flux variable substitution on the Flux CRDs by annotating them with
kustomize.toolkit.fluxcd.io/substitute: disabled, so that Kustomizations with post-build substitution enabled no longer corrupt the CRD schemas when they contain${...}sequences. 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:
${...}sequences (all controllers).inifile decryption (kustomize-controller)<resource> is invalid(kustomize-controller)Improvements:
Components changelog
CLI changelog
Full Changelog: fluxcd/flux2@v2.9.0...v2.9.1
v2.9.0Compare Source
Highlights
Flux v2.9.0 is a feature release. Users are encouraged to upgrade for the best experience.
For a compressive overview of new features and API changes included in this release, please refer to the Announcing Flux 2.9 GA blog post.
Overview of the new features:
flux plugin)Kustomization)Kustomization)Kustomization)HelmRelease)helm --set-literal(HelmRelease)Kustomization,HelmRelease)GitRepository,ImageUpdateAutomation)GitRepository)OCIRepository)ArtifactGenerator)Receiver)❤️ Big thanks to all the Flux contributors that helped us with this release!
Kubernetes compatibility
This release is compatible with the following Kubernetes versions:
v1.34>= 1.34.1v1.35>= 1.35.0v1.36>= 1.36.0OpenShift 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
image.toolkit.fluxcd.io/v1beta2andnotification.toolkit.fluxcd.io/v1beta2have reached end-of-life and have been removed from the CRDs.
Please follow the Upgrade Procedure for Flux v2.7+ for a smooth upgrade from older versions of Flux to v2.9.
Components changelog
CLI changelog
--show-sourcetoflux get ksandflux get hrby @rafaelperoco in #5828flux create secret receivercommand by @stefanprodan in #5835--in-memory-buildtoflux build ksandflux diff ksby @rycli in #5794--ignore-not-foundtoflux diff ksby @rycli in #5845flux plugin installby @Iam-Karan-Suresh in #5872--ns-follows-kube-contextglobal flag for using the kubeconfig context namespace by @jtyr in #5831flux trigger receiverby @matheuscscp in #5908flux bootstrap gitby @taraspos in #5868flux build ksby @raffis in #5906ks.spec.postBuild.substituteStrategyby @matheuscscp in #5945type!=statusin get --status-selector by @3uzbcqje in #5952flux get all --status-selectorfor empty results and notification resources by @matheuscscp in #5954New Contributors
Full Changelog: fluxcd/flux2@v2.8.0...v2.9.0
v2.8.8Compare Source
Highlights
Flux v2.8.8 is a patch release that includes CVE fixes via go-git v5.19.1 (source-controller, image-automation-controller), reliability fixes in helm-controller and source-controller, the move of Helm back to upstream v4.2.0, support for GCP sovereign cloud artifact registries, and dependency updates. 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:
crds/directory (helm-controller)Improvements:
Components changelog
CLI changelog
Full Changelog: fluxcd/flux2@v2.8.7...v2.8.8
v2.8.7Compare Source
Highlights
Flux v2.8.7 is a patch release that includes a bug fix in kustomize-controller, a CVE fix in source-controller and image-automation-controller via go-git v5.19.0, and dependency updates. 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:
kustomize.toolkit.fluxcd.io/ssa: IfNotPresentwhere non-namespaced resources were being deleted and recreated on each reconciliation (kustomize-controller)Improvements:
Components changelog
CLI changelog
Full Changelog: fluxcd/flux2@v2.8.6...v2.8.7
v2.8.6Compare Source
Highlights
Flux v2.8.6 is a patch release that includes bug fixes and improvements across helm-controller, image-automation-controller, kustomize-controller, notification-controller, and source-controller. 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:
audiencefield on the GCR Receiver secret for tighter verification — will become mandatory in Flux v2.9 (notification-controller)Improvements:
MigrateAPIVersionfeature gate for migrating the API version of resources in managed field entries (kustomize-controller)Components changelog
CLI changelog
Full Changelog: fluxcd/flux2@v2.8.5...v2.8.6
Configuration
📅 Schedule: (in timezone Asia/Singapore)
🚦 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.
This PR has been generated by Mend Renovate.