Helm v4.2.0 is a feature release. Users are encouraged to upgrade for the best experience.
The community keeps growing, and we'd love to see you there!
- Join the discussion in Kubernetes Slack:
- for questions and just to hang out
- for discussing PRs, code, and bugs
- Hang out at the Public Developer Call: Thursday, 9:30 Pacific via Zoom
- Test, debug, and contribute charts: ArtifactHub/packages
Notable Changes
- Switch to
goreleaserfor release builds - Kubernetes client libraries to v1.36
- Add
mustToTomltemplate function - deprecate unused
--hide-notesand--render-subchart-notesflags --dry-run=servernow respectsgenerateName:
Installation and Upgrading
Download Helm v4.2.0. The common platform binaries are here:
- MacOS amd64 (checksum / 1376ea697140e4db316736e760d5a47d12afc1524dce704476ef06fd7fdeddc6)
- MacOS arm64 (checksum / f13f959015447b6bc309f9fd506509926543988a39035c088b52522ec95e2acb)
- Linux amd64 (checksum / 97dbeb971be4ac4b27e3839976d9564c0fb35c6f3b1da89dd1e292d236af4096)
- Linux arm (checksum / ae624870b2d50e655b6462daff117eb9d28c4bad45234ef24c1275113540fcb0)
- Linux arm64 (checksum / 1f8de130dfbd04de64978e7b852a7a547be1404956a366608276d2520b678670)
- Linux i386 (checksum / 9cf44acc59081aca98b4d9f09138348836b26761258e02ad2b99616f66eead5c)
- Linux loong64 (checksum / 5b04f0167b8b415a057c1f4f809ede86d5ead840e0aa560db097da5be19f86d0)
- Linux ppc64le (checksum / 48f0637b93247717b725e8d4a8d2cf8df0e2fdea91bdd0e36e2426c2d5c76e4e)
- Linux s390x (checksum / 328e9ed27904f9910026240c4311bb1b0bf91c6fde1634f212097694507a702f)
- Linux riscv64 (checksum / 5d292d57ab1f40e47e373a87187bafa66e8daac4ddc4a1333421c174e8184755)
- Windows amd64 (checksum / 614f68ddc567ac9bfb0c205f869b1f83ba4e0a9aacd26cbae47743ae6082a579)
- Windows arm64 (checksum / e740e4c19b6e2a0b428f7a52c38b7f0b092f0c43ac49870537d7e7fac9cedc07)
This release was signed by @gjenkins8 with key BF88 8333 D96A 1C18 E268 2AAE D79D 67C9 EC01 6739, which can be found at https://keys.openpgp.org/vks/v1/by-fingerprint/BF888333D96A1C18E2682AAED79D67C9EC016739. Please use the attached signatures for verifying this release using gpg.
The Quickstart Guide will get you going from there. For upgrade instructions or detailed installation notes, check the install guide. You can also use a script to install on any system with bash.
What's Next
- 4.2.1 will contain only bug fixes
- 4.3.0 is the next feature release
Changelog
- Bump to version v4.2 [064680] (George Jenkins)
- build: Clean up Goreleaser change (#32098) [e23bf3] (Scott Rigby)
- fix: add -extldflags -static to dist target to match build-cross [f60ab7] (Terry Howe)
- build: use goreleaser build with manual archive creation [64aa46] (Terry Howe)
- chore: remove build-cross dependency from test-acceptance [d199a1] (Terry Howe)
- ci: add fetch-depth 0 to canary checkout for goreleaser [828994] (Terry Howe)
- fix: address goreleaser build issues flagged in review [c07502] (Terry Howe)
- fix: pass VERSION as GORELEASER_CURRENT_TAG to preserve v-prefix in archive names [04885d] (Terry Howe)
- fix: disable goreleaser checksums.txt and restrict zip to windows only [93103c] (Terry Howe)
- fix: use index for optional env var in version_template [e49a1d] (Terry Howe)
- fix: canary build file names [eaa091] (Terry Howe)
- Fix archive name [5a7527] (Terry Howe)
- fix goreleaser archive [37284a] (Terry Howe)
- add support for loong64 [45336c] (Terry Howe)
- fix artifact directory [a9659b] (Terry Howe)
- update configuration to v2 [e368f1] (Terry Howe)
- remove GOTOOLCHAIN [e7bea8] (Terry Howe)
- chore: replace mitchellh/gox with goreleaser [075c09] (Terry Howe)
- chore(deps): bump github.com/distribution/distribution/v3 [12f2c4] (dependabot[bot])
- chore(deps): bump github/codeql-action from 4.35.2 to 4.35.3 [58e8ff] (dependabot[bot])
- chore(deps): bump github.com/Masterminds/semver/v3 from 3.4.0 to 3.5.0 [e61bbf] (dependabot[bot])
- Upgrade kstatus to 1.2 and controller-runtime to 0.24 [081c6d] (Matheus Pimenta)
- fix: adds topLevel permissions to improve openSSF scores [277d97] (Gagan H R)
- Upgrade Go to 1.26, Kubernetes to 1.36, kstatus to 1.1 [a4a9cc] (Matheus Pimenta)
- fix(templating): hooks conflicting with templates in post-renderers (#32049) [8f56f2] (Matheus Pimenta)
- docs: fix grammar and spacing in CONTRIBUTING.md [db40ad] (Mohit)
- chore(deps): bump the k8s-io group with 7 updates [775e79] (dependabot[bot])
- chore(deps): bump github/codeql-action from 4.35.1 to 4.35.2 [934ace] (dependabot[bot])
- fix(templating): SplitManifests must preserve line endings for downstream YAML parsers (#31952) [265c5e] (Matheus Pimenta)
- chore(deps): bump github.com/mattn/go-shellwords from 1.0.12 to 1.0.13 [48e2b7] (dependabot[bot])
- Update pkg/chart/common/util/coalesce.go [a8e249] (Evans Mungai)
- test(values): Add test for nil cleanup in partially overridden subchart maps [52fc97] (Johannes Lohmer)
- fix(values): do not copy chart-default nils into coalesced values [006387] (Johannes Lohmer)
- test(values): add test for subchart nil producing %!s(<nil>) [6eb4eb] (Johannes Lohmer)
- test(values): add tests for subchart nil value regressions [5cb4e7] (Johannes Lohmer)
- chore(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 [b5c7c8] (dependabot[bot])
- fix(templating): fix wrong YAML separator parsing for post-renderers (#31941) [a27f1a] (Matheus Pimenta)
- fix: add debug logging to HTTP getter for helm pull [c26be6] (Cairon)
- chore(deps): bump golang.org/x/crypto from 0.49.0 to 0.50.0 [953f5f] (dependabot[bot])
- chore(deps): bump golang.org/x/term from 0.41.0 to 0.42.0 [10fc5f] (dependabot[bot])
- chore(deps): bump golang.org/x/text from 0.35.0 to 0.36.0 [d89e7c] (dependabot[bot])
- chore: Update release notes script for Helm v4 [8a9546] (George Jenkins)
- refactor(cli): share RetryingRoundTripper via pkg/kubeenv [213c86] (Sumit Solanki)
- chore(deps): bump github.com/lib/pq from 1.12.2 to 1.12.3 [bd5027] (dependabot[bot])
- fix: unnecessary-format lint issues from merge [087736] (George Jenkins)
- fix: Plugin missing provenance bypass [586eb5] (George Jenkins)
- chore(deps): bump github.com/fluxcd/cli-utils [c8c5df] (dependabot[bot])
- chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp [998466] (dependabot[bot])
- chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp [b0cec5] (dependabot[bot])
- chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp [6ebfb2] (dependabot[bot])
- test(kube): fix flaky WaitForDelete test by avoiding informer sync race [a7f844] (Terry Howe)
- test(kube): fix flaky WaitForDelete timing in status wait tests [4c0d21] (Terry Howe)
- chore(deps): bump github.com/distribution/distribution/v3 [08dea9] (dependabot[bot])
- Minor nit: fix import instructions to comply with canonical import paths [de5853] (Anmol Virdi)
- chore(deps): bump github.com/distribution/distribution/v3 [9b1ad4] (dependabot[bot])
- fix(action): return correct error variable in prepareUpgrade [8ef2d4] (Rhys McNeill)
- chore(deps): bump github.com/lib/pq from 1.12.1 to 1.12.2 [cd7cf7] (dependabot[bot])
- chore(deps): bump github/codeql-action from 4.30.7 to 4.35.1 [45ee55] (dependabot[bot])
- chore(deps): bump github.com/lib/pq from 1.12.0 to 1.12.1 [9a0674] (dependabot[bot])
- chore(deps): bump actions/setup-go from 6.2.0 to 6.4.0 [d1e31c] (dependabot[bot])
- fix(kube): clarify server-side apply patch errors [f257c9] (abhay1999)
- fix: pin codeql-action/upload-sarif to commit SHA in scorecards workflow [702548] (Terry Howe)
- refactor(cli): decouple EnvSettings from pkg/kube [64f1d0] (Sumit Solanki)
- docs(registry): fix incorrect and improve clarity of comments in client.go [85bf56] (Debasish Mohanty)
- refactor(cli): decouple EnvSettings from pkg/kube to avoid import cycles [154993] (Sumit Solanki)
- chore(deps): bump github.com/ProtonMail/go-crypto from 1.3.0 to 1.4.1 [c7a75b] (dependabot[bot])
- chore(deps): bump github.com/lib/pq from 1.11.2 to 1.12.0 [3a7573] (dependabot[bot])
- chore(deps): bump github.com/fatih/color from 1.18.0 to 1.19.0 [0229da] (dependabot[bot])
- docs(engine): fix misleading toTOML doc comment [c1a5a6] (Ilya Kiselev)
- feat(engine): add mustToToml template function [b075f7] (Ilya Kiselev)
- chore: fix unnecessary-format issues from revive [7edfff] (Matthieu MOREL)
- chore(deps): bump google.golang.org/grpc from 1.78.0 to 1.79.3 [37185d] (dependabot[bot])
- chore: fix bool-compare issues from testifylint [071558] (Matthieu MOREL)
- chore: enable perfsprint linter [624948] (Matthieu MOREL)
- ignore error plugin loads (cli, getter) [47a084] (George Jenkins)
- chore(deps): bump golang.org/x/crypto from 0.48.0 to 0.49.0 [3d06fd] (dependabot[bot])
- fix(kube): remove legacy import comments from test files [e64d62] (Terry Howe)
- pkg/kube: remove legacy import comments [d7cdc9] (abhay1999)
- fix: Plugin version path traversal [36dcc2] (George Jenkins)
- chore(deps): bump golang.org/x/term from 0.40.0 to 0.41.0 [c4be7a] (dependabot[bot])
- chore: fix some minor issues in the comments [259f18] (tsinglua)
- fix: Chart dot-name path bug [601849] (George Jenkins)
- chore(deps): bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3 [74e7cf] (dependabot[bot])
- fix: insert newline after doc separators glued to content by template trimming [af94ab] (Matheus Pimenta)
- chore(deps): bump github.com/cloudflare/circl from 1.6.1 to 1.6.3 [16073b] (dependabot[bot])
- chore: enable modernize linter (#31860) [e31a07] (Matthieu MOREL)
- Restored --atomic flag on install command [16573f] (Travis Leeden)
- fix: bump go.opentelemetry.io/otel/sdk to v1.40.0 for GO-2026-4394 [b550ce] (Terry Howe)
- fix: bump fluxcd/cli-utils to v0.37.2-flux.1 [1dfa77] (Terry Howe)
- Update pkg/cmd/status.go [5d40f1] (Matthieu MOREL)
- chore(internal): enable perfsprint linter (#31871) [d4f619] (Matthieu MOREL)
- chore(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 [82d9be] (dependabot[bot])
- chore(pkg): fix perfsprint linter issues part 6 [dc0e3f] (Matthieu MOREL)
- chore(pkg): enable perfsprint linter [e3c74f] (Matthieu MOREL)
- chore(pkg): enable perfsprint linter [1d2d63] (Matthieu MOREL)
- chore(pkg): enable perfsprint linter [63f03c] (Matthieu MOREL)
- chore(pkg): enable perfsprint linter [c25c98] (Matthieu MOREL)
- chore(pkg): enable perfsprint linter [0fecfd] (Matthieu MOREL)
- chore(internal): enable perfsprint linter [652416] (Matthieu MOREL)
- chore(pkg): enable perfsprint linter [6c2cb2] (Matthieu MOREL)
- chore(internal): enable perfsprint linter [940922] (Matthieu MOREL)
- Replace unneeded use of t.Fatalf with t.Fatal [36cb3a] (Mads Jensen)
- fix: enable nolinlint linter [5b6c6b] (Matthieu MOREL)
- fixup
strings.Cutvariables [b66731] (George Jenkins) - chore: Improve
AGENTS.md[956c72] (George Jenkins) - chore: fixes [92b64e] (George Jenkins)
- fix: correct import comment in statuswait.go from v3 to v4 [c59c14] (rohansood10)
- fix: handle OCI digest algorithm prefix in chart downloader (#31601) [ee0186] (Evans Mungai)
- chore(deps): bump actions/stale from 10.1.1 to 10.2.0 [304d25] (dependabot[bot])
- chore(deps): bump the k8s-io group with 7 updates [0b1343] (dependabot[bot])
- feat(release): add internal/release/v2 package for chart v3 support (#31709) [4a91f3] (Evans Mungai)
- chore(deps): bump golang.org/x/crypto from 0.47.0 to 0.48.0 [782385] (dependabot[bot])
- chore(deps): bump golang.org/x/term from 0.39.0 to 0.40.0 [aec7ac] (dependabot[bot])
- chore(deps): bump github.com/lib/pq from 1.11.1 to 1.11.2 [a23b63] (dependabot[bot])
- chore(deps): bump golang.org/x/text from 0.33.0 to 0.34.0 [5cddc9] (dependabot[bot])
- chore(deps): bump sigs.k8s.io/kustomize/kyaml from 0.21.0 to 0.21.1 [2e266c] (dependabot[bot])
- fix(pkg): errorlint linter [259f76] (Matthieu MOREL)
- fix(internal): errorlint linter [025418] (Matthieu MOREL)
- fix(pkg): errorlint linter [6d1490] (Matthieu MOREL)
- fix(pkg): errorlint linter [4d0ae7] (Matthieu MOREL)
- fix(internal): errorlint linter [abecaf] (Matthieu MOREL)
- fix(pkg): errorlint linter [4330bd] (Matthieu MOREL)
- fix(pkg): errorlint linter [c8989d] (Matthieu MOREL)
- fix(cmd): errorlint linter [edbd70] (Matthieu MOREL)
- chore: new KEYS entry for George Jenkins [5638c3] (George Jenkins)
- fix(downloader): safely handle concurrent file writes on Windows [76eb37] (Orgad Shaneh)
- fix(install): check nil for restClientGetter and fix tests [9817a6] (Manuel Alonso)
- feat(create): add --chart-api-version flag (when HELM_EXPERIMENTAL_CHART_V3 env var is set) (#31592) [5aac32] (Evans Mungai)
- chore(pkg): fix modernize linter [0d75d8] (Matthieu MOREL)
- chore(internal): fix modernize linter [859292] (Matthieu MOREL)
- chore(pkg): fix modernize linter [5cc2e5] (Matthieu MOREL)
- chore(pkg): fix modernize linter [ba3815] (Matthieu MOREL)
- chore(internal): fix modernize linter [e2d184] (Matthieu MOREL)
- chore(pkg): fix modernize linter [111d4e] (Matthieu MOREL)
- add image index test [e8f386] (Pedro Tôrres)
- fix pulling charts from OCI indices [d98369] (Pedro Tôrres)
- chore(deps): bump github.com/lib/pq from 1.10.9 to 1.11.1 [9c9c3a] (dependabot[bot])
- Revert "Consider GroupVersionKind when matching resources" [787b61] (Matheus Pimenta)
- chore(deps): bump sigs.k8s.io/controller-runtime from 0.23.0 to 0.23.1 [becf9b] (dependabot[bot])
- fix(template): deprecate unused --hide-notes and --render-subchart-notes flags [6d5f56] (Scott Rigby)
- chore(deps): bump github.com/fluxcd/cli-utils [b53198] (dependabot[bot])
- chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 [b59e53] (dependabot[bot])
- whitespace [ec0726] (Austin Abro)
- fix(copystructure): handle nil elements in slice copying [e3829e] (Philipp Born)
- use logger with waiter [63b40a] (Austin Abro)
- feat(kstatus): fine-grained context options for waiting [b0b35f] (Matheus Pimenta)
- Apply suggestions from code review [26e28e] (George Jenkins)
- Remove legacy sync-repo.sh script [97fd00] (Jeevan Yewale)
- chore(deps): bump sigs.k8s.io/controller-runtime from 0.22.4 to 0.23.0 [526200] (dependabot[bot])
- docs: document uninstall using cascade foreground flag [e70d59] (Evans Mungai)
- bugfix(kstatus): do not wait forever on failed resources [bbec77] (Matheus Pimenta)
- Modernize Helm v3 CONTRIBUTING.md [443a2a] (George Jenkins)
- chore(defaults): server-side apply SDK defaults should always match the CLI defaults [c1cc62] (Matheus Pimenta)
- chore: clarify --wait flag help text [828038] (Evans Mungai)
- chore(deps): bump actions/setup-go from 6.1.0 to 6.2.0 [e22377] (dependabot[bot])
- chore(refactor): better testing and functionality for installing crd [6501ef] (Manuel Alonso)
- bugfix(storage): fix storage not getting logger from driver [a8eb52] (Matheus Pimenta)
- chore(deps): bump golang.org/x/crypto from 0.46.0 to 0.47.0 [da1d68] (dependabot[bot])
- fix(test): fix tests and check nil for restclient [0f949a] (Manuel Alonso)
- fix(test): merge fix correctly [561410] (Manuel Alonso Gonzalez)
- Remove refactorring changes from coalesce_test.go [0298b2] (Evans Mungai)
- Fix import [b8937a] (Evans Mungai)
- Update pkg/chart/common/util/coalesce_test.go [a333bb] (Evans Mungai)
- Fix rollback for missing resources [374aeb] (Feruzjon Muyassarov)
- fix(install): add more tests and check nil file data [00f0a4] (Manuel Alonso)
- fix(test): no check empty resources [0357e8] (Manuel Alonso)
- fix(install): check lenght and file nil, add tests [52235c] (Manuel Alonso)
- fix(action): crd resources can be empty [268593] (Manuel Alonso)
- fix: casing issue fixed [170911] (Mujib Ahasan)
- fix: error handled correctly [948606] (Mujib Ahasan)
- fix: doc string added [12e8b7] (Mujib Ahasan)
- Fix lint warning [3416dd] (Evans Mungai)
- Preserve nil values in chart already [679f05] (Evans Mungai)
- fix(values): preserve nil values when chart default is empty map [292fe7] (Evans Mungai)
- update: test coverage added for helper function validateNameAndGenerateName [115409] (Mujib Ahasan)
- update: helper function added for the business logic [522d2f] (Mujib Ahasan)
- generateName is also considered in logic [6769fb] (Mujib Ahasan)
- fxi: test concurrency download index [64bae7] (Terry Howe)
- update: business logic respected for skipping object missing name [b357bc] (Mujib Ahasan)
- fixed: --dry-run=server now respect generateName [2820eb] (Mujib Ahasan)
- Make error message instructional for the case of lock file being out of date [1836c5] (Andreas Sommer)
New Contributors
- @JeevanYewale made their first contribution in https://github.com/helm/helm/pull/31742
- @tamcore made their first contribution in https://github.com/helm/helm/pull/31751
- @orgads made their first contribution in https://github.com/helm/helm/pull/31128
- @manute made their first contribution in https://github.com/helm/helm/pull/31578
- @Mujib-Ahasan made their first contribution in https://github.com/helm/helm/pull/31563
- @rohansood10 made their first contribution in https://github.com/helm/helm/pull/31852
- @tleed5 made their first contribution in https://github.com/helm/helm/pull/31901
- @tsinglua made their first contribution in https://github.com/helm/helm/pull/31921
- @abhay1999 made their first contribution in https://github.com/helm/helm/pull/31931
- @Mentigen made their first contribution in https://github.com/helm/helm/pull/31957
- @Debasish-87 made their first contribution in https://github.com/helm/helm/pull/31973
- @AnmolVirdi made their first contribution in https://github.com/helm/helm/pull/32014
- @Y0-L0 made their first contribution in https://github.com/helm/helm/pull/31979
- @MohitSalvi16 made their first contribution in https://github.com/helm/helm/pull/32057
- @rhysmcneill made their first contribution in https://github.com/helm/helm/pull/32008
- @cairon-ab made their first contribution in https://github.com/helm/helm/pull/32034
- @gaganhr94 made their first contribution in https://github.com/helm/helm/pull/31923
- @isumitsolanki made their first contribution in https://github.com/helm/helm/pull/31970
Full Changelog: https://github.com/helm/helm/compare/v4.1.0...v4.2.0