|
1 | 1 | # Changelog |
2 | 2 |
|
| 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 | + |
3 | 121 | ## 1.4.5 |
4 | 122 |
|
5 | 123 | **Release date:** 2025-11-27 |
|
0 commit comments