Skip to content
This repository has been archived by the owner on May 21, 2024. It is now read-only.

feat(github-release): update fluxcd/flux2 to v2.3.0 #419

Closed
wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jun 14, 2023

Mend Renovate

This PR contains the following updates:

Package Update Change
fluxcd/flux2 minor v2.0.0-rc.4 -> v2.3.0

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

fluxcd/flux2 (fluxcd/flux2)

v2.3.0

Compare Source

v2.2.3

Compare Source

Highlights

Flux v2.2.3 is a patch release which comes with various fixes and improvements. Users are encouraged to upgrade for the best experience.

💡 For upgrading to Flux v2.2, please see the procedure documented in 2.2.0.

This release updates the Kubernetes dependencies to v1.28.6 and various other dependencies to their latest version to patch upstream CVEs.

All controllers are built with Go 1.21.6 using Alpine Linux 3.19.1 base image.

[!NOTE]
Due to breaking changes in Helm v3.14.0, the helm-controller version included in this patch release comes with Helm SDK v3.13.3.
A preview build of the helm-controller with the latest Helm SDK is available at helm-controller#879.

Fixes:

  • Reconciling empty directories and directories without Kubernetes manifests no longer results in an error. This regressing bug was introduced with the kustomize-controller upgrade to Kustomize v5.3 and has been fixed in this patch release.
  • The regression due to which Roles and ClusterRoles with aggregated roles were continuous reconciled by kustomize-controller has been fixed.
  • Fix the Git revision displaying when notification-controller sends alerts to Grafana.
  • The HelmRelease status reporting has been improved by ensuring that the stale failure conditions get updated after failure recovery.

See the components changelog for a full list of bug fixes.

Components changelog

CLI Changelog

v2.2.2

Compare Source

Highlights

Flux v2.2.2 is a patch release that addresses an issue with the label selector sharding functionality in the helm-controller. Users are encouraged to upgrade for the best experience.

💡 For upgrading to Flux v2.2, please see the procedure documented in 2.2.0.

Components changelog

CLI Changelog

v2.2.1

Compare Source

Highlights

Flux v2.2.1 is a patch release that comes with fixes to API backwards compatibility.
Users are encouraged to upgrade for the best experience.

💡 For upgrading to Flux v2.2, please see the procedure documented in 2.2.0.

This version was tested with the latest Kubernetes release, and extends Flux support to Kubernetes v1.29.

The Helm SDK was updated to the latest version, v3.13.3.

Logging in kustomize-controller and helm-controller has been improved to provide faster feedback on any HTTP errors encountered while fetching artifacts from source-controller.

Components changelog

CLI Changelog

v2.2.0

Compare Source

Highlights

Flux v2.2.0 is a feature release. Users are encouraged to upgrade for the best experience.

The Flux CLI and controllers have been updated to Kustomize v5.3.0 and Kubernetes v1.28.4.

Flux helm-controller's reconciliation model underwent a significant overhaul, addressing persistent issues such as the automatic recovery of releases stuck in a pending state. In addition, it improves the observability of the release status, and it introduces the ability to enable drift detection on a per-object basis. For more details on the helm-controller improvements, please see the Announcing Flux 2.2 GA blog post.

The Flux CLI can now be used to force or reset the reconciliation state of a HelmRelease v2beta2 object using flux reconcile hr --force and flux reconcile hr --reset.

Flux CLI comes with support for bootstrapping Gitea repositories and adds guardrails to flux install and flux bootstrap to protect users from destructive operations. The flux version and flux check commands now print the Flux distribution version deployed on the cluster.

The Flux alerting capabilities have been extended with NATS and Bitbucket Server & Data Center support.

Starting with this release, Flux minor versions are benchmark to measure the Mean Time To Production (MTTP). The results for this version can be found at
github.com/fluxcd/flux-benchmark.

❤️ Big thanks to all the Flux contributors that helped us with this release!

Kubernetes compatibility

This release is compatible with the following Kubernetes versions:

Kubernetes version Minimum required
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.25, but we don't recommend running end-of-life versions in production nor do we offer support for these versions.

API changes

HelmRelease v2beta2

The HelmRelease kind was promoted from v2beta1 to v2beta2.

The v2beta2 API is backwards compatible with v2beta1, the v2beta1 API is deprecated and will be removed in a future release.

Deprecated fields:

  • The .patchesStrategicMerge and .patchesJson6902 Kustomize post-rendering fields have been deprecated in favor of .patches.
  • The .status.lastAppliedRevision and .status.lastReleaseRevision fields have been deprecated in favor of .status.history.
  • The .status.lastAttemptedValuesChecksum has been deprecated in favor of .status.lastAttemptedConfigDigest.

