Skip to content

Commit 1711fca

Browse files
committed
Release v0.22.0
Signed-off-by: Hidde Beydals <[email protected]>
1 parent a9a2b3e commit 1711fca

File tree

3 files changed

+183
-2
lines changed

3 files changed

+183
-2
lines changed

CHANGELOG.md

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

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

5+
## 0.22.0
6+
7+
**Release date:** 2022-03-17
8+
9+
This prerelease comes with new reconcilers which make use of `fluxcd/pkg`
10+
utilities for common runtime operations, and graduates the API to `v1beta2`.
11+
12+
:warning: **It is required** to update the source-controller Custom Resource
13+
Definitions on your cluster and/or in Git.
14+
15+
### Breaking changes
16+
17+
- `Bucket` resources do now take the provided etag for object storage items
18+
into account during the calculation of the revision. As a result, items will
19+
no longer be downloaded on every reconcile if none of them have changed.
20+
- `HelmChart` resources do now advertise the observed chart name
21+
(`.status.observedChartName`) and Source (reference) Artifact revision
22+
(`.status.observedSourceArtifactRevision` in the Status. The information is
23+
used to more efficiently react to source revision and/or chart changes.
24+
25+
### Features and Improvements
26+
27+
#### API specifications in a user-friendly format
28+
29+
[The new specifications for the `v1beta2` API](https://github.com/fluxcd/source-controller/tree/v0.22.0/docs/spec/v1beta2)
30+
have been written in a new format with the aim to be more valuable to a user.
31+
Featuring separate sections with examples, and information on how to write
32+
and work with them.
33+
34+
#### Artifact now advertises size
35+
36+
The size (in bytes) of a tarball Artifact is now advertised in the Size
37+
(`.size`) field of the Artifact. This can be utilized by users to e.g. quickly
38+
see if `.sourceignore` rules have an effect, or be displayed in a UI.
39+
40+
#### Azure Blob Storage support for `Bucket` resources
41+
42+
The `.spec.provider` of a `Bucket` resource can now be set to `azure` to
43+
instruct the controller to use the
44+
[Azure Blob Storage SDK](https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/storage/azblob#readme)
45+
while fetching objects. This allows for authenticating using Service
46+
Principals, Managed Identities and Shared Keys.
47+
48+
For more information, see the
49+
[Bucket spec about the Azure provider](https://github.com/fluxcd/source-controller/blob/v0.22.0/docs/spec/v1beta2/buckets.md#azure).
50+
51+
#### Enhanced Kubernetes Conditions
52+
53+
Source API resources will now advertise more explicit Condition types (more
54+
about the types in "API changes"), provide `Reconciling` and `Stalled`
55+
Conditions where applicable for
56+
[better integration with `kstatus`](https://github.com/kubernetes-sigs/cli-utils/blob/master/pkg/kstatus/README.md#conditions),
57+
and record the Observed Generation on the Condition.
58+
59+
For a detailed overview per Source type, refer to the spec:
60+
61+
- [GitRepository](https://github.com/fluxcd/source-controller/blob/v0.22.0/docs/spec/v1beta2/gitrepositories.md#conditions)
62+
- [HelmRepository](https://github.com/fluxcd/source-controller/blob/v0.22.0/docs/spec/v1beta2/helmrepositories.md#conditions)
63+
- [HelmChart](https://github.com/fluxcd/source-controller/blob/v0.22.0/docs/spec/v1beta2/helmcharts.md#conditions)
64+
- [Bucket](https://github.com/fluxcd/source-controller/blob/v0.22.0/docs/spec/v1beta2/buckets.md#conditions)
65+
66+
#### Enhanced Kubernetes Events (and notifications)
67+
68+
The Kubernetes Events the controller emits have been reworked to provide a
69+
proper reason, and more informative messages.
70+
Users making use of the notification-controller will notice this as well, as
71+
this same information is used to compose notifications.
72+
73+
#### Experimental managed transport for `libgit2` Git implementation
74+
75+
The `libgit2` Git implementation supports a new experimental transport to
76+
improve reliability, adding timeout enforcement for Git network operations.
77+
Opt-in by setting the environment variable `EXPERIMENTAL_GIT_TRANSPORT` to
78+
`true` in the controller's Deployment. This will result in the low-level
79+
transport being handled by the controller, instead of `libgit2`. It may result
80+
in an increased number of timeout messages in the logs, however it will remove
81+
the ability of Git operations to make the controllers hang indefinitely.
82+
83+
#### Reuse of HTTP/S transport for Helm repository index and chart downloads
84+
85+
The Helm dependency has been updated to `v3.8.1`, with a patch applied from
86+
https://github.com/helm/helm/pull/10568. Using this patch, the HTTP transports
87+
are now managed by the controller, to prevent the clogging of thousands of open
88+
TCP connections on some instances.
89+
90+
#### Update of `libgit2` Git implementation to `v1.3.x`
91+
92+
The `libgit2` Git implementation has been updated to `v1.3.x`, allowing us to
93+
provide better error signals for authentication, certificate and transport
94+
failures. Effectively, this means that instead of a `unable to clone: User`
95+
error string, a descriptive one is now given.
96+
97+
In addition, `NO_PROXY` settings are now properly taken into account.
98+
99+
#### Preparation of support for `rsa-ssh2-256/512`
100+
101+
The dependency on `golang.org/x/crypto` has been updated to
102+
`v0.0.0-20220315160706-3147a52a75dd`, as preparation of support for
103+
`rsa-ssh2-256/512`. This should theoretically work out of the box for
104+
`known_hosts` entries and `go-git` Git provider credentials, but has not been
105+
widely tested.
106+
107+
### API changes
108+
109+
The `source.toolkit.fluxcd.io/v1beta2` API is backwards compatible with `v1beta1`.
110+
111+
- Introduction of `Reconciling` and `Stalled` Condition types for [better
112+
integration with `kstatus`](https://github.com/kubernetes-sigs/cli-utils/blob/master/pkg/kstatus/README.md#conditions).
113+
- Introduction of new Condition types to provide better signals and failure
114+
indications:
115+
* `ArtifactOutdated`: indicates the current Artifact of the Source is outdated.
116+
* `SourceVerified`: indicates the integrity of the Source has been verified.
117+
* `FetchFailed`: indicates a transient or persistent fetch failure of the
118+
upstream Source.
119+
* `BuildFailed`: indicates a transient or persistent build failure of a
120+
Source's Artifact.
121+
* `StorageOperationFailed`: indicates a transient or persistent failure
122+
related to storage.
123+
* `IncludeUnavailable`: indicates an include is not available. For example,
124+
because it does not exist, or does not have an Artifact.
125+
- Introduction of a Size (in bytes) field (`.status.artifact.size`) in the
126+
Artifact object.
127+
- Introduction of `ObservedChartName` (`.status.observedChartName`) and
128+
`ObservedSourceArtifactRevision` (`.status.observedSourceArtifactRevision`)
129+
fields in the `HelmChart` Status.
130+
- Introduction of `azure` provider implementation for `Bucket`.
131+
132+
Updating the manifests in Git to `v1beta2` can be done at any time after the
133+
source-controller upgrade.
134+
135+
### Full list of changes
136+
137+
- Upgrade to golang-with-libgit2:1.1.1.6 and use static libraries for in
138+
development
139+
[#562](https://github.com/fluxcd/source-controller/pull/562)
140+
- Initial fuzzing tests
141+
[#572](https://github.com/fluxcd/source-controller/pull/572)
142+
- Validate libgit2 args are set correctly
143+
[#574](https://github.com/fluxcd/source-controller/pull/574)
144+
- Download libgit2 libraries for fuzzing
145+
[#572](https://github.com/fluxcd/source-controller/pull/577)
146+
- Upgrade libgit2 to 1.3.0 and git2go to v33
147+
[#573](https://github.com/fluxcd/source-controller/pull/573)
148+
- pkg/git: Include commit message and URL in checkout error
149+
[#579](https://github.com/fluxcd/source-controller/pull/579)
150+
- Add support for multiple fuzz sanitizers
151+
[#580](https://github.com/fluxcd/source-controller/pull/580)
152+
- Upgrade controller-runtime to v0.11.1 and docker/distribution to v2.8.0
153+
[#583](https://github.com/fluxcd/source-controller/pull/583)
154+
- Move to `v1beta2` API and rewrite reconcilers
155+
[#586](https://github.com/fluxcd/source-controller/pull/586)
156+
- git/libgit2: set CheckoutForce on branch strategy
157+
[#589](https://github.com/fluxcd/source-controller/pull/589)
158+
- Reuse transport for Helm downloads
159+
[#590](https://github.com/fluxcd/source-controller/pull/590)
160+
- Update object API version in the sample configs
161+
[#591](https://github.com/fluxcd/source-controller/pull/591)
162+
- api: Move Status in CRD printcolumn to the end
163+
[#592](https://github.com/fluxcd/source-controller/pull/592)
164+
- Update github.com/sosedoff/gitkit to v0.3.0 (CVE fix)
165+
[#594](https://github.com/fluxcd/source-controller/pull/594)
166+
- Remove redundant reconciling condition in reconcileArtifact
167+
[#595](https://github.com/fluxcd/source-controller/pull/595)
168+
- Implement Size field on archived artifacts
169+
[#597](https://github.com/fluxcd/source-controller/pull/597)
170+
- Add native Azure Blob support
171+
[#598](https://github.com/fluxcd/source-controller/pull/598)
172+
- Experimental managed transport for libgit2 operations
173+
[#606](https://github.com/fluxcd/source-controller/pull/606)
174+
- Update Helm to patched v3.8.1
175+
[#609](https://github.com/fluxcd/source-controller/pull/609)
176+
- Add new condition StorageOperationFailedCondition
177+
[#612](https://github.com/fluxcd/source-controller/pull/612)
178+
- Prioritize StorageOperationFailedCondition
179+
[#613](https://github.com/fluxcd/source-controller/pull/613)
180+
- Update dependencies
181+
[#600](https://github.com/fluxcd/source-controller/pull/600)
182+
[#616](https://github.com/fluxcd/source-controller/pull/616)
183+
- api/v1beta2: add note on Condition polarity
184+
[#622](https://github.com/fluxcd/source-controller/pull/622)
185+
5186
## 0.21.2
6187

7188
**Release date:** 2022-02-07

config/manager/kustomization.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ resources:
66
images:
77
- name: fluxcd/source-controller
88
newName: fluxcd/source-controller
9-
newTag: v0.21.2
9+
newTag: v0.22.0

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ require (
2929
github.com/fluxcd/pkg/testserver v0.2.0
3030
github.com/fluxcd/pkg/untar v0.1.0
3131
github.com/fluxcd/pkg/version v0.1.0
32-
github.com/fluxcd/source-controller/api v0.21.2
32+
github.com/fluxcd/source-controller/api v0.22.0
3333
github.com/go-git/go-billy/v5 v5.3.1
3434
github.com/go-git/go-git/v5 v5.4.2
3535
github.com/go-logr/logr v1.2.2

0 commit comments

Comments
 (0)