v2.1.0
Highlights
Flux v2.1.0 is a feature release. Users are encouraged to upgrade for the best experience.
The Flux APIs were extended with new opt-in features in a backwards-compatible manner.
The Flux Git capabilities have been improved with support for Git push options, Git refspec, Gerrit, HTTP/S and SOCKS5 proxies.
The Flux alerting capabilities have been extended with Datadog support.
The Flux controllers come with performance improvements when reconciling Helm repositories with large indexes (80% memory reduction), and when reconciling Flux Kustomizations with thousands of resources (x4 faster server-side apply). The load distribution has been improved when reconciling Flux objects in parallel to reduce CPU and memory spikes.
❤️ Big thanks to all the Flux contributors that helped us with this release!
Deprecations
Flux v2.1.0 comes with support for Kubernetes TLS Secrets when referring to secrets containing TLS certs, and deprecates the usage of caFile, keyFile and certFile keys.
For more details about the TLS changes please see the Kubernetes TLS Secrets section.
Flux v2.1.0 comes with major improvements to the Prometheus monitoring stack. Starting with this version, Flux is leveraging the kube-state-metrics CRD exporter to report metrics containing rich information about Flux reconciliation status e.g. Git revision, Helm chart version, OCI artifacts digests, etc. The gotk_reconcile_condition metrics was deprecated in favor of the gotk_resource_info.
For more details about the new monitoring stack please see the Flux Prometheus metrics documentation and the flux2-monitoring-example repository.
API changes
GitRepository v1
The GitRepository API was extended with the following fields:
.spec.proxySecretRef.nameis an optional field used to specify the name of a Kubernetes Secret that contains the HTTP/S or SOCKS5 proxy settings..spec.verify.modenow support one of the following valuesHEAD,Tag,TagAndHEAD.
Kustomization v1
The Kustomization API was extended with two apply policies IfNotPresent and Ignore.
Changing the apply behaviour for specific Kubernetes resources, can be done using the following annotations:
| Annotation | Default | Values | Role |
|---|---|---|---|
kustomize.toolkit.fluxcd.io/ssa |
Override |
- Override- Merge- IfNotPresent- Ignore |
Apply policy |
kustomize.toolkit.fluxcd.io/force |
Disabled |
- Enabled- Disabled |
Recreate policy |
kustomize.toolkit.fluxcd.io/prune |
Enabled |
- Enabled- Disabled |
Delete policy |
The IfNotPresent policy instructs the controller to only apply the Kubernetes resources if they are not present on the cluster.
This policy can be used for Kubernetes Secrets and ValidatingWebhookConfigurations managed by cert-manager,
where Flux creates the resources with fields that are later on mutated by other controllers.
ImageUpdateAutomation v1beta1
The ImageUpdateAutomation was extended with the following fields:
.spec.git.push.refspecis an optional field used to specify a Git refspec used when pushing commits upstream..spec.git.push.optionsis an optional field used to specify the Git push options to be sent to the Git server when pushing commits upstream.
Kubernetes TLS Secrets
All the Flux APIs that accept TLS data have been modified to adopt Secrets of type
kubernetes.io/tls. This includes:
- HelmRepository: The field
.spec.secretRefhas been deprecated in favor of a new field.spec.certSecretRef. - OCIRepository: Support for the
caFile,keyFileandcertFilekeys in the Secret specified in.spec.certSecretRefhave been deprecated in favor ofca.crt,tls.keyandtls.crt. - ImageRepository: Support for the
caFile,keyFileandcertFilekeys in the Secret specified in.spec.certSecretRefhave been deprecated in favor ofca.crt,tls.keyandtls.crt. - GitRepository: CA certificate can now be provided in the Secret specified in
.spec.secretRefusing theca.crtkey, which takes precedence over thecaFilekey.
Upgrade procedure
Upgrade Flux from v2.0.x to v2.1.0 either by rerunning bootstrap or by using the Flux GitHub Action.
To upgrade Flux from v0.x to v2.1.0 please follow the Flux GA upgrade procedure.
Kubernetes compatibility
This release is compatible with the following Kubernetes versions:
| Kubernetes version | Minimum required |
|---|---|
v1.25 |
>= 1.25.0 |
v1.26 |
>= 1.26.0 |
v1.27 |
>= 1.27.1 |
v1.28 |
>= 1.28.0 |
Note that Flux may work on older versions of Kubernetes e.g. 1.21, but we don't recommend running end-of-life versions in production nor do we offer support for these versions.
New Documentation
- Flux installation
- Flux bootstrap
- Flux configuration
- Flux Prometheus metrics
- Flux custom Prometheus metrics
- Flux logs
- Flux events
Components changelog
- source-controller v1.1.0
- kustomize-controller v1.1.0
- notification-controller v1.1.0
- helm-controller v0.36.0
- image-reflector-controller v0.30.0
- image-automation-controller v0.36.0
CLI Changelog
- PR #4189 - @hiddeco - Update dependencies
- PR #4186 - @fluxcdbot - Update toolkit components
- PR #4183 - @somtochiama - Fix autocompletion for helm chart
- PR #4182 - @hiddeco - manifestgen/install: use clean default HTTP client
- PR #4181 - @hiddeco - cmd/events: handle error value
- PR #4180 - @stefanprodan - Fix controller version info
- PR #4177 - @stefanprodan - Set min value for the
--ssh-rsa-bitsflag - PR #4176 - @hiddeco - ci: disable fail-fast for ARM end-to-end
- PR #4175 - @hiddeco - build: update securejoin dependency
- PR #4169 - @darkowlzz - Add monitoring configuration deprecation notice
- PR #4167 - @dependabot[bot] - build(deps): bump the ci group with 2 updates
- PR #4166 - @stefanprodan - e2e: Add Kubernetes v1.28.0 to conformance tests
- PR #4151 - @hiddeco - ci: enable security-and-quality CodeQL query
- PR #4147 - @aryan9600 - Adopt Kubernetes style TLS Secrets and add relevant flags
- PR #4142 - @dependabot[bot] - build(deps): bump the ci group with 2 updates
- PR #4140 - @somtochiama - Disable azure e2e test
- PR #4134 - @sestegra - monitoring: add OCIRepository in cluster dashboard and new source panels in control-plane dashboard
- PR #4131 - @mraerino - Fix selection of kustomization resource from multi doc yaml
- PR #4126 - @stefanprodan - Set Kubernetes min version to 1.25
- PR #4077 - @dependabot[bot] - build(deps): bump the ci group with 2 updates
- PR #4068 - @stefanprodan - Update dependencies
- PR #4065 - @hiddeco - action: support
opensslandsha256sum - PR #4062 - @souleb - diff: Take into account the server-side inventory for local Flux Kustomizations
- PR #4061 - @hiddeco - action: re-allow configuration of non-default token
- PR #4057 - @fluxcdbot - Update toolkit components
- PR #4052 - @stefanprodan - docs: Link to the Flux GitHub Action documentation
- PR #4051 - @hiddeco - action: use
$RUNNER_TOOL_CACHE, support MacOS and Windows, validate checksum - PR #4046 - @stefanprodan - ci: backport: set write permissions
- PR #4043 - @stefanprodan - ci: release: extract the image tag from GITHUB_REF
- PR #4041 - @hiddeco - ci: release: disable interpretation backslash esc