|
1 | 1 | # Changelog
|
2 | 2 |
|
| 3 | +## 0.27.0 |
| 4 | + |
| 5 | +**Release date:** 2022-11-21 |
| 6 | + |
| 7 | +This prerelease comes with a major refactoring of the controller's Git operations. |
| 8 | +The controller can now observe the field `spec.gitImplementation` instead of always |
| 9 | +ignoring it and using `libgit2`. The `go-git` implementation now supports all Git |
| 10 | +servers, including Azure DevOps, which previously was only supported by `libgit2`. |
| 11 | + |
| 12 | +By default, the field `spec.gitImplementation` is ignored and the reconciliations |
| 13 | +will use `go-git`. To opt-out from this behaviour, and get the controller to |
| 14 | +honour the field `spec.gitImplementation`, start the controller with: |
| 15 | +`--feature-gates=ForceGoGitImplementation=false`. |
| 16 | + |
| 17 | +This version initiates the soft deprecation of the `libgit2` implementation. |
| 18 | +The motivation for removing support for `libgit2` being: |
| 19 | +- Reliability: over the past months we managed to substantially reduce the |
| 20 | +issues users experienced, but there are still crashes happening when the controller |
| 21 | +runs over longer periods of time, or when under intense GC pressure. |
| 22 | +- Performance: due to the inherit nature of `libgit2` implementation, which |
| 23 | +is a C library called via CGO through `git2go`, it will never perform as well as |
| 24 | +a pure Go implementations. At scale, memory pressure insues which then triggers |
| 25 | +the reliability issues above. |
| 26 | +- Lack of Shallow Clone Support. |
| 27 | +- Maintainability: supporting two Git implementations is a big task, even more |
| 28 | +so when one of them is in a complete different tech stack. Given its nature, to |
| 29 | +support `libgit2`, we have to maintain an additional repository. Statically built |
| 30 | +`libgit2` libraries need to be cross-compiled for all our supported platforms. |
| 31 | +And a lot of "unnecessary" code has to be in place to make building, testing and |
| 32 | +fuzzing work seamlessly. |
| 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 | +Starting from this version `ImageUpdateAutomation` objects with a `spec.PushBranch` |
| 39 | +specified will have the push branch refreshed automatically via force push. |
| 40 | +To opt-out from this behaviour, start the controller with: |
| 41 | +`--feature-gates=GitForcePushBranch=false`. |
| 42 | + |
| 43 | +Improvements: |
| 44 | +- Refactor Git operations and introduce go-git support for Azure DevOps and AWS CodeCommit |
| 45 | + [#451](https://github.com/fluxcd/image-automation-controller/pull/451) |
| 46 | +- Add new ForceGoGitImplementation FeatureGate |
| 47 | + [#452](https://github.com/fluxcd/image-automation-controller/pull/452) |
| 48 | +- Add support for force push |
| 49 | + [#453](https://github.com/fluxcd/image-automation-controller/pull/453) |
| 50 | +- Use Flux Event API v1beta1 |
| 51 | + [#455](https://github.com/fluxcd/image-automation-controller/pull/455) |
| 52 | +- Remove deprecated alpha APIs |
| 53 | + [#456](https://github.com/fluxcd/image-automation-controller/pull/456) |
| 54 | +- Remove nsswitch.conf creation |
| 55 | + [#458](https://github.com/fluxcd/image-automation-controller/pull/458) |
| 56 | +- Update Dependencies |
| 57 | + [#459](https://github.com/fluxcd/image-automation-controller/pull/459) |
| 58 | + [#460](https://github.com/fluxcd/image-automation-controller/pull/460) |
| 59 | + |
3 | 60 | ## 0.26.1
|
4 | 61 |
|
5 | 62 | **Release date:** 2022-10-21
|
|
0 commit comments