v2.0.0
Highlights
This is the first General Availability (GA) release of Flux v2.
Flux v2.0.0 comes with the promotion of the GitOps related APIs to v1 and adds horizontal scaling & sharding capabilities to Flux controllers. The Git bootstrap capabilities provided by the Flux CLI and by Flux Terraform Provider are now considered stable and production ready.
Starting with this version, the build, release and provenance portions of the Flux project supply chain provisionally meet SLSA Build Level 3.
Flux GA is fully integrated with Kubernetes Workload Identity for AWS, Azure and Google Cloud to facilitate passwordless authentication to OCI sources (container images, OCI artifacts, Helm charts).
The Flux alerting capabilities have been extended with PagerDuty and Google Pub/Sub support. The improved Alert v1beta2 API provides better control over events filtering and allows users to enrich the alerts with custom metadata.
Supported versions
Starting with this version, the Flux CLI and the GA components (source-controller, kustomize-controller and notification-controller) follow the release cadence and support pledge documented in the Flux release specification.
Kubernetes compatibility
This release is compatible with the following Kubernetes versions:
Kubernetes version | Minimum required |
---|---|
v1.24 |
>= 1.24.0 |
v1.25 |
>= 1.25.0 |
v1.26 |
>= 1.26.0 |
v1.27 |
>= 1.27.1 |
Note that Flux may work on older versions of Kubernetes e.g. 1.19, but we don't recommend running end-of-life versions in production nor do we offer support for these versions.
Flux ecosystem support
The following (open-source) extensions & integrations are compatible with this Flux release, starting from the specified minimum version or higher.
Type | Project | Version |
---|---|---|
Flux Web UI | weave-gitops | 0.26.0 |
Terraform integration | tf-controller | 0.15.0 |
API changes
GitRepository v1
The GitRepository kind was promoted from v1beta2 to v1 (GA) and deprecated fields were removed.
The v1 API is backwards compatible with v1beta2, except for the following:
- the deprecated field
.spec.gitImplementation
was removed - the unused field
.spec.accessFrom
was removed - the deprecated field
.status.contentConfigChecksum
was removed - the deprecated field
.status.artifact.checksum
was removed - the
.status.url
was removed (replaced by.status.artifact.url
)
Kustomization v1
The Kustomization kind was promoted from v1beta2 to v1 (GA) and deprecated fields were removed.
A new optional field .spec.commonMetadata
was added to the API for setting labels and/or annotations to all resources part of a Kustomization.
The v1 API is backwards compatible with v1beta2, except for the following:
- the deprecated field
.spec.validation
was removed - the deprecated field
.spec.patchesStrategicMerge
was removed (replaced by.spec.patches
) - the deprecated field
.spec.patchesJson6902
was removed (replaced by.spec.patches
)
Receiver v1
The Receiver kind was promoted from v1beta2 to v1 (GA) and deprecated fields were removed.
The v1 API is backwards compatible with v1beta2, except for the following:
- the deprecated field
.status.url
was removed (replaced by.status.webhookPath
)
Upgrade procedure
Upgrade Flux from v0.x
to v2.0.0
either by rerunning bootstrap or by using the Flux GitHub Action.
To upgrade the APIs from v1beta2, make sure the new CRDs and controllers are deployed, and then change the manifests in Git:
- Remove the deprecated fields from the
GitRepository
andKustomization
definitions. - Commit, push and reconcile the fields removal changes.
- Set
apiVersion: source.toolkit.fluxcd.io/v1
in the YAML files that containGitRepository
definitions. - Set
apiVersion: kustomize.toolkit.fluxcd.io/v1
in the YAML files that contain FluxKustomization
definitions. - Set
apiVersion: notification.toolkit.fluxcd.io/v1
in the YAML files that containReceiver
definitions. - Update the API version of
GitRepository
andKustomization
objects present in the.spec.resources
list ofReceiver
definitions. - Commit, push and reconcile the API version changes.
Bumping the APIs version in manifests can be done gradually. It is advised to not delay this procedure as the beta versions will be removed after 6 months.
New Documentation
- Release cadence and support
- SLSA Assessment
- Controller sharding and horizontal scaling
- GitRepository v1 specification
- Kustomization v1 specification
- Receiver v1 specification
❤️ Big thanks to all the Flux contributors that helped us reach this milestone!
👏 And a special shoutout to the Flux community who supported us over the years!
Components changelog
- source-controller v1.0.0
- kustomize-controller v1.0.0
- notification-controller v1.0.0
- helm-controller v0.35.0
- image-reflector-controller v0.29.0
- image-automation-controller v0.35.0
CLI Changelog
- PR #4035 - @stefanprodan - Update dependencies
- PR #4033 - @stefanprodan - docs: link to releases spec from website
- PR #4031 - @stefanprodan - Run conformance tests for Kubernetes v1.27.3
- PR #4029 - @stefanprodan - Run e2e tests on release branches
- PR #4028 - @makkes - Annotate errors from go-git-providers
- PR #4027 - @hiddeco - Update go-git to unreleased v5.8.0
- PR #4023 - @stefanprodan - Add backport GitHub Action workflow
- PR #4020 - @stefanprodan - Set minimum supported version to Kubernetes 1.24.0
- PR #4018 - @stefanprodan - docs: Fix the
flux push
example for ECR - PR #4015 - @stefanprodan - Align
go.mod
version with Kubernetes (Go 1.20) - PR #4008 - @stefanprodan - Add SLSA3 generators to release workflow
- PR #4006 - @fluxcdbot - Update toolkit components
- PR #4002 - @makkes - Don't log errors with missing CRDs for "get * all" commands
- PR #3990 - @aryan9600 - RFC-0004: add section about proxy
- PR #3976 - @darklore - Use equivalent and shorter way to generate shell completions
- PR #3955 - @somtochiama - Fix 'patchesJson6902' is deprecated' warning
- PR #3945 - @makkes - Make
flux logs
more lenient