Skip to main content

Flux Version 2.2.0 Released

Flux CD has released version 2.2.0, a tool for keeping Kubernetes clusters in sync with sources of configuration and automating updates to configuration when there is new code to deploy. This feature release brings several updates and improvements to provide users with the best experience.

The Flux CLI and controllers have been updated to support Kustomize v5.3.0 and Kubernetes v1.28.4. This ensures compatibility with the latest versions and improves performance and stability.

One of the major updates in this release is the significant overhaul of the Flux helm-controller’s reconciliation model. This addresses persistent issues such as the automatic recovery of releases stuck in a pending state. It also improves the observability of the release status and introduces the ability to enable drift detection on a per-object basis. More details on the helm-controller improvements can be found in the Announcing Flux 2.2 GA blog post.

The Flux CLI now allows users to force or reset the reconciliation state of a HelmRelease v2beta2 object using the flux reconcile hr --force and flux reconcile hr --reset commands. This gives users more control over the deployment process.

The Flux CLI also comes with support for bootstrapping Gitea repositories, providing users with more options for managing their configuration sources. It also adds guardrails to flux install and flux bootstrap to protect users from destructive operations. Additionally, the flux version and flux check commands now print the Flux distribution version deployed on the cluster, making it easier for users to keep track of their Flux installation.

The alerting capabilities of Flux have been extended with support for NATS and Bitbucket Server & Data Center. This allows users to use these additional notification providers for alerting and monitoring purposes.

Starting with this release, Flux minor versions are benchmarked to measure the Mean Time To Production (MTTP), providing users with valuable insights into the performance of Flux.

The release is compatible with Kubernetes versions 1.26, 1.27, and 1.28.

The API changes in this release include the promotion of the HelmRelease kind from v2beta1 to v2beta2. The v2beta2 API is backwards compatible with v2beta1, and the v2beta1 API is deprecated and will be removed in a future release. Several new fields have been added, including drift detection and correction on a per-release basis, selective running of Helm tests, and a history of metadata from Helm releases. The Alert and Provider kinds have also been promoted from v1beta2 to v1beta3, with the removal of the .status field. The Bucket API now has a new field for server-side filtering of files, and the OCIRepository and HelmChart APIs have new fields for verifying OIDC identity. The HelmRepository and ImageRepository APIs have a new boolean field for connecting to non-TLS HTTP container registries.

To upgrade to Flux v2.2.0, users can either rerun the bootstrap process or use the Flux GitHub Action. The APIs can be upgraded by deploying the new CRDs and controllers and changing the manifests in Git. It is advised not to delay this procedure as the deprecated versions will be removed after 6 months.

The release also includes new documentation for the HelmRelease v2beta2 specification and a guide on enabling in-memory Kustomize builds.

Overall, Flux v2.2.0 brings several updates and improvements to provide users with a better experience in managing their Kubernetes clusters and configuration sources. Users are encouraged to upgrade to this version for the best experience.