diff --git a/CHANGELOG.md b/CHANGELOG.md index 1364ef85..90263f71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,99 @@ All notable changes to this project are documented in this file. +## 0.25.0 + +**Release date:** 2022-06-01 + +This prerelease adds support for Helm OCI. Users can specify `.spec.type` of +a `HelmRepository` to use an OCI repository instead of an HTTP/S Helm repository. + +Please note that this currently has a couple of limitations (which will be addressed in a future release): +* Chart dependencies from OCI repositories are not supported. [#722](https://github.com/fluxcd/source-controller/issues/722) +* Custom CA certificates are not supported. [#723](https://github.com/fluxcd/source-controller/issues/723) + +An example of OCI `HelmRepository` can be found [here](https://github.com/fluxcd/source-controller/blob/api/v0.25.0/docs/spec/v1beta2/helmrepositories.md#helm-oci-repository). + +A new flag `--feature-gate` has been added to disable/enable new experimental +features. It works in a similar manner to [Kubernetes feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/). + +The libgit2 managed transport feature has been enabled by default. Furthermore, +a few changes have been made to make the feature more stable and enable quicker +clones. Users that want to opt out and use the unmanaged transports may do so +by passing the flag `--feature-gate=GitManagedTransport=false`, but please note +that we encourage users not to do so. + +GitRepository reconciliation has been made more efficient by adding support for +no-op clones, when checking out repositories using branches or tags. +This feature is also enabled by default, and users can opt out +by passing the flag `--feature-gate=OptimizedGitClones=false`. +Please note that this feature is only active when the managed transport feature +is enabled. Disabling managed transports, quietly disables optimzed Git clones. + +Improvements: +- Optimise clone operations + [#665](https://github.com/fluxcd/source-controller/pull/665) +- [RFC 0002] Flux OCI support for Helm + [#690](https://github.com/fluxcd/source-controller/pull/690) +- Add Git test coverage for supported algorithms + [#708](https://github.com/fluxcd/source-controller/pull/708) +- Add new flag --ssh-hostkey-algos + [#711](https://github.com/fluxcd/source-controller/pull/711) +- libgit2: Disable connection caching + [#713](https://github.com/fluxcd/source-controller/pull/713) +- Update dependencies + [#717](https://github.com/fluxcd/source-controller/pull/717) +- libgit2: enable managed transport by default + [#718](https://github.com/fluxcd/source-controller/pull/718) +- libgit2: Add support for hashed known_hosts + [#720](https://github.com/fluxcd/source-controller/pull/720) +- Remove dependency on libgit2 credentials callback + [#727](https://github.com/fluxcd/source-controller/pull/727) +- Update Alpine to v3.16 + [#731](https://github.com/fluxcd/source-controller/pull/731) +- Update dependencies + [#739](https://github.com/fluxcd/source-controller/pull/739) +- libgit2: enforce context timeout + [#740](https://github.com/fluxcd/source-controller/pull/740) +- libgit2: Pass ctx to all the transport opts + [#743](https://github.com/fluxcd/source-controller/pull/743) + +Fixes: +- Ensure git status is checked at the correct time + [#575](https://github.com/fluxcd/source-controller/pull/575) +- libgit2: recover from git2go panic + [#707](https://github.com/fluxcd/source-controller/pull/707) +- Remove minio region + [#715](https://github.com/fluxcd/source-controller/pull/715) +- GitRepositoryReconciler no-op clone improvements + [#724](https://github.com/fluxcd/source-controller/pull/724) +- Support dockerconfigjson with OCI HelmRepositories + [#725](https://github.com/fluxcd/source-controller/pull/725) +- log when the OCI temp credentials file can't be deleted + [#726](https://github.com/fluxcd/source-controller/pull/726) +- Helm reconcilers conditions and test improvements + [#728](https://github.com/fluxcd/source-controller/pull/728) +- reconcile: Set observed gen only when conditions exist + [#729](https://github.com/fluxcd/source-controller/pull/729) +- helmrepo: Fix test flake in type update test + [#730](https://github.com/fluxcd/source-controller/pull/730) +- Fix tests failing in Ubuntu + [#732](https://github.com/fluxcd/source-controller/pull/732) +- tests: ignore proxy settings when running tests + [#734](https://github.com/fluxcd/source-controller/pull/734) +- gitrepo: gitCheckout() return typed errors only + [#736](https://github.com/fluxcd/source-controller/pull/736) +- gitrepo: set conditions in gitCheckout + [#741](https://github.com/fluxcd/source-controller/pull/741) +- libgit2: Enable tests + [#744](https://github.com/fluxcd/source-controller/pull/744) +- OCI HelmRepo: handle status conditions in-line + [#748](https://github.com/fluxcd/source-controller/pull/748) +- registry: repo URL and dockerconfig URL mismatch + [#749](https://github.com/fluxcd/source-controller/pull/749) +- libgit2: fix checkout logic for CheckoutBranch + [#750](https://github.com/fluxcd/source-controller/pull/750) + ## 0.24.4 **Release date:** 2022-05-03 diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml index b8285559..967ab4d2 100644 --- a/config/manager/kustomization.yaml +++ b/config/manager/kustomization.yaml @@ -6,4 +6,4 @@ resources: images: - name: fluxcd/source-controller newName: fluxcd/source-controller - newTag: v0.24.4 + newTag: v0.25.0 diff --git a/docs/spec/v1beta2/gitrepositories.md b/docs/spec/v1beta2/gitrepositories.md index 0397633d..e538ffba 100644 --- a/docs/spec/v1beta2/gitrepositories.md +++ b/docs/spec/v1beta2/gitrepositories.md @@ -415,6 +415,9 @@ usual. This feature is enabled by default. It can be disabled by starting the controller with the argument `--feature-gates=OptimizedGitClones=false`. +Please note that this feature is only active when managed transport for +`libgit2` is active. Disabling managed transport for `libgit2` automatically +disables this feature. NB: GitRepository objects configured for SemVer or Commit clones are not affected by this functionality. diff --git a/go.mod b/go.mod index 52dc835b..4875c3d3 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,7 @@ require ( github.com/fluxcd/pkg/testserver v0.2.0 github.com/fluxcd/pkg/untar v0.1.0 github.com/fluxcd/pkg/version v0.1.0 - github.com/fluxcd/source-controller/api v0.24.4 + github.com/fluxcd/source-controller/api v0.25.0 github.com/go-git/go-billy/v5 v5.3.1 github.com/go-git/go-git/v5 v5.4.2 github.com/go-logr/logr v1.2.3