New fields:

  • Drift detection and correction is now enabled on a per-release basis using the .spec.driftDetection.mode field.
  • Ignoring specific fields during drift detection and correction is now supported using the .spec.driftDetection.ignore
  • Helm tests can now be selectively run using the .spec.test.filters field.
  • A history of metadata from Helm releases up to the previous successful release is now available in the .status.history field. This includes any Helm test results when enabled.
  • The .status.lastHandledForceAt and .status.lastHandledResetAt fields have been introduced to track the last time a force upgrade or reset was handled.
Alert and Provider v1beta3

The Alert and Provider kinds were promoted from v1beta2 to v1beta3.

The v1beta3 API is backwards compatible with v1beta2, the .status field was removed making the resources static objects. Any errors encountered while sending notifications are now recorded as Kubernetes Events associated with the Alert objects.

Bucket v1beta2

A new field, .spec.prefix, has been added to the Bucket API, which enables server-side filtering of files if the object's .spec.provider is set to generic, aws or gcp.

OCIRepository and HelmChart v1beta2

Two new fields, .spec.verify.matchOIDCIdentity.issuer and .spec.verify.matchOIDCIdentity.subject have been added to the HelmChart and OCIRepository APIs. If the image has been keylessly signed via Cosign, these fields can be used to verify the OIDC issuer of the Fulcio certificate and the
OIDC identity's subject respectively.

HelmRepository and ImageRepository v1beta2

A new boolean field, .spec.insecure, has been introduced to the
HelmRepository and ImageRepository APIs, which allows connecting to a non-TLS HTTP container registry. For HelmRepositories it is only considered if the object's .spec.type is set to oci.

From this release onwards, HelmRepository objects of type OCI are treated as static objects, i.e. they have an empty status.

Upgrade procedure

Upgrade Flux from v2.x to v2.2.0 either by rerunning bootstrap or by using the Flux GitHub Action.

To upgrade the APIs, make sure the new CRDs and controllers are deployed, and then change the manifests in Git:

  1. Set apiVersion: helm.toolkit.fluxcd.io/v2beta2 in the YAML files that contain HelmRelease definitions.
  2. Set apiVersion: notification.toolkit.fluxcd.io/v1beta3 in the YAML files that contain Alert and Provider definitions.
  3. 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 deprecated versions will be removed after 6 months.

New Documentation

Components changelog

CLI Changelog

v2.1.2

Compare Source

Highlights

Flux v2.1.2 is a patch release which comes with various fixes. Users are encouraged to upgrade for the best experience.

Fixes
  • Ensures faster recovery of Kustomization and HelmRelease resources when the source-controller has restarted and is working on restoring the storage.
  • Prevent source-controller from failing to reconcile OCIRepositories when artifacts contain symlinks.
  • Addresses issue with helm-controller miss-labeling Custom Resource Definitions.
  • Detect immutable field errors in Google Cloud resources managed by Flux Kustomizations.
  • Better error reporting for flux bootstrap when the owner doesn't match the identity associated with the given token.
  • Allow flux pull artifact to fetch OCI artifacts produced by other tools.
Components changelog
CLI Changelog

v2.1.1

Compare Source

Highlights

Flux v2.1.1 is a patch release which comes with various fixes. Users are encouraged to upgrade for the best experience.

Fixes
  • Use auto lookup strategy for Buckets to widen support for S3-compatible object storage services (source-controller).
  • Fix Secret type check for HelmRepositories TLS certs referred in .spec.secretRef (source-controller).
  • Fix the branch name reporting when the push branch is the same as the checkout branch (image-automation-controller).
  • Restore Helm logs inclusion in failure events (helm-controller).
  • Fix the impersonation of the default service account when diffing HelmReleases (helm-controller).
  • Check source for nil artifact before loading Helm charts (helm-controller).
  • Update the description of Kubernetes specific flag to distinguish them from Flux bootstrap flags (flux CLI).

Components changelog

CLI Changelog

v2.1.0

Compare Source

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.name is an optional field used to specify the name of a Kubernetes Secret that contains the HTTP/S or SOCKS5 proxy settings.
  • .spec.verify.mode now support one of the following values HEAD, 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.refspec is an optional field used to specify a Git refspec used when pushing commits upstream.
  • .spec.git.push.options is 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.secretRef has been deprecated in favor of a new field .spec.certSecretRef.
  • OCIRepository: Support for the caFile, keyFile and certFile keys in the Secret specified in .spec.certSecretRef have been deprecated in favor of ca.crt, tls.key and tls.crt.
  • ImageRepository: Support for thecaFile, keyFile and certFile keys in the Secret specified in .spec.certSecretRef have been deprecated in favor of ca.crt, tls.key and tls.crt.
  • GitRepository: CA certificate can now be provided in the Secret specified in .spec.secretRef using the ca.crt key, which takes precedence over the caFile key.

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

Components changelog

CLI Changelog

v2.0.1

Compare Source

Highlights

Flux v2.0.1 is a patch release which comes with various fixes. Users are encouraged to upgrade for the best experience.

