Skip to content

Commit c618784

Browse files
authored
Merge pull request #1413 from fluxcd/release-v1.5.0
Release v1.5.0
2 parents 3b6abe1 + fdd7bea commit c618784

File tree

5 files changed

+125
-7
lines changed

5 files changed

+125
-7
lines changed

CHANGELOG.md

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,123 @@
11
# Changelog
22

3+
## 1.5.0
4+
5+
**Release date:** 2026-02-20
6+
7+
This minor release comes with Helm v4 support, server-side apply for
8+
Helm releases, and various bug fixes and improvements.
9+
10+
⚠️ The `v2beta2` APIs were removed. Before upgrading the CRDs, Flux users
11+
must run [`flux migrate`](https://github.com/fluxcd/flux2/pull/5473) to
12+
migrate the cluster storage off `v2beta2`.
13+
14+
### HelmRelease
15+
16+
The controller now uses Helm v4, and, with this change, new default
17+
behaviors are being introduced (breaking changes) to keep Flux and
18+
Helm aligned:
19+
20+
- Apply method is now defaulting to server-side apply for new HelmReleases.
21+
- Health checks now default to using kstatus for assessing readiness and
22+
failures of applied resources.
23+
24+
Those defaults can be changed back to Helm v3's defaults by setting the
25+
feature gate `UseHelm3Defaults`. Alternatively, fine-tuning the apply
26+
and health check methods is also possible on a per-HelmRelease basis by
27+
using the following fields:
28+
29+
- `.spec.install.serverSideApply` (boolean, default defined by `UseHelm3Defaults`)
30+
- `.spec.upgrade.serverSideApply` (`enabled`, `disabled` or `auto`, defaults to `auto`)
31+
- `.spec.rollback.serverSideApply` (`enabled`, `disabled` or `auto`, defaults to `auto`)
32+
- `.spec.waitStrategy.name` (`poller` or `legacy`, default defined by `UseHelm3Defaults`)
33+
34+
Note that Helm persists the apply method in the release storage, hence
35+
why the `auto` value is an option for upgrade and rollback actions. When
36+
set to `auto`, the controller will reuse the apply method used in the last
37+
successful release revision, as recorded in the Helm storage, defaulting
38+
to client-side apply. This means that existing HelmReleases will continue
39+
to use client-side apply until their `.spec` is updated with
40+
`.spec.{upgrade|rollback}.serverSideApply: enabled`.
41+
42+
The `poller` health check strategy uses kstatus to check the status
43+
of applied resources, while the `legacy` strategy uses Helm v3's
44+
built-in health checking behavior.
45+
46+
The controller now can be configured to cancel in-progress health checks when a new
47+
reconciliation request is received, reducing the mean time to recovery (MTTR) in case
48+
of failed deployments. This feature is enabled by the `CancelHealthCheckOnNewRevision`
49+
feature gate. Note that enabling this feature gate will not cancel apply operations,
50+
and will only cancel health checks for managed resources: waiting for Helm hooks and
51+
tests will not be cancelled.
52+
53+
Still on the health check subject, custom health checks via CEL expressions
54+
are now supported for HelmRelease via the `.spec.healthCheckExprs` field,
55+
similar to the Kustomization API. Please see the
56+
[CEL cheatsheet](https://fluxcd.io/flux/cheatsheets/cel-healthchecks/)
57+
for more information.
58+
59+
The `--override-manager=<manager>` flag has been added for server-side apply drift
60+
detection and correction. This flag can be passed multiple times. Note that drift
61+
detection and correction in helm-controller is completely unrelated to Helm v4's
62+
server-side apply support, and was implemented long before Helm v4 was released.
63+
64+
The `DirectSourceFetch` feature gate has been introduced for bypassing the cache
65+
when fetching source objects on reconciliations.
66+
67+
For improved observability, inventory tracking has been added via
68+
`.status.inventory`. Hooks and tests are not tracked in this field.
69+
Only resources present in the Helm storage and CRDs are tracked.
70+
71+
Also for improved observability, the controller now tracks the action (`install`,
72+
`upgrade`, `rollback`, `uninstall`, `uninstall-remediation`) in snapshots:
73+
`.status.history[].action`.
74+
75+
### General updates
76+
77+
In addition, the Kubernetes dependencies have been updated to v1.35.0,
78+
Kustomize has been updated to v5.8.1 and the controller is now built
79+
with Go 1.26.
80+
81+
Fixes:
82+
- Fix state when configuration set back to current state following upgrade failure
83+
[#1369](https://github.com/fluxcd/helm-controller/pull/1369)
84+
- Fix waiting and erroring out on garbage-collected Jobs
85+
[#1402](https://github.com/fluxcd/helm-controller/pull/1402)
86+
- Fix controller not reconciling conditions for in-sync release
87+
[#1411](https://github.com/fluxcd/helm-controller/pull/1411)
88+
- Fix postRenderers not causing new upgrade when applied during ongoing upgrade
89+
[#1412](https://github.com/fluxcd/helm-controller/pull/1412)
90+
91+
Improvements:
92+
- Upgrade Helm to v4
93+
[#1383](https://github.com/fluxcd/helm-controller/pull/1383)
94+
[#1403](https://github.com/fluxcd/helm-controller/pull/1403)
95+
- Add ServerSideApply field to HelmRelease API
96+
[#1384](https://github.com/fluxcd/helm-controller/pull/1384)
97+
- Add `.status.inventory` to track managed objects
98+
[#1385](https://github.com/fluxcd/helm-controller/pull/1385)
99+
- Add support for custom health checks via CEL expressions
100+
[#1389](https://github.com/fluxcd/helm-controller/pull/1389)
101+
- Add `--override-manager` flag for server-side apply drift detection
102+
[#1365](https://github.com/fluxcd/helm-controller/pull/1365)
103+
- Reduce the mean time to recovery (MTTR) in case of failed deployments
104+
[#1392](https://github.com/fluxcd/helm-controller/pull/1392)
105+
- Track action in snapshots
106+
[#1399](https://github.com/fluxcd/helm-controller/pull/1399)
107+
- Add `DirectSourceFetch` feature gate to bypass cache for source objects
108+
[#1407](https://github.com/fluxcd/helm-controller/pull/1407)
109+
- Remove deprecated APIs in group `helm.toolkit.fluxcd.io/v2beta2`
110+
[#1404](https://github.com/fluxcd/helm-controller/pull/1404)
111+
- Remove adoption of resources in old API versions
112+
[#1396](https://github.com/fluxcd/helm-controller/pull/1396)
113+
- Remove duplicated struct json tag
114+
[#1377](https://github.com/fluxcd/helm-controller/pull/1377)
115+
- Various dependency updates
116+
[#1395](https://github.com/fluxcd/helm-controller/pull/1395)
117+
[#1406](https://github.com/fluxcd/helm-controller/pull/1406)
118+
[#1408](https://github.com/fluxcd/helm-controller/pull/1408)
119+
[#1410](https://github.com/fluxcd/helm-controller/pull/1410)
120+
3121
## 1.4.5
4122

5123
**Release date:** 2025-11-27

config/default/kustomization.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1
22
kind: Kustomization
33
namespace: helm-system
44
resources:
5-
- https://github.com/fluxcd/source-controller/releases/download/v1.7.0/source-controller.crds.yaml
6-
- https://github.com/fluxcd/source-controller/releases/download/v1.7.0/source-controller.deployment.yaml
5+
- https://github.com/fluxcd/source-controller/releases/download/v1.8.0/source-controller.crds.yaml
6+
- https://github.com/fluxcd/source-controller/releases/download/v1.8.0/source-controller.deployment.yaml
77
- ../crd
88
- ../rbac
99
- ../manager

config/manager/kustomization.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ resources:
55
images:
66
- name: fluxcd/helm-controller
77
newName: fluxcd/helm-controller
8-
newTag: v1.4.0
8+
newTag: v1.5.0

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ replace (
1717
require (
1818
github.com/Masterminds/semver/v3 v3.4.0
1919
github.com/fluxcd/cli-utils v0.37.1-flux.1
20-
github.com/fluxcd/helm-controller/api v1.4.0
20+
github.com/fluxcd/helm-controller/api v1.5.0
2121
github.com/fluxcd/pkg/apis/acl v0.9.0
2222
github.com/fluxcd/pkg/apis/event v0.24.0
2323
github.com/fluxcd/pkg/apis/kustomize v1.15.0
@@ -28,7 +28,7 @@ require (
2828
github.com/fluxcd/pkg/runtime v0.100.2
2929
github.com/fluxcd/pkg/ssa v0.67.1
3030
github.com/fluxcd/pkg/testserver v0.13.0
31-
github.com/fluxcd/source-controller/api v1.7.2
31+
github.com/fluxcd/source-controller/api v1.8.0
3232
github.com/go-logr/logr v1.4.3
3333
github.com/google/cel-go v0.26.1
3434
github.com/google/go-cmp v0.7.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,8 @@ github.com/fluxcd/pkg/ssa v0.67.1 h1:wmwrznP+USRUtppKRjAiBx3ayriygRx0IeMdX7z/HaM
166166
github.com/fluxcd/pkg/ssa v0.67.1/go.mod h1:PFXVjChubQOiWDxalpwh6PzRsEswGqnKwZB4ScoxDx4=
167167
github.com/fluxcd/pkg/testserver v0.13.0 h1:xEpBcEYtD7bwvZ+i0ZmChxKkDo/wfQEV3xmnzVybSSg=
168168
github.com/fluxcd/pkg/testserver v0.13.0/go.mod h1:akRYv3FLQUsme15na9ihECRG6hBuqni4XEY9W8kzs8E=
169-
github.com/fluxcd/source-controller/api v1.7.2 h1:/lg/xoyRjxwdhHKqjTxQS2o1cp+DMKJ8W4rpm+ZLemQ=
170-
github.com/fluxcd/source-controller/api v1.7.2/go.mod h1:2JtCeUVpl0aqKImS19jUz9EEnMdzgqNWHkllrIhV004=
169+
github.com/fluxcd/source-controller/api v1.8.0 h1:ndrYmcv6ZMcdQHFSUkOrFVDO7h16SfDBSw/DOqf/LPo=
170+
github.com/fluxcd/source-controller/api v1.8.0/go.mod h1:1O7+sMbqc1+3tPvjmtgFz+bASTl794Y9SxpebHDDSGA=
171171
github.com/foxcpp/go-mockdns v1.2.0 h1:omK3OrHRD1IWJz1FuFBCFquhXslXoF17OvBS6JPzZF0=
172172
github.com/foxcpp/go-mockdns v1.2.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk=
173173
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=

0 commit comments

Comments
 (0)