Releases: fluxcd/flux2
v2.0.0-rc.3
Highlights
This is the 3rd release candidate of Flux v2.0 GA. Users are advised to upgrade from v0.41
and older versions to v2.0.0-rc.3
as soon as possible.
Flux v2.0.0-rc.3 comes with security improvements, new features and fixes to issues reported for RC.2.
💡 For upgrading from v0.x, please see the procedure documented in RC.1.
Fixes and improvements
- Fix bootstrap on GKE (RC.2 regression due to insufficient quota for critical pods).
- All controller base images have been updated to Alpine 3.18.
- All components have been updated to patch CVE-2023-2253 and CVE-2023-1732 (note that Flux is not affected, these CVEs are for packages used in tests).
- Verify artifacts integrity, issue warning events and remove tempered artifacts from storage forcing a re-download (source-controller).
- Files with executable permissions are now archived with their mode set to
0o744
, allowing CI system to run them (source-controller). - The
Alert
v1beta2 API has a new optional field.spec.eventMetadata
that allows users to enrich the alerts with information about the cluster name, region, environment, etc. (notification-controller). - Improve the detection of values changes for HelmReleases by stable sorting them by key (helm-controller).
Components changelog
- source-controller v1.0.0-rc.3
- kustomize-controller v1.0.0-rc.3
- notification-controller v1.0.0-rc.3
- helm-controller v0.33.0
- image-reflector-controller v0.27.2
- image-automation-controller v0.33.1
CLI Changelog
- PR #3883 - @stefanprodan - e2e: Update dependencies
- PR #3882 - @fluxcdbot - Update toolkit components
- PR #3880 - @stefanprodan - Add OSSF Scorecard
- PR #3879 - @stefanprodan - Add ResourceQuota for critical pods
- PR #3877 - @dependabot[bot] - build(deps): bump github.com/docker/distribution from 2.8.1+incompatible to 2.8.2+incompatible
- PR #3876 - @dependabot[bot] - build(deps): bump github.com/cloudflare/circl from 1.3.2 to 1.3.3 in /tests/azure
- PR #3875 - @dependabot[bot] - build(deps): bump github.com/cloudflare/circl from 1.3.2 to 1.3.3
- PR #3866 - @onedr0p - Update Alpine to 3.18
v2.0.0-rc.2
Highlights
This is the 2nd release candidate of Flux v2.0 GA. Users are advised to upgrade from v0.41
to v2.0.0-rc.2
as soon as possible.
Flux v2.0.0-rc.2 comes with fixes to issues reported for RC.1 and performance improvements. Starting with this version, source-controller, kustomize-controller and helm-controller pods are marked as system-cluster-critical. This priority class will reduce the chances of Flux controllers being evicted before other non-critical workloads and prevents the pods from being permanently unavailable.
💡 For upgrading from v0.x, please see the procedure documented in RC.1.
Fixes and improvements
- Fix bootstrap for BitBucket Server (CLI).
- Fix secrets decryption when using Azure Key Vault (kustomize-controller).
- Fix drift detection for renamed HelmReleases (helm-controller).
- Improve performance when handling webhook receivers (notification-controller).
- The
Alert
v1beta2 API has a new optional field.spec.inclusionList
for fine-grained control over events filtering (notification-controller). - The deprecated field
.status.url
was removed from theReceiver
v1 API (notification-controller). - Add support for commit signing using OpenPGP keys with passphrases (image-automation-controller).
Components changelog
- source-controller v1.0.0-rc.2
- kustomize-controller v1.0.0-rc.2
- notification-controller v1.0.0-rc.2
- helm-controller v0.32.2
- image-reflector-controller v0.27.1
- image-automation-controller v0.33.0
CLI Changelog
- PR #3860 - @bigkevmcd - e2e: Add summary to Azure Alert
- PR #3858 - @fluxcdbot - Update toolkit components
- PR #3857 - @talife - Fix autocompletion for image repository reconcile
- PR #3855 - @dependabot[bot] - build(deps): bump peter-evans/create-pull-request from 5.0.0 to 5.0.1
- PR #3854 - @dependabot[bot] - build(deps): bump github/codeql-action from 2.3.2 to 2.3.3
- PR #3853 - @dependabot[bot] - build(deps): bump anchore/sbom-action from 0.14.1 to 0.14.2
- PR #3849 - @makkes - Update fluxcd/go-git-providers to v0.15.3
- PR #3838 - @dependabot[bot] - build(deps): bump github/codeql-action from 2.3.0 to 2.3.2
- PR #3837 - @dependabot[bot] - build(deps): bump sigstore/cosign-installer from 3.0.2 to 3.0.3
- PR #3833 - @matheuscscp - Add OCI provider option to create Helm source command
- PR #3830 - @cuishuang - misc: fix some comments
- PR #3827 - @dependabot[bot] - build(deps): bump github/codeql-action from 2.2.12 to 2.3.0
- PR #3822 - @Hey - Fix outdated Loki Helm values URL
- PR #3821 - @makkes - Fix bootstrap for Bitbucket Server
- PR #3805 - @dependabot[bot] - build(deps): bump github/codeql-action from 2.2.11 to 2.2.12
- PR #3804 - @dependabot[bot] - build(deps): bump actions/checkout from 3.5.0 to 3.5.2
- PR #3802 - @stefanprodan - Set priority class for the critical Flux components
- PR #3797 - @makkes - better messaging for
pull artifact
command - PR #3796 - @fluxcdbot - Update helm-controller to v0.32.2
- PR #3795 - @stefanprodan - Run conformance tests for Kubernetes 1.27
- PR #3783 - @aryan9600 - Clean directory before cloning git repo
- PR #3780 - @dependabot[bot] - build(deps): bump github/codeql-action from 2.2.9 to 2.2.11
- PR #3779 - @dependabot[bot] - build(deps): bump peter-evans/create-pull-request from 4.2.4 to 5.0.0
- PR #3778 - @dependabot[bot] - build(deps): bump sigstore/cosign-installer from 3.0.1 to 3.0.2
- PR #3768 - @relu - Fix publishing pre-release versions to AUR
- PR #3764 - @somtochiama - Add label selector flag to get cmd
v2.0.0-rc.1
Highlights
This is the first release candidate of Flux v2.0 GA 🎉. Users are encouraged to upgrade for the best experience.
Flux v2.0.0-rc.1 comes with the promotion of the GitOps related APIs to v1 and adds horizontal scaling & sharding capabilities to Flux controllers.
In addition, RC.1 comes with support for auth with Azure Workload Identity when pulling OCI artifacts from ACR and when decrypting secret with Azure Vault. Also, Bootstrap for GitLab was extended with support for generating GitLab Deploy Tokens.
❤️ Big thanks to all the Flux contributors that helped us with this release!
👏 And a special shoutout to the GitLab team for their first contribution to Flux!
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 in favor of the absolute.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).
The v1 API now supports triggering the reconciliation of multiple resources using .spec.resources.matchLabels
.
The v1 API is backwards compatible with v1beta2, no fields were removed.
Upgrade procedure
Upgrade Flux from v0.x
to v2.0.0-rc-1
either by rerunning flux bootstrap or by using the Flux GitHub Action.
To upgrade the APIs from v1beta2, after deploying the new CRDs and controllers, 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
. - Set
apiVersion: kustomize.toolkit.fluxcd.io/v1
in the YAML files that containKustomization
. - Set
apiVersion: notification.toolkit.fluxcd.io/v1
in the YAML files that containReceiver
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.
go.mod
to require github.com/fluxcd/flux2/v2
, see pkg.go.dev for the documentation of the module.
New Documentation
- API: GitRepository v1
- API: Kustomization v1
- API: Receiver v1
- Guide: Controller sharding and horizontal scaling
- Blog: How to use Weave GitOps as your Flux UI
Components changelog
- source-controller v1.0.0-rc.1
- kustomize-controller v1.0.0-rc.1
- notification-controller v1.0.0-rc.1
- helm-controller v0.32.0 v0.32.1
- image-reflector-controller v0.27.0
- image-automation-controller v0.32.0
CLI Changelog
- PR #3763 - @souleb - Add the possibility to ignore files with build and diff Kustomization
- PR #3758 - @stefanprodan - Release Flux v2.0.0-rc.1
- PR #3762 - @dependabot[bot] - build(deps): bump github.com/docker/docker from 23.0.1 to 23.0.3
- PR #3745 - @dependabot[bot] - build(deps): bump github/codeql-action from 2.2.8 to 2.2.9
- PR #3744 - @dependabot[bot] - build(deps): bump anchore/sbom-action from 0.13.4 to 0.14.1
- PR #3730 - @dependabot[bot] - build(deps): bump github/codeql-action from 2.2.7 to 2.2.8
- PR #3729 - @dependabot[bot] - build(deps): bump actions/checkout from 3.4.0 to 3.5.0
- PR #3728 - @dependabot[bot] - build(deps): bump anchore/sbom-action from 0.13.3 to 0.13.4
- PR #3721 - @yiannistri - fix: Avoid printing an extra newline when exporting resources
- PR #3717 - @dependabot[bot] - build(deps): bump google.golang.org/protobuf from 1.29.0 to 1.29.1
v0.41.2
Flux v0.41.2 is a patch release which fixes a range of bugs found in the controllers. Please refer to the individual component changelogs for more information.
💡 For more information about other features introduced in v0.41.0, please refer to the changelog for this version.
Components Changelog
- source-controller v0.36.1
- kustomize-controller v0.35.1
- helm-controller v0.31.2
- image-reflector-controller v0.26.1
CLI Changelog
- PR #3710 - @hiddeco - tests/azure: update toolkit components
- PR #3707 - @fluxcdbot - Update toolkit components
- PR #3706 - @hiddeco - build: update
actions/setup-go
in workflows - PR #3704 - @dependabot[bot] - build(deps): bump peter-evans/create-pull-request from 4.2.3 to 4.2.4
- PR #3703 - @dependabot[bot] - build(deps): bump github/codeql-action from 2.2.6 to 2.2.7
- PR #3701 - @dependabot[bot] - build(deps): bump actions/checkout from 3.3.0 to 3.4.0
- PR #3685 - @dependabot[bot] - build(deps): bump actions/cache from 3.2.6 to 3.3.0
- PR #3684 - @dependabot[bot] - build(deps): bump github/codeql-action from 2.2.5 to 2.2.6
- PR #3683 - @dependabot[bot] - build(deps): bump docker/setup-buildx-action from 2.4.1 to 2.5.0
v0.41.1
Flux v0.41.1 is a patch release which extends the helm-controller's OOM watch feature introduced in v0.41.0 with support for automatic detection of cgroup v1 paths, and flags to configure alternative paths using --oom-watch-max-memory-path
and --oom-watch-current-memory-path
.
💡 For more information about other features introduced in v0.41.0, please refer to the changelog for this version.
Components changelog
- helm-controller v0.31.1
CLI Changelog
- PR #3680 - @fluxcdbot - Update toolkit components
- PR #3676 - @stefanprodan - Disable drift detection for kube-prometheus-stack webhooks
v0.41.0
Flux v0.41.0 comes with new features and improvements. Users are encouraged to upgrade for the best experience.
Features and improvements
- Experimental support of drift detection of Helm releases compared to cluster-state.
- Improved handling of
SIGTERM
signals received by the helm-controller, which will now terminate running Helm install or upgrade actions, instead of potentially leaving them in a pending state. - Opt-in OOM watcher in helm-controller to handle graceful termination of the controller before it is forcefully killed by Kubernetes' OOM killer.
- Kubernetes client and Custom Resource Definition life-cycle improvements to reduce the memory consumption of the helm-controller, with observed reductions up to 50%.
- Opt-in allowance of DNS lookups during the rendering of Helm templates in the helm-controller via feature gate.
- Optional disabling of the cache of the status poller used to determine the health of the resources applied by the kustomize-controller. This may improve memory usage on large scale clusters at the cost of more direct API calls.
- Changes to the logging of all controllers to ensure Kubernetes components like the discovery client use the configured logging format.
- New
flux events
command to display Kubernetes events for Flux resources, including the events of a referenced resource. - Custom annotations can now be set with
flux push
using--annotations
.
New documentation
- Cheatsheet: Enable Helm drift detection
- Cheatsheet: Enable Helm near OOM detection
- Cheatsheet: Allow Helm DNS lookups
- Controller: New helm-controller feature gates and options
- Controller: New kustomize-controller feature gate
- Spec: HelmRelease drift detection
Components changelog
- source-controller v0.36.0
- kustomize-controller v0.35.0
- helm-controller v0.31.0
- notification-controller v0.33.0
- image-reflector-controller v0.26.0
- image-automation-controller v0.31.0
CLI Changelog
- PR #3628 - @somtochiama - Add
flux events
command - PR #3674 - @hiddeco - Update dependencies
- PR #3673 - @stefanprodan - ci: Use latest available images of kindest/node
- PR #3672 - @hiddeco - tests/azure: update dependencies
- PR #3670 - @hiddeco - Update Go to 1.20
- PR #3669 - @hiddeco - Update GitHub Action workflows
- PR #3667 - @hiddeco - Update helm-controller to v0.31.0
- PR #3666 - @fluxcdbot - Update toolkit components
- PR #3653 - @stefanprodan - Allow custom annotations to be set when pushing OCI artifacts
v0.40.2
Flux v0.40.2 is a patch release which includes an update of the notification-controller to prevent an issue with the default API version used for ImageRepositories when no specific version is configured on a Receiver. Users are encouraged to upgrade for the best experience.
Components changelog
- notification-controller v0.32.1
CLI Changelog
- PR #3645 - @hiddeco - Update dependencies
- PR #3644 - @fluxcdbot - Update toolkit components
- PR #3638 - @dependabot[bot] - build(deps): bump actions/cache from 3.2.5 to 3.2.6
- PR #3637 - @dependabot[bot] - build(deps): bump github/codeql-action from 2.2.4 to 2.2.5
v0.40.1
Flux v0.40.1 is a patch release which includes an update of the source-controller to prevent excessive memory usage while reconciling HelmRepository objects. Users are encouraged to upgrade for the best experience.
Components changelog
- source-controller v0.35.2
CLI Changelog
- PR #3626 - @hiddeco - Update dependencies
- PR #3624 - @fluxcdbot - Update toolkit components
- PR #3615 - @stefanprodan - Update implementation history of RFC-0003 and RFC-0005
v0.40.0
Highlights
Flux v0.40.0 comes with new features and improvements. Users are encouraged to upgrade for the best experience.
Breaking changes
Image Automation
The image-reflector-controller autologin flags have been deprecated and are no longer used.
Please see the new API specification and migration instructions in the controller changelog.
Notifications
The source revision format reported by the Flux controllers has changed according to RFC-0005.
The events referring to Git repositories, will report the revision in the format <branch|tag>@sha1:<commit>
instead of <branch|tag>/<commit>
.
For more details please see the source-controller changelog.
OCI artifacts
The OCI artifacts produced with flux push artifact
have now custom media types:
- artifact media type
application/vnd.oci.image.manifest.v1+json
- config media type
application/vnd.cncf.flux.config.v1+json
- content media type
application/vnd.cncf.flux.content.v1.tar+gzip
Features and improvements
- The
GitRepository
API has a new optional field.spec.ref.name
for specifying a Git Reference.
This allows Flux to reconcile resources from GitHub Pull Requests (refs/pull/<id>/head
) and GitLab Merge Requests (refs/merge-requests/<id>/head
). - The
ImageRepository
andImagePolicy
APIs have been promoted tov1beta2
. - Allow specifying the cloud provider contextual login for container registries with
ImageRepository.spec.provider
. - Improve observability of
ImageRepository
by showing the latest scanned tags under.status.lastScanResult.latestTags
. - Improve observability of
ImagePolicy
by reporting the current and previous image tag in status and events. - The Kubernetes builtin cluster roles:
view
,edit
andadmin
have been extended to allow access to Flux custom resources. - Print a report of Flux custom resources and the amount of cumulative storage used for each source type with
flux stats -A
.
New Documentation
- API: ImageRepository v1beta2
- API: ImagePolicy v1beta2
- Security: Aggregated cluster roles
- Bootstrap: Disable Kubernetes cluster role aggregations
- Blog: How Flux and Pulumi give each other superpowers
Components changelog
- source-controller v0.35.1 v0.35.0
- kustomize-controller v0.34.0
- helm-controller v0.30.0
- notification-controller v0.32.0
- image-reflector-controller v0.25.0
- image-automation-controller v0.30.0
CLI Changelog
- PR #3612 - @dependabot[bot] - build(deps): bump fossa-contrib/fossa-action from 1.2.0 to 2.0.0
- PR #3610 - @hiddeco - Update dependencies
- PR #3606 - @hiddeco - build: further solve issue release workflow
- PR #3605 - @hiddeco - build: ensure newlines work with $GITHUB_OUTPUT
- PR #3604 - @hiddeco - build: convert ::set-output to $GITHUB_OUTPUT
- PR #3603 - @stefanprodan - Remove deprecated flags
- PR #3602 - @hiddeco - Update source-controller to v0.35.1
- PR #3601 - @stefanprodan - ci: Fix Snyk Go build VCS stamping error
- PR #3598 - @fluxcdbot - Update toolkit components
- PR #3592 - @hiddeco - tests: only provide template values when used
- PR #3587 - @hiddeco - Support shortening of revision with digest
- PR #3585 - @darkowlzz - Update image-reflector API to v1beta2
- PR #3584 - @dependabot[bot] - build(deps): bump docker/setup-buildx-action from 2.4.0 to 2.4.1
- PR #3583 - @dependabot[bot] - build(deps): bump snyk/actions from e25b2e6f5658d1bb7a6671b113260f13134cc3af to 806182742461562b67788a64410098c9d9b96adb
- PR #3582 - @dependabot[bot] - build(deps): bump actions/cache from 3.2.4 to 3.2.5
- PR #3581 - @dependabot[bot] - build(deps): bump github/codeql-action from 2.2.1 to 2.2.4
- PR #3578 - @stefanprodan - Add
flux stats
command to print the reconcilers status - PR #3575 - @stefanprodan - RFC-0003: Introduce Flux OCI media type
- PR #3566 - @stefanprodan - rbac: Add view and edit aggregated cluster roles
- PR #3563 - @dependabot[bot] - build(deps): bump actions/cache from 3.2.3 to 3.2.4
- PR #3562 - @dependabot[bot] - build(deps): bump goreleaser/goreleaser-action from 4.1.1 to 4.2.0
- PR #3560 - @stefanprodan - docs: Add permissions to update workflow
v0.39.0
Highlights
Flux v0.39.0 comes with new features and improvements. Users are encouraged to upgrade for the best experience.
Starting with this version, the Flux controllers come with SBOMs and SLSA Provenance Attestations embedded in their container images.
The Flux Terraform Provider has a new resource for bootstrapping Flux, without depending on third-party Terraform providers, that allows customising the controllers at install time. Users are encouraged to migrate to this new resources and provide feedback.
The Flux CLI is now included in Wolfi OS, the Linux (Un)distro designed for securing the software supply chain. The Chainguard team and Wolfi maintainers are shipping updates for the Flux package on a regular basis.
Features and improvements
- Recreate immutable resources (e.g. Kubernetes Jobs) by annotating or labeling them with
kustomize.toolkit.fluxcd.io/force: enabled
. - Support for HTTPS bearer token authentication for Git repositories.
- Improve memory usage by disabling the caching of Secret and ConfigMap resources in all controllers.
- Better observability with progressive status updates for Sources (Git, OCI, Helm, S3 Buckets).
- Allow extracting the OCI artifact SHA256 digest for Cosign with
flux push artifact -o json
. - Track CRDs managed by Flux,
flux trace
andflux tree
will show which HelmRelease deployed which CRDs. - Allow the Flux GitHub Action to use a GitHub token when checking for updates to avoid rate limiting.
New documentation
- Security: Software Bill of Materials
- Security: SLSA Provenance Attestations
- Security: Scanning Flux images for CVEs
Components changelog
- source-controller v0.34.0
- kustomize-controller v0.33.0
- helm-controller v0.29.0
- notification-controller v0.31.0
- image-reflector-controller v0.24.0
- image-automation-controller v0.29.0
CLI Changelog
- PR #3550 - @stefanprodan - flux tree: Set CRDs GroupKind in output
- PR #3549 - @stefanprodan - flux tree: Track CRDs managed by HelmReleases
- PR #3545 - @fluxcdbot - Update toolkit components
- PR #3542 - @stefanprodan - flux tree: Add namespaces to objects reconciled from HRs
- PR #3540 - @stefanprodan - Add json/yaml output to flux push artifact
- PR #3537 - @stefanprodan - Update dependencies to Kubernetes v1.26.1
- PR #3532 - @stefanprodan - Update Alpine to v3.17 and kubectl to v1.26.1 in flux-cli image
- PR #3531 - @makkes - fix misleading messaging when using
-A
flag - PR #3529 - @dependabot[bot] - build(deps): bump docker/setup-buildx-action from 2.2.1 to 2.4.0
- PR #3526 - @dependabot[bot] - Bump anchore/sbom-action from 0.13.1 to 0.13.3
- PR #3525 - @dependabot[bot] - Bump github/codeql-action from 2.1.38 to 2.2.1
- PR #3524 - @dependabot[bot] - Bump goreleaser/goreleaser-action from 4.1.0 to 4.1.1
- PR #3517 - @jooooel - Fix broken GitHub Action and handle case where VERSION is provided as an input
- PR #3507 - @thezanke - Update prometheus-community helm repo due to the suspension of OCI builds
- PR #3501 - @kingdonb - Add GITHUB_TOKEN to Flux GitHub Action
- PR #3488 - @dependabot[bot] - Bump snyk/actions from 1cc9026f51d822442cb4b872d8d7ead8cc69a018 to e25b2e6f5658d1bb7a6671b113260f13134cc3af
- PR #3487 - @dependabot[bot] - Bump actions/cache from 3.2.2 to 3.2.3
- PR #3486 - @dependabot[bot] - Bump github/codeql-action from 2.1.37 to 2.1.38
- PR #3477 - @raffis - fix(install-script): support $GITHUB_TOKEN