💡 For upgrading from Flux v0.x, please see the procedure documented in 2.0.0.

Fixes
  • Fix AWS auth for cross-region ECR repositories (source-controller, image-reflector-controller).
  • Prevent spurious alerts for skipped resources (kustomize-controller).
  • List removed resources for flux diff ks --kustomization-file (flux CLI).
  • Fix SLSA provenance generation for the Flux CLI binaries.
Components changelog
CLI Changelog
New Documentation

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@github-advanced-security
Copy link

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

@renovate renovate bot changed the title fix(github-release): update fluxcd/flux2 to v2.0.0-rc.5 fix(github-release): update fluxcd/flux2 to v2.0.0 Jul 5, 2023
@renovate renovate bot force-pushed the renovate/fluxcd-flux2-2.x branch from c5b3bea to 08ffe9b Compare July 5, 2023 15:34
@renovate renovate bot changed the title fix(github-release): update fluxcd/flux2 to v2.0.0 fix(github-release): update fluxcd/flux2 to v2.0.0 - autoclosed Jul 9, 2023
@renovate renovate bot closed this Jul 9, 2023
@renovate renovate bot deleted the renovate/fluxcd-flux2-2.x branch July 9, 2023 11:38
@renovate renovate bot changed the title fix(github-release): update fluxcd/flux2 to v2.0.0 - autoclosed fix(github-release): update fluxcd/flux2 to v2.0.0 Jul 11, 2023
@renovate renovate bot reopened this Jul 11, 2023
@renovate renovate bot restored the renovate/fluxcd-flux2-2.x branch July 11, 2023 14:20
@renovate renovate bot changed the title fix(github-release): update fluxcd/flux2 to v2.0.0 fix(github-release): update fluxcd/flux2 to v2.0.1 Jul 11, 2023
@renovate renovate bot force-pushed the renovate/fluxcd-flux2-2.x branch from 08ffe9b to 7785138 Compare July 11, 2023 14:20
@renovate renovate bot changed the title fix(github-release): update fluxcd/flux2 to v2.0.1 feat(github-release): update fluxcd/flux2 to v2.1.0 Aug 24, 2023
@renovate renovate bot force-pushed the renovate/fluxcd-flux2-2.x branch from 7785138 to 2bc57e7 Compare August 24, 2023 13:18
@renovate renovate bot changed the title feat(github-release): update fluxcd/flux2 to v2.1.0 feat(github-release): update fluxcd/flux2 to v2.1.1 Sep 19, 2023
@renovate renovate bot changed the title feat(github-release): update fluxcd/flux2 to v2.1.1 feat(github-release): update fluxcd/flux2 to v2.1.2 Oct 12, 2023
@renovate renovate bot force-pushed the renovate/fluxcd-flux2-2.x branch from 4c85133 to 2a7391a Compare October 12, 2023 14:09
@renovate renovate bot force-pushed the renovate/fluxcd-flux2-2.x branch from 2a7391a to d3e546f Compare December 12, 2023 16:14
@renovate renovate bot changed the title feat(github-release): update fluxcd/flux2 to v2.1.2 feat(github-release): update fluxcd/flux2 to v2.2.0 Dec 12, 2023
@renovate renovate bot force-pushed the renovate/fluxcd-flux2-2.x branch from d3e546f to 6d01a65 Compare December 15, 2023 12:06
@renovate renovate bot changed the title feat(github-release): update fluxcd/flux2 to v2.2.0 feat(github-release): update fluxcd/flux2 to v2.2.1 Dec 15, 2023
@renovate renovate bot force-pushed the renovate/fluxcd-flux2-2.x branch from 6d01a65 to 6dabde8 Compare December 19, 2023 18:59
@renovate renovate bot changed the title feat(github-release): update fluxcd/flux2 to v2.2.1 feat(github-release): update fluxcd/flux2 to v2.2.2 Dec 19, 2023
@renovate renovate bot force-pushed the renovate/fluxcd-flux2-2.x branch from 6dabde8 to 70814c3 Compare February 5, 2024 16:53
@renovate renovate bot changed the title feat(github-release): update fluxcd/flux2 to v2.2.2 feat(github-release): update fluxcd/flux2 to v2.2.3 Feb 5, 2024
| datasource      | package      | from        | to     |
| --------------- | ------------ | ----------- | ------ |
| github-releases | fluxcd/flux2 | v2.0.0-rc.4 | v2.3.0 |
@renovate renovate bot force-pushed the renovate/fluxcd-flux2-2.x branch from 70814c3 to f954057 Compare May 13, 2024 16:08
@renovate renovate bot changed the title feat(github-release): update fluxcd/flux2 to v2.2.3 feat(github-release): update fluxcd/flux2 to v2.3.0 May 13, 2024
@renovate renovate bot deleted the renovate/fluxcd-flux2-2.x branch May 21, 2024 22:15
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant