⚠️ Breaking Change
Impact Score: 7/10
Helm 3.7.0
Source available — automated, not human-reviewed
Component: helm · Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
Breaking-change evidence from the source
- Introduce a new interface for WaitForDelete() to avoid breaking backwards compatibility d51a61f9ab4d9e78c11fc0b6662ae6ea16291e66 (Mike Ng)
⚡ Executive Summary (TL;DR)
Helm v3.7.0. Source highlight: Helm v3.7.0 is a feature release. Users are encouraged to upgrade for the best experience.
Who Does This Impact? (Role-Based Analysis)
💻 Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
📊 Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
⚙️ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
⚠️ Breaking Changes & Deprecations (1)
- - Introduce a new interface for WaitForDelete() to avoid breaking backwards compatibility d51a61f9ab4d9e78c11fc0b6662ae6ea16291e66 (Mike Ng)
✨ New Features & Capabilities (6)
- introduced `helm uninstall --wait`
- introduced `helm show crds`
- introduced `--max-col-width` to `helm dependency list`
- introduced `--password-stdin` to `helm repo add`
- introduced `{{ .Chart.IsRoot }}` to the template engine
- 3.8.0 is the next feature release.
⚡ Performance & Enhancements (4)
- improved coalesce readability by getting rid of continue statements 5cf9735a9dec42ceed7db04b551b5c2f8762f3db (Bernd Gutjahr)
- enhanced coelesce_test with some more test cases 1740e7f89b59b44fed8c678b586f3a64083f30a3 (Bernd Gutjahr)
- Improve tests 7bfb2a3602953b052db85dcb222157a32db9547a (Stephane Moser)
- Improve markdown rendering of commands help for shell completion 61e08c63374406f261c914e667092eb21c13c37b (Alexandre Garnier)
🔧 Bug Fixes & Patches (6)
- for discussing PRs, code, and bugs
- Test, debug, and contribute charts: ArtifactHub/packages
- 3.7.1 will contain only bug fixes.
- fix tarFromLocalDir saving file dependencies in dest path eeac83883cb4014fe60267ec6373570374ce770b (Matthew Fisher)
- Fix HELM_DRIVER docs for sql option bc1fefa9f33f14521c44e08768c9f9bac3681907 (Ed Carrel)
- Fix encoded path for 'helm dependency build' 58018d121098992121071e83b576700cd4f273e1 (Mathieu Parent)
📄 View Raw Release Notes (Original Developer Log)
Helm v3.7.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](https://kubernetes.slack.com):
- 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](https://zoom.us/j/696660622)
- Test, debug, and contribute charts: [ArtifactHub/packages](https://artifacthub.io/packages/search?kind=0)
## Notable Changes
A few major changes were made to the experimental OCI feature:
- `helm chart export` has been removed
- `helm chart list` has been removed
- `helm chart pull` has been replaced with `helm pull`
- `helm chart push` has been replaced with `helm push`
- `helm chart remove` has been removed
- `helm chart save` has been replaced with `helm package`
In addition, a change to the experimental OCI manifest format was introduced, preventing Helm 3.7 from fetching charts built
with older versions of the experimental OCI feature. Users will need to re-package and upload their OCI charts when upgrading to Helm 3.7. This change does not affect standard Helm charts.
Many of the details of these changes can be found in [HIP 6](https://github.com/helm/community/blob/main/hips/hip-0006.md).
Other notable changes:
- introduced `helm uninstall --wait`
- introduced `helm show crds`
- introduced `--max-col-width` to `helm dependency list`
- introduced `--password-stdin` to `helm repo add`
- `helm install` and `helm upgrade` now respond to SIGTERM events
- `helm repo update` now accepts an optional repository name
- introduced `{{ .Chart.IsRoot }}` to the template engine
- updated to Cobra's Bash Completion v2
- updated to Kubernetes 1.22 client packages
- updated to Go 1.16
## Installation and Upgrading
Download Helm v3.7.0. The common platform binaries are here:
- [MacOS amd64](https://get.helm.sh/helm-v3.7.0-darwin-amd64.tar.gz) ([checksum](https://get.helm.sh/helm-v3.7.0-darwin-amd64.tar.gz.sha256sum) / 0bf671be69563a0c2b4253c393bed271fab90a4aa9321d09685a781f583b5c9d)
- [MacOS arm64](https://get.helm.sh/helm-v3.7.0-darwin-arm64.tar.gz) ([checksum](https://get.helm.sh/helm-v3.7.0-darwin-arm64.tar.gz.sha256sum) / 6968d3488cf36cae00b33c3b5799a9cfa0211270ce6f90d61a5ced5eeb54c635)
- [Linux amd64](https://get.helm.sh/helm-v3.7.0-linux-amd64.tar.gz) ([checksum](https://get.helm.sh/helm-v3.7.0-linux-amd64.tar.gz.sha256sum) / 096e30f54c3ccdabe30a8093f8e128dba76bb67af697b85db6ed0453a2701bf9)
- [Linux arm](https://get.helm.sh/helm-v3.7.0-linux-arm.tar.gz) ([checksum](https://get.helm.sh/helm-v3.7.0-linux-arm.tar.gz.sha256sum) / c9609757e56fa11036da469c0b7f21b6e21f05618bc437451050a8507441fe1b)
- [Linux arm64](https://get.helm.sh/helm-v3.7.0-linux-arm64.tar.gz) ([checksum](https://get.helm.sh/helm-v3.7.0-linux-arm64.tar.gz.sha256sum) / 03bf55435b4ebef739f862334bdfbf7b7eed714b94340a22298c485b6626aaca)
- [Linux i386](https://get.helm.sh/helm-v3.7.0-linux-386.tar.gz) ([checksum](https://get.helm.sh/helm-v3.7.0-linux-386.tar.gz.sha256sum) / daeb6979e1a8d32c5adaf0ce0ea6b4fede200ebe483bdd109b3b1294a6f33c2e)
- [Linux ppc64le](https://get.helm.sh/helm-v3.7.0-linux-ppc64le.tar.gz) ([checksum](https://get.helm.sh/helm-v3.7.0-linux-ppc64le.tar.gz.sha256sum) / 0f997b9228a64477fc83ea515831c281074f2e01d3d0bf2c72c6163fca70d053)
- [Linux s390x](https://get.helm.sh/helm-v3.7.0-linux-s390x.tar.gz) ([checksum](https://get.helm.sh/helm-v3.7.0-linux-s390x.tar.gz.sha256sum) / 3fca8e8a58a0ef834ca2b7ccc10dfc07dcbb19483166351695737f55e6742d08)
- [Windows amd64](https://get.helm.sh/helm-v3.7.0-windows-amd64.zip) ([checksum](https://get.helm.sh/helm-v3.7.0-windows-amd64.zip.sha256sum) / cf6dd076898e2dc1e7f4af593d011f99a9de353b6a2d019731dbc254a1ec880e)
This release was signed with `967F 8AC5 E221 6F9F 4FD2 70AD 92AA 783C BAAE 8E3B` and can be found at @bacongobbler's [keybase account](https://keybase.io/bacongobbler). Please use the attached signatures for verifying this release using `gpg`.
The [Quickstart Guide](https://helm.sh/docs/intro/quickstart/) will get you going from there. For **upgrade instructions** or detailed installation notes, check the [install guide](https://helm.sh/docs/intro/install/). You can also use a [script to install](https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3) on any system with `bash`.
## What's Next
- 3.7.1 will contain only bug fixes.
- 3.8.0 is the next feature release.
## Changelog
- fix tarFromLocalDir saving file dependencies in dest path eeac83883cb4014fe60267ec6373570374ce770b (Matthew Fisher)
- Fixing issue with non-existant .Template when using tpl function 4a7c306aa9dcbdeecf79c7517851921a21b72e56 (Matt Farina)
- bump version to 3.7 548fae169aa64cbb9efaf1fa4dd62e9adb65701b (Matt Farina)
- Revert moving registry actions back to pkg/ caa97158d04829664486177ec428f62a33f414b9 (Josh Dolitsky)
- Move registry actions back to pkg/ 77750962d5c803857e19032bcb5e1bec0885ba25 (Josh Dolitsky)
- Fix HELM_DRIVER docs for sql option bc1fefa9f33f14521c44e08768c9f9bac3681907 (Ed Carrel)
- Rename newly introduced interface to InterfaceExt 75fe8883ccf1bb43315d973cff377d94fb5a9f11 (Mike Ng)
- Fix encoded path for 'helm dependency build' 58018d121098992121071e83b576700cd4f273e1 (Mathieu Parent)
- Wrap error 101370af3dfe804a5bdb422adcf9e170dab097bc (Stephane Moser)
- Introduce a new interface for WaitForDelete() to avoid breaking backwards compatibility d51a61f9ab4d9e78c11fc0b6662ae6ea16291e66 (Mike Ng)
- feat: add optional boolean '--wait' flag to 'uninstall' command. If set, 'uninstall' command will wait until all the resources are deleted before returning. It will wait for as long as --timeout 655bdcd2fd80557c87674c96117bc4e70c4eb0f6 (Mike Ng)
- improved coalesce readability by getting rid of continue statements 5cf9735a9dec42ceed7db04b551b5c2f8762f3db (Bernd Gutjahr)
- enhanced coelesce_test with some more test cases 1740e7f89b59b44fed8c678b586f3a64083f30a3 (Bernd Gutjahr)
- Fixing issue where helm show all fails to show crds when no readme 0ff53945bf4b1cfc15beaf9d10632baa5b892214 (Matt Farina)
- Updating to Kubernetes 1.22 packages 95276d89a6d5a8591d80331771850baad1132a5e (Matt Farina)
- Add Chart IsRoot test 8fcaf7b85c3fd8f498791e775e6fdda9e7e00f4a (Kai Takac)
- Make Chart's IsRoot available to templates 06ae6f933a22fda6f6246597dfba9be593772e34 (Kai Takac)
- Fix SIGSEGV when job.Spec.Completions is nil 249d1b5fb98541f5fb89ab11019b6060d6b169f1 (lsowen)
- feat(comp): Add descriptions for repo completion e2836ff65b14c5d8712885c3145a9f766425a768 (Marc Khouzam)
- Update github.com/rubenv/sql-migrate b9b340d10833f8dfbfd902f626a640e244984590 (John Howard)
- Update oras-go to v0.4.0 82a2abf51252ba19afae8b1e909d01af79a85db0 (John Howard)
- fix: refactor downloadAll 4b23d0a25b15f990e5de9bc2e1e8cbd80de9243c (Matthew Fisher)
- Implement show crds subcommand fae7853c2aa675af99b7511353a3e9804206dda3 (Mario Valderrama)
- [fix concern] implement test 2131f4cba830dc2910990b629ba12f40de8edd3c (André Schröder)
- [fix concern] use io.ReadAll instead of ioutil.ReadAll 6515ea84e2c20e844fd015ca8a973953c87285bd (André Schröder)
- Add flag for failing if repo update fails ccb0cf63e4778df03251d2866c7b485df3683f79 (Martin Hickey)
- fix(engine): parse fail messages with newlines 79df3926f623e040ae50dd6d84a0bbd985c591af (Cory Snider)
- add unittest 133c227331958155d3654b0c4972003665d56bf2 (yxxhero)
- fix HELM PLUGINS behavior another_way 90fa4c962a16ea0d62f0f9b835760e98ecc33630 (yxxhero)
- Resolve PR comments 4bc901c95f3589b6d6b4b3bc0843347334cd0f68 (Stephane Moser)
- modify registry test to only listen on loopback 82cdb0b7933c6093b66fc057d47168dce52f84ba (Josh Dolitsky)
- Switch to distribution v3 4801818f7c7f03f3083c5205a32706fa14a2e828 (Matthew Fisher)
- feat(comp): Move to Cobra's bash completion V2 efe2638f87b597403f34009e1029a6f0b44db8f2 (Marc Khouzam)
- feat(comp): Add support for powershell completion c6dfb490ab52f704efdb84a4473f28ac2120fcc4 (Marc Khouzam)
- kube client lib bump to v0.21.3 4691ab3b3a68e03043f97dcb5bc3c581ffe8c725 (Shoubhik Bose)
- feat(helm): add --password-stdin to `helm repo add` b14fe2ceadf7778e1e2775c50a93c0c643f8b08c (André Schröder)
- test: Make internal/resolver/resolver_test.go pass on Win 84a07a47746e6f64b83e707b940e2babede836b9 (Víctor Cuadrado Juan)
- Refactor SIGTERM logic c62ce12bed39ded7ccaa2a09de3b3b351bf2d4b7 (Stephane Moser)
- fix(typo): fix typo of storage doc 2deb641efd1af421d4afd28f2ae75a4b10b0870f (longkai)
- feat(pkg/engine): expose subcharts scope in parent 3daaea0a1cc625c2dfe2db4149bc45d39a660cf2 (Valentin Flaux)
- Migrate to oras-go library see https://github.com/deislabs/oras/pull/265 663c5698878c959805de053116581d15673e1ce3 (Nicolas De Loof)
- Revert change in PrintingKubeClient 4026190e7b07ac0596fe36362dc070987d2df4e7 (Stephane Moser)
- Improve tests 7bfb2a3602953b052db85dcb222157a32db9547a (Stephane Moser)
- Rename time dependecy 2164e3f26c37982fb5d0e563bbf920ad9f43201b (Stephane Moser)
- fix(tests): Remove unnecessary test 6a3daaa7aa5b89a150042cadcbe869b477bb62a1 (Marc Khouzam)
- chore(deps): Update to Cobra 1.2.1 95b80ed80b8633813c555e72de6235163eda0227 (Marc Khouzam)
- Reverse DependingChart test logic, add debug logs 30a8ce59861a4d9fc935d8e1dd53664208876621 (Josh Dolitsky)
- Better NewOCIPusher test, add ORAS link 241f23d72a53ee578bfaef84ae26ed86b4b5d6d2 (Josh Dolitsky)
- Clean up extra spaces fc5473f7625156f2dad1b905443d448fa10fb4b3 (jayonlau)
- feat(cmd): Allow to specify which repos to update 6951cd50769d195d13d195956a5a04ac970cba4f (Marc Khouzam)
- Revert "Use official golangci-lint action" 28f44b82691f71220f610bfaa1f544f49253a2bd (Josh Dolitsky)
- Use official golangci-lint action 07a25a26f62e55a6e05a5d701590368c212a4c14 (Josh Dolitsky)
- verify golangci-lint sha256 checksum b16091a01a9c32164a9c9eb3879b8c4933c133d4 (Josh Dolitsky)
- refactor: use os instead of ioutil's ReadDir f9b1445b63a541347dbabfe5f1cda9c4123f1843 (Kally Fox)
- Remove LoginResult/LogoutResult types 8202ccd6998e6bf8aa34c8d9d7527e08d326397b (Josh Dolitsky)
- Use setup-go v2 7605db034de36dc991871c1eb90030f88c484dc0 (Josh Dolitsky)
- Add build-pr github actions workflow 2f63045f259c98187b61b00529895117c05bb02f (Josh Dolitsky)
- feat(linter): check for nested resource-policy annotations 53263c6fb70c2ed9270e8f795f3b00e4e940a8ab (Adam Reese)
- fix(ci-lint): increase timeout for golangci-lint d1da9e757e140268068d32c051ccd88013138096 (Adam Reese)
- fix(doc): fix kube client interface doc. (#9882) cf0c6fed519d48101cd69ce01a355125215ee46f (小龙同学)
- Move locks from global var to the structs c6c4157c43c336a5bbe72b15067e54dfc1362a61 (Stephane Moser)
- Add test for atomic upgrade and install when it is interrupted 660183d65993751d98f92db312ba597a653e4642 (Stephane Moser)
- Add test for Upgrade Release Interrupted 2fa339b25d0a011d82d3ae3af7f64f6b6cc3a83b (Stephane Moser)
- Hande SIGINT in install command 3434053d3841b230df4e8863ac6354369bc440f4 (Stephane Moser)
- Refactor logic d7833eb2b0a3a35b2ac926b4495b2c3ac0dac580 (Stephane Moser)
- Handle SIGTERM 027cea48bf9a14024fc6855ae20aa09c25acb61b (Stephane Moser)
- revert change related to reading prov file 4884ca0059def75e84c5e38dc8a54e79918a8e51 (Josh Dolitsky)
- return errors directly, less lines of code ec84339d44b1766f140be7a8147fd3cd59fb4847 (Josh Dolitsky)
- add checkOCI helper method fc98f2e6a3476e089e2314eef75e110b7a8b95bc (Josh Dolitsky)
- remove hardcoded oci strings, add constant/util 230e37ca522829b6bc8001e2cc0644d5efb6b3c5 (Josh Dolitsky)
- Adding test for user/pass without repo on Helm install 385fcae1ba0c8450bd89795cade5fafa99f4d771 (Matt Farina)
- consolidate registry source files bfa5036a1a5f86129825a1aeb3bed2cd30150531 (Josh Dolitsky)
- return err directly from pusher.Push 4d948b4a060ba2f7cf72d56de2b05ee4cfee1890 (Josh Dolitsky)
- use version.GetUserAgent faf7fc5efd13ea6d1da9cb27768bfe9d837bb45c (Josh Dolitsky)
- do not re-use err 31588e7908b5b19b413c6e039ada8e09763e97e2 (Josh Dolitsky)
- Fix the url being set by WithURL on the getters 4e2e4084edc0fa1e21d6a9a83b3ffdc8c1ec5e01 (Matt Farina)
- Set Helm as manager for managedFields aeb94798f07f52989604255f8af9961fdf0b1162 (Matt Farina)
- refactor(getter): refine http GET request 0d9ebc7885e427373fbdaa95f461b349fb0b1ac1 (longkai)
- modify helm push help text 56028e8d0dc9ea6e879a1156f93e5b6e16f3aa5d (Josh Dolitsky)
- remove tmp path in case it exists 4ed8e770260cd9f6800b86347c1cbe8bf56eacbe (Josh Dolitsky)
- do not update oci-based repos e5b03c73f086a7fb874a1933ef0164961706f74f (Josh Dolitsky)
- provide hint if attempting to push directory e856df8a54cac3eba27f94a3d0fe555ff051e556 (Josh Dolitsky)
- return friendly error if missing scheme 04d2da3637116c0503a5230d7bef4b59f55e2673 (Josh Dolitsky)
- remove action errors assuming CLI 3e17c1a7efe7396b6c9cda5dbdb1a46a759e4b91 (Josh Dolitsky)
- remove the --with-prov option 35fdc688cd4ab03f93fe451b157d4021df2cd224 (Josh Dolitsky)
- move experimental actions to new internal package eba63beab1a76a13c482b574a5824372c63f956b (Josh Dolitsky)
- resolve golint errors 8f60ee76a5b78b406d3f9f304e671ce581c1b8d5 (Josh Dolitsky)
- move pkg/uploader, pkg/pusher to internal 24a216d3b27e1262f184d2606f74e77a0ae3c4ca (Josh Dolitsky)
- inline data fetching for pull result 4073e4d1181851862ee91029a20756f8590326b2 (Josh Dolitsky)
- one-line JSON unmarshall dd7bc40bc42b44de732595acc0c8e6e24729754e (Josh Dolitsky)
- do not wrap single imports/vars 817ac8ff9f67cb2d334a02b358560586d7e36c8c (Josh Dolitsky)
- use TLS client information from repo config when downloading a chart 8232a76aef5dd9671e2b4cdfa0fbca358725fabc (Christophe VILA)
- Ensure RawPath match Path when resolving reference dbb4eb6b759a80384e1962d3a1eea5dac3275920 (Mathieu Parent)
- tweak basic handling 17ed9c4cd3c61290587a22953e5359af5ecccaa2 (Matt Farina)
- Upgrade to oras-go v0.4.0 f7247c40eeca06726265951d0ee6873df3bfe113 (Josh Dolitsky)
- Upgrade to oras-go v0.3.0 866e7e80b655eb522083c36576e7b6c9b27b4fca (Josh Dolitsky)
- Implement changes proposed in HIP 6 00985cad6b1cc60ad2530fd71b94f22a092b491f (Josh Dolitsky)
- Add a more friendly prompt when index.yaml is empty. 20e2aec79365d0ec6c3230a7d0288d9a386bbc6a (yxxhero)
- Fix coalesce globals to prevent subchart globals to leak upstream 3b68afc1c820d456e8281a6e6911af59c4b661c8 (Giacomo Margaria)
- fix(dep update): helm dep update is not respecting the "version" stipulated in the requirements 402c7f1a52eb93dbd78710c8afd6291fd8b0c4c7 (cndoit18)
- Switched Brian emeritus 6e329b19a70f41ee8eee3c8b99109ce6e1b8ac71 (Matt Butcher)
- Improve markdown rendering of commands help for shell completion 61e08c63374406f261c914e667092eb21c13c37b (Alexandre Garnier)
- Move viglesiasce to emeritus 465ab012e72b3418862367cb685d2e574dbd0f2e (Vic Iglesias)
- bump version to v3.6.0 3415b6e7b8660f5bb749c53611227b2c9ef2e397 (Matt Farina)
- Remove link. Align usage example with unit test ac099d6c3ff43bd45c1584a72ce4cd0162ae0e66 (Iaroslav Sheptykin)
- support max-col-width parameters a79cad553964c4bfaeba8a426af277654a20e1a4 (cndoit18)
- Add example of --template usage 892130a08bd97dae52b4301d7892dc172c67ff48 (Iaroslav Sheptykin)
- Add upgrade dependency update test cea906a0de35010a7c9cc9346a563f2460c24cf7 (David Mládek)
- Add --udpate-dependencies to upgrade command d6eab468762e4020b49d1852de5b2df53f194eb5 (David Mládek)
- Update install dependency-update help text 78ac14b9fc8cfd063ceb2be750ecc8aef1828f79 (David Mládek)
- fix v2 install script, hardcode to v2.17.0 74c41179755120516f0f4f16d8dbe0510f2a6eed (Cameron Motevasselani)
- fix helm dep build/update doesn't inherit --insecure-skip-tls-verify from helm repo add f735a240b6fc483b74e324202dad414ee419225e (yxxhero)
- Fixed Test 7a663a56c24f4dd05375a4ece81e6107eb1b0d78 (Marcus Speight)
- Added test for lint mode 8aa42824f9a67a2bbaf81cdb3badb8515204bf9d (Marcus Speight)
- [FIX]error string should not be capitalized 89f2f84a0241422d3c430e2e67c3e4e21fbf4eb8 (Scaat Feng) [FIX]comment should start with whitespace 9020c95fb139944a99632ad5154a4fd5d89032d1 (Scaat Feng)
- [FIX]comment should start with whitespace f1f2e6ff4c4d65d14b1caa809be4257919047049 (Scaat Feng)
- [FIX]comment should start with whitespace 1852694a65a1d64496af06492833b3182032bec6 (Scaat Feng)
- [FIX]error string should not be capitalized 14f6bde04a062da4e5491fdfd9e42263e127534b (Scaat Feng)
- [COMMENT]fix comment 0de89685d428b8af7f1188711f256e7c12703e64 (Scaat Feng)
- [FIX]'rest' collides with imported package name b6bd8d7363cf6ffeb7178526e7284603a6bb4495 (Scaat Feng)
- [FIX]receiver names are different 5c14eec3a39fb2f2cabdd616e9638f15a0946934 (Scaat Feng)
- Fail message is now the same as the required message. Fixed #8973 Helm function 'fail' should not fail when doing 'helm lint' 7a0739a863d36371ed7e57ac5205926c7e574a24 (Marcus Speight)
- Add Test cases for repository-config without file extension ccada716eea605060440788244d528edd29c8a6f (Leon Bentrup)
- Correctly determine repository-config lockfile path f091b9cc01afff97d285775fb4a7cfa899ec1d4d (Leon Bentrup)
- keep existing behavior of returning ErrReleaseNotFound when release(s) failed to decode 3be333b73b8330fada1de60b60264f8fc829c8e1 (Mike Ng)
- fix(sql storage): Query() should return ErrReleaseNotFound immediately when no records are found b86105aebc535541b8a40aefdfc443d434d06106 (Mike Ng)