Skip to content

Commit 5c0d9bd

Browse files
author
Paulo Gomes
committed
Release v0.32.0
Signed-off-by: Paulo Gomes <[email protected]>
1 parent 06e88f0 commit 5c0d9bd

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

CHANGELOG.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,55 @@
22

33
All notable changes to this project are documented in this file.
44

5+
## 0.32.0
6+
7+
**Release date:** 2022-11-17
8+
9+
This prerelease comes with a major refactoring of the controller's Git operations.
10+
The `go-git` implementation now supports all Git servers, including
11+
Azure DevOps, which previously was only supported by `libgit2`.
12+
13+
This version initiates the soft deprecation of the `libgit2` implementation.
14+
The motivation for removing support for `libgit2` being:
15+
- Reliability: over the past months we managed to substantially reduce the
16+
issues users experienced, but there are still crashes happening when the controller
17+
runs over longer periods of time, or when under intense GC pressure.
18+
- Performance: due to the inherit nature of `libgit2` implementation, which
19+
is a C library called via CGO through `git2go`, it will never perform as well as
20+
a pure Go implementations. At scale, memory pressure insues which then triggers
21+
the reliability issues above.
22+
- Lack of Shallow Clone Support.
23+
- Maintainability: supporting two Git implementations is a big task, even more
24+
so when one of them is in a complete different tech stack. Given its nature, to
25+
support `libgit2`, we have to maintain an additional repository. Statically built
26+
`libgit2` libraries need to be cross-compiled for all our supported platforms.
27+
And a lot of "unnecessary" code has to be in place to make building, testing and
28+
fuzzing work seamlessly.
29+
30+
As a result the field `spec.gitImplementation` is ignored and the
31+
reconciliations will use `go-git`. To opt-out from this behaviour, start
32+
the controller with: `--feature-gates=ForceGoGitImplementation=false`.
33+
34+
Users having any issues with `go-git` should report it to the Flux team,
35+
so any issues can be resolved before support for `libgit2` is completely
36+
removed from the codebase.
37+
38+
Improvements:
39+
- Refactor Git operations and introduce go-git support for Azure DevOps and AWS CodeCommit
40+
[#944](https://github.com/fluxcd/source-controller/pull/944)
41+
- Use Flux Event API v1beta1
42+
[#952](https://github.com/fluxcd/source-controller/pull/952)
43+
- gogit: Add new ForceGoGitImplementation FeatureGate
44+
[#945](https://github.com/fluxcd/source-controller/pull/945)
45+
- Remove nsswitch.conf creation from Dockerfile
46+
[#958](https://github.com/fluxcd/source-controller/pull/958)
47+
- Update dependencies
48+
[#960](https://github.com/fluxcd/source-controller/pull/960)
49+
[#950](https://github.com/fluxcd/source-controller/pull/950)
50+
[#959](https://github.com/fluxcd/source-controller/pull/959)
51+
- Upgrade to azure-sdk-for-go/storage/azblob v0.5.1
52+
[#931](https://github.com/fluxcd/source-controller/pull/931)
53+
554
## 0.31.0
655

756
**Release date:** 2022-10-21

0 commit comments

Comments
 (0)