Flux v2.9.4 Tightens Controller Input Boundaries


Flux v2.9.4, published August 7, 2026, is a patch release focused on tighter controller input boundaries. The main change confines tarball extraction and caps glob expansion in source-watcher, limiting how remote source content can expand into controller work.

The full release notes and downloads are on the GitHub release page.

source-watcher now confines tarball extraction and bounds glob expansion. Both operations turn compact source inputs into potentially much larger local workloads. An archive can contain paths that escape an expected extraction area, while a broad glob can match far more content than an operator intended. The patch puts boundaries around those operations before their output reaches later reconciliation steps.

The release notes do not publish numeric expansion limits. Operators should read this as a control on unsafe or unexpectedly large inputs, not as a performance improvement. Workloads built around unusually large archives or broad patterns deserve a reconciliation check after the upgrade.

ImageUpdateAutomation also rejects refspecs that request force updates or deletion. Image automation can still update accepted refs, but it can no longer use those refspec forms to rewrite or remove remote refs. That is a deliberate compatibility cost for pipelines that relied on force behavior. It also makes repository history less vulnerable to an overly broad automation rule.

The HTTP servers in notification-controller now use consistent request limits. Receivers are exposed to webhook traffic, so a shared limit removes variation between server paths and gives operators a more predictable ingress boundary. The notes do not specify new limit values, which means validation should focus on existing large webhook payloads rather than assumed defaults.

source-controller now pins OCI chart verification by digest. A digest identifies the exact chart content being reconciled, while a tag can later point somewhere else. Verification against the digest therefore keeps the checked artifact and the applied artifact tied to the same immutable identity.

This matters when Helm charts are promoted through GitOps environments. An audit record that names only a mutable tag can become ambiguous after the registry changes that tag. Digest pinning gives reconciliation a stable content reference without requiring pipeline authors to infer which chart bytes a tag represented at an earlier time.

This is a correctness change, not a promise that registry access or chart pulls become faster. The release also contains other source-controller fixes, but the digest behavior is the one with the clearest effect on repeatable artifact processing.

The CLI command flux migrate -f now supports repository migration to Flux 2.9. The change gives file based migration workflows a supported 2.9 target, which is useful when cluster state is managed from reviewed repository content. It is covered by pull request 6021.

Do not update only the controller images. Flux v2.9.4 includes CRD schema changes for ArtifactGenerator and ImageUpdateAutomation, and the release notes require both CRDs to be updated with the controllers. A partial rollout leaves the API schema and controller expectations out of step.

For an upgrade from Flux v2.6, follow the documented Flux v2.7 and later upgrade procedure. Validate the two CRDs, existing image automation refspecs, large webhook payloads, and source archives as part of the rollout. This release is not marked as a prerelease.