Release v0.27.0

Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
This commit is contained in:
Paulo Gomes 2022-11-21 10:49:42 +00:00
parent 7bd4886a79
commit 3e0c3e04bb
No known key found for this signature in database
GPG Key ID: 9995233870E99BEE
3 changed files with 59 additions and 2 deletions

View File

@ -1,5 +1,62 @@
# Changelog
## 0.27.0
**Release date:** 2022-11-21
This prerelease comes with a major refactoring of the controller's Git operations.
The controller can now observe the field `spec.gitImplementation` instead of always
ignoring it and using `libgit2`. The `go-git` implementation now supports all Git
servers, including Azure DevOps, which previously was only supported by `libgit2`.
By default, the field `spec.gitImplementation` is ignored and the reconciliations
will use `go-git`. To opt-out from this behaviour, and get the controller to
honour the field `spec.gitImplementation`, start the controller with:
`--feature-gates=ForceGoGitImplementation=false`.
This version initiates the soft deprecation of the `libgit2` implementation.
The motivation for removing support for `libgit2` being:
- Reliability: over the past months we managed to substantially reduce the
issues users experienced, but there are still crashes happening when the controller
runs over longer periods of time, or when under intense GC pressure.
- Performance: due to the inherit nature of `libgit2` implementation, which
is a C library called via CGO through `git2go`, it will never perform as well as
a pure Go implementations. At scale, memory pressure insues which then triggers
the reliability issues above.
- Lack of Shallow Clone Support.
- Maintainability: supporting two Git implementations is a big task, even more
so when one of them is in a complete different tech stack. Given its nature, to
support `libgit2`, we have to maintain an additional repository. Statically built
`libgit2` libraries need to be cross-compiled for all our supported platforms.
And a lot of "unnecessary" code has to be in place to make building, testing and
fuzzing work seamlessly.
Users having any issues with `go-git` should report it to the Flux team,
so any issues can be resolved before support for `libgit2` is completely
removed from the codebase.
Starting from this version `ImageUpdateAutomation` objects with a `spec.PushBranch`
specified will have the push branch refreshed automatically via force push.
To opt-out from this behaviour, start the controller with:
`--feature-gates=GitForcePushBranch=false`.
Improvements:
- Refactor Git operations and introduce go-git support for Azure DevOps and AWS CodeCommit
[#451](https://github.com/fluxcd/image-automation-controller/pull/451)
- Add new ForceGoGitImplementation FeatureGate
[#452](https://github.com/fluxcd/image-automation-controller/pull/452)
- Add support for force push
[#453](https://github.com/fluxcd/image-automation-controller/pull/453)
- Use Flux Event API v1beta1
[#455](https://github.com/fluxcd/image-automation-controller/pull/455)
- Remove deprecated alpha APIs
[#456](https://github.com/fluxcd/image-automation-controller/pull/456)
- Remove nsswitch.conf creation
[#458](https://github.com/fluxcd/image-automation-controller/pull/458)
- Update Dependencies
[#459](https://github.com/fluxcd/image-automation-controller/pull/459)
[#460](https://github.com/fluxcd/image-automation-controller/pull/460)
## 0.26.1
**Release date:** 2022-10-21

View File

@ -5,4 +5,4 @@ resources:
images:
- name: fluxcd/image-automation-controller
newName: fluxcd/image-automation-controller
newTag: v0.26.1
newTag: v0.27.0

2
go.mod
View File

@ -25,7 +25,7 @@ require (
github.com/Masterminds/sprig/v3 v3.2.2
github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4
github.com/cyphar/filepath-securejoin v0.2.3
github.com/fluxcd/image-automation-controller/api v0.26.1
github.com/fluxcd/image-automation-controller/api v0.27.0
github.com/fluxcd/image-reflector-controller/api v0.23.0
github.com/fluxcd/pkg/apis/acl v0.1.0
github.com/fluxcd/pkg/apis/event v0.2.0