โ ๏ธ Breaking Change
Impact Score: 7/10
Helm v3.9.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
_Note, the Helm SDK exposes the `Factory` interface from kubectl as part of the Helm `kube` package. Kubernetes does not follow semantic versioning and minor releases make breaking changes. Helm 3.9.0 updated its use of Kubernetes packages and that included a breaking change to `Factory`, as defined by [the Go stance on interfaces](https://go.dev/blog/module-compatibility). As this is a Kubernetes API, Helm is unable to include it in its compatibility guarantee._
โก Executive Summary (TL;DR)
Helm v3.9.0. Source highlight: Helm v3.9.0 is a feature release. This release, we focused on <insert focal point>. 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)
- _Note, the Helm SDK exposes the `Factory` interface from kubectl as part of the Helm `kube` package. Kubernetes does not follow semantic versioning and minor releases make breaking changes. Helm 3.9.0 updated its use of Kubernetes packages and that included a breaking change to `Factory`, as defined by [the Go stance on interfaces](https://go.dev/blog/module-compatibility). As this is a Kubernetes API, Helm is unable to include it in its compatibility guarantee._
โจ New Features & Capabilities (6)
- Added a `--quiet` flag to `helm lint`
- Added a `--post-renderer-args` flag to support arguments being passed to the post renderer
- Added more checks during the signing process
- Updated to add Kubernetes 1.24 support
- 3.10.0 is the next feature release and will be released on September 14, 2022
- Added sabre1041 as project maintainer 97718e942284d0f7d86a5de760b948a03633b111 (Andrew Block)
๐ง Bug Fixes & Patches (6)
- for discussing PRs, code, and bugs
- Test, debug, and contribute charts: ArtifactHub/packages
- 3.9.1 will contain only bug fixes and will be released on June 8, 2022
- Fix --untardir reference in --destination description 41ccf7b5aba9677573952ba4b4a47be5f0170525 (Simon Alling)
- fix(helm): update golang.org/x/crypto to latest 5105899a86c78630d8cd507c266f8d86c4ea1524 (Colleen Murphy)
- Fix confusing test failure message 56e52d139c27b43397c567ecc31aea1ce0e73b5d (Simon Alling)
๐ View Raw Release Notes (Original Developer Log)
Helm v3.9.0 is a feature release. This release, we focused on <insert focal point>. 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
- Added a `--quiet` flag to `helm lint`
- Added a `--post-renderer-args` flag to support arguments being passed to the post renderer
- Added more checks during the signing process
- Updated to add Kubernetes 1.24 support
_Note, the Helm SDK exposes the `Factory` interface from kubectl as part of the Helm `kube` package. Kubernetes does not follow semantic versioning and minor releases make breaking changes. Helm 3.9.0 updated its use of Kubernetes packages and that included a breaking change to `Factory`, as defined by [the Go stance on interfaces](https://go.dev/blog/module-compatibility). As this is a Kubernetes API, Helm is unable to include it in its compatibility guarantee._
## Installation and Upgrading
Download Helm v3.9.0. The common platform binaries are here:
- [MacOS amd64](https://get.helm.sh/helm-v3.9.0-darwin-amd64.tar.gz) ([checksum](https://get.helm.sh/helm-v3.9.0-darwin-amd64.tar.gz.sha256sum) / 7e5a2f2a6696acf278ea17401ade5c35430e2caa57f67d4aa99c607edcc08f5e)
- [MacOS arm64](https://get.helm.sh/helm-v3.9.0-darwin-arm64.tar.gz) ([checksum](https://get.helm.sh/helm-v3.9.0-darwin-arm64.tar.gz.sha256sum) / 22cf080ded5dd71ec15d33c13586ace9b6002e97518a76df628e67ecedd5aa70)
- [Linux amd64](https://get.helm.sh/helm-v3.9.0-linux-amd64.tar.gz) ([checksum](https://get.helm.sh/helm-v3.9.0-linux-amd64.tar.gz.sha256sum) / 1484ffb0c7a608d8069470f48b88d729e88c41a1b6602f145231e8ea7b43b50a)
- [Linux arm](https://get.helm.sh/helm-v3.9.0-linux-arm.tar.gz) ([checksum](https://get.helm.sh/helm-v3.9.0-linux-arm.tar.gz.sha256sum) / bcdc6c68dacfabeeb6963dc2e6761e2e87026ffd9ea1cde266ee36841e7c6e6a)
- [Linux arm64](https://get.helm.sh/helm-v3.9.0-linux-arm64.tar.gz) ([checksum](https://get.helm.sh/helm-v3.9.0-linux-arm64.tar.gz.sha256sum) / 5c0aa709c5aaeedd190907d70f9012052c1eea7dff94bffe941b879a33873947)
- [Linux i386](https://get.helm.sh/helm-v3.9.0-linux-386.tar.gz) ([checksum](https://get.helm.sh/helm-v3.9.0-linux-386.tar.gz.sha256sum) / 8cff2929a8c422382a87371f241a9e8353d05c6c4f7a20bdda09610d632e742d)
- [Linux ppc64le](https://get.helm.sh/helm-v3.9.0-linux-ppc64le.tar.gz) ([checksum](https://get.helm.sh/helm-v3.9.0-linux-ppc64le.tar.gz.sha256sum) / 527eb823164fc1f474b053bb8c4e1f82f6100f1379f73de7d94ebdc7305d428f)
- [Linux s390x](https://get.helm.sh/helm-v3.9.0-linux-s390x.tar.gz) ([checksum](https://get.helm.sh/helm-v3.9.0-linux-s390x.tar.gz.sha256sum) / 7ef59dde7d02f1b7940080907c0b08aebf94da2d91c0ae0a9c9cf144ed6b84a4)
- [Windows amd64](https://get.helm.sh/helm-v3.9.0-windows-amd64.zip) ([checksum](https://get.helm.sh/helm-v3.9.0-windows-amd64.zip.sha256sum) / 631d333bce5f2274c00af753d54bb62886cdb17a958d2aff698c196612c9e8cb)
This release was signed with `672C 657B E06B 4B30 969C 4A57 4614 49C2 5E36 B98E ` and can be found at @mattfarina [keybase account](https://keybase.io/mattfarina). 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.9.1 will contain only bug fixes and will be released on June 8, 2022
- 3.10.0 is the next feature release and will be released on September 14, 2022
## Changelog
- bump version to v3.9.0 7ceeda6c585217a19a1131663d8cd1f7d641b2a7 (Matt Farina)
- Bump k8s packages from 0.23.6 to 0.24.0 bd7c97f786f59b993dc34884f3d44ca0297f13e8 (Andrew Seigner)
- Fix --untardir reference in --destination description 41ccf7b5aba9677573952ba4b4a47be5f0170525 (Simon Alling)
- Added sabre1041 as project maintainer 97718e942284d0f7d86a5de760b948a03633b111 (Andrew Block)
- Updating symlink log message 2e6b5e13746bf62f69b310d5e6338ca56ec7e313 (Matt Farina)
- Bumping Kubernetes package version to 0.23.6 3013c48cdad319749bbff5cf814d73e2c202af15 (Martin Hickey)
- fix(helm): update golang.org/x/crypto to latest 5105899a86c78630d8cd507c266f8d86c4ea1524 (Colleen Murphy)
- Bump github.com/docker/docker 08b5feb145139bd15120dbeff4afff2d84ba4c62 (dependabot[bot])
- Bump github.com/containerd/containerd from 1.6.1 to 1.6.3 3543d14c344b3d049cf0f4a94d6893b6d974f463 (dependabot[bot])
- replace +build with go:build 2878cc8079e6591f5f0a2a7eb5dbac2839effb4e (Matthew Fisher)
- Bump oras.land/oras-go from 1.1.0 to 1.1.1 6eee0de7cc8198d2ab65fa2ab8b973fb9c1e7c4a (dependabot[bot])
- Fix confusing test failure message 56e52d139c27b43397c567ecc31aea1ce0e73b5d (Simon Alling)
- Populate Capabilities.HelmVersion during install 82a2a2e85ccd9f83455b211ac2a7c7c887ffb9bd (Graham Reed)
- Bumping Kubernetes package versions a87ab07aed75d872e82268f09d2ca4cbb070c8ca (Matt Farina)
- Fixing downloader plugin error handling 06c39c80793156c2928da4f5a68d0e7b30199572 (Zoran Krleza)
- Updating vcs to latest version 3490f1e7b6d76709b7ea195370f7db463735f9e2 (Matt Farina)
- fix: "... has no deployed releases" error when release history contains only failed releases and history limit reached da8e7d25329f9539cf034588d5638099fd69fda9 (Timofey Kirillov)
- Bump github.com/stretchr/testify from 1.7.0 to 1.7.1 9380e211aa86d3ce86afd8868d335cb4a91c050f (dependabot[bot])
- Bump github.com/spf13/cobra from 1.3.0 to 1.4.0 2cf845424a2340943a1aab10435db0d5119facf2 (dependabot[bot])
- repo: fix repo merge unit test 7a08426869abd4c0bcfe09081c337bdb2bab909a (Markus Lehtonen)
- fix: run 'go mod tidy' for go 1.17 45af381aa4890a1306d56c5b5082390eb3bb248e (Theo Chupp)
- dummy change to trigger CI 4448042723763cd43f68572b6da23f671837c89d (Theo Chupp)
- Bump github.com/docker/docker 5886c28b8b80dc3d4c7360d42dfca55dcb3fe07a (dependabot[bot])
- Updating Kubernetes libs to 0.23.4 (latest) 743280721007c9178c076a6382fee32b781f70f9 (Matt Farina)
- maint: fix syntax error in deploy.sh 75fa221b75326f7ef1815281534b4887dc122c9e (Josh Dolitsky)
- linting issue fixed cfeb431e3c52d59f2bd1853f66bab042f208e989 (Sourik Ghosh)
- only apply overwrite if version is canary 9c064f9cf49dce0e439cbc99ed77db970d12abec (Sourik Ghosh)
- overwrite flag added to az storage blob upload-batch 9a784bbc412fbd2d7ce3d3ebb39f20adf349f43a (Sourik Ghosh)
- Dont modify provided transport cab1fc87d4ba117e1519cf913df1671a04416e08 (Matthias Fehr)
- Pass http getter as pointer in tests 7d22040e666c5c76a1588a9fcbda7265ed8d6d81 (Matthias Fehr)
- Add docs block 2acda0cc5b4b9a6136ae185b22f6abe20a8c94cb (Matthias Fehr)
- Add transport option and tests 45367ca9bfa5385e993dc695928db96f37c67598 (Matthias Fehr)
- Upgrade rubenv/sql-migrate df2c916692e07c1f4eb638a5eda61a023b4a6e22 (Shubham Sharma)
- test: use `T.TempDir` to create temporary test directory 2e3e22a0033cc6d3833d6d3e84353c1aecb06dc6 (Eng Zer Jun)
- Add IngressClass to manifests to be (un)installed 0361dc85689e3a6d802c444e2540c92cb5842bc9 (stephanECD)
- Avoid querying for OCI tags can explicit version provided in chart dependencies 01ff5bb00de47709f3c386b28077141df4d1032a (Andrew Block)
- Updating Kubernetes packages to 1.23.3 5213891bb13356b374a5a6bd1e782271365c0f65 (Martin Hickey)
- fix: remove deadcode e97c436a8679fa8d5b62e8582249faf0c79e170f (Tomas Pizarro Moreno)
- fix: helm package tests 0963617b9b0100f8b84cde0037be02abe9628b23 (Tomas Pizarro Moreno)
- fix: helm package with dependency update for charts with OCI dependencies e02aeab0e9babe9b16f31362746b5e70790f6e7f (Tomas Pizarro Moreno)
- Set go version to 1.17 to match CI 850da3826556de990511c163c6e64fc374e50a56 (Samuel Maftoul)
- fix: support empty args with --post-renderer-args 1a7a73b47bd1b0475422211dbacd0d22c99e2394 (guofutan)
- fix: fix args name in postrender/exec_test.go and error if order in postRendererArgsSlice 04e79e936d59d953339cc5b283327bb4b6a64f2d (guofutan)
- fix: change postRendererArgs to Slice Type and use args... d12170b3f20f287268283f2809da751a14f2d743 (guofutan)
- fix: keep the API: postrender.NewExec and Add NewExecWithArgs 44423fb2ca59547968b1028427b5ea0c3176d5a8 (guofutan)
- fix: keep the API: postrender.NewExec and Add NewExecWithArgs 1aab7eb3a1046731d55c14b302bd35fcc4da1140 (guofutan)
- fea(#10511): add --post-renderer-args to support assign args to PostRenderer exec 46222c5c00e34aa61610d6c1b2d9ca50f829d309 (guofutan)
- feat(*): add --quiet flag to 'helm lint' 383086d39742c7cff548e8a42b0e7881676557a2 (Piotr Resztak)
- Handle Hungarian notation issue 9975d625252e2efd2d1760417d70c9bc00103c92 (Martin Hickey)
- Replace golint with revive f0fd37d2c50f947ce056e14372a3952e83251b04 (Martin Hickey)
- Make repo_add.go only replace the last suffix in the path when generating a lockfile 8b1c28427fb77c08aec8f5335faa457175e45b55 (Guy Bolton King)
- Make repo_add_test.go fail by inserted .yaml into path 4367fe0c1e4350187b455e6fc7f54ed989244557 (Guy Bolton King)
- Add extra directories to path used in repo_add_test.go ad6b4fe2104e78092fa02d8ce7b3ea51f68cb506 (Guy Bolton King)
- feat(comp): Shell completion for OCI c7e1f9b04606574b2f0d93d34e22efb06847ad08 (Marc Khouzam)
- Limits need to call tag API when explicit version specified 0677a156bc129e206e591a8b645a7065dcb09f84 (Andrew Block)
- refactor: use `os.ReadDir` for lightweight directory reading e12f3570b51fcb07fa9db01cac1740ae4aed25e7 (Eng Zer Jun)
- Reuse http transport aa33f4fdd8ddb1f180df627fa699bb23c930f4c3 (Matthias Fehr)
- Management of bearer tokens for tag listing c8a2559236ff814e57b6a2f6076a2646f5bad130 (Andrew Block)
- bump version to v3.8.0 0c8320b685880ddf99f564f9e3ae7616eedf0cec (Matt Farina)
- chore(deps): bump github.com/BurntSushi/toml from 0.4.1 to 1.0.0 583c4acbcf4d05b16f1b84d16a489512447abad1 (dependabot[bot])
- Fix typo Unset the env var before func return in Unit Test 141f2dd501a93ffdb29f2550239a1fc460db9987 (Kay Yan)
- Fix install memory/goroutine leak 5059ae843ef6b504fe55f914953e249a14ff5838 (Neven Miculinic)
- add legal name check 679e14cd215b38cf4d5c33a8cbb8a9c0c7675d83 (root)
- Honor --dependency-update flag in upgrade command 797a8cd5244d93b84bd8a8148f43e26fdc5384a6 (Andrew Block)
- Remove AssertGoldenBytes test helper dd5db7bc40679d82e00977d12d67aed617b1376d (Simon Alling)
- Remove runTestActionCmd and use runTestCmd instead 0f15b01dfb87da35c068d4ddfc2e98511c5bfd53 (Simon Alling)
- fix(rollback): fix helm rollback doesn't have meta.helm.sh annotations 94dc605968758a63067eceb4978d2347194d2c5b (cndoit18)
- add more error checks during the signing process 0ab44aef702f41b812692e4b3ff5f465dfc7e891 (Ashley Davis)
- Simplify testdata charts 752aa6d4623aa193cb0e72059db69014a69d23e2 (Aram Zegerius)
- Simplify testdata charts 3fd4a11b1876c9af5c84bb2da67c1115608cf00e (Aram Zegerius)
- Make validation errors easier to fix 65ec3d6fd6e88f100216edbde789ed8417d1a87f (Damien Nozay)
- fix tarFromLocalDir saving file dependencies in dest path adfb52eda508b80a854da34dd7978d480d46e345 (Matthew Fisher)
- Add tests for multi-level dependencies. 4b49f356a956b8abd3d546b19cb5c5a34ec20159 (Aram Zegerius)
- Fix value precedence c4952c9c8c5fce29635b9795b6070f616a31615c (Aram Zegerius)