发布日期: 2026-03-11
版本号: v4.1.3

Helm v4.1.3 是一个补丁版本,建议用户升级以获得最佳体验。由于发布自动化问题,此前没有发布 4.1.2 版本。社区持续增长,用户可以通过 Kubernetes Slack 频道参与讨论、参加公开开发者会议,并在 ArtifactHub 上测试和贡献图表。

本次更新主要修复了多项重要错误,包括:--dry-run=server 未正确处理 generateName 的问题、空 CRD 资源导致崩溃的问题、带有标签和摘要的 OCI 引用出现“无效字节”错误、用户提供的 nil 值在图表无默认值时未被保留、从使用索引的 OCI 仓库拉取图表失败的回归问题、YAML 文档分隔符后空格修剪导致的文件损坏、FailedStatus 过早终止升级的问题,以及安装命令中已弃用 --atomic 标志的兼容性问题。此外,SDK 层面修复了 Windows 并发下载时的权限错误、等待器日志缺失、服务端应用默认值与 CLI 不一致以及 Go 导入问题。

安装包已提供适用于 MacOS、Linux 和 Windows 多个平台的二进制文件及对应校验和,并可通过 GPG 签名进行验证。未来的版本计划包括 4.2.0 和 3.21.0 次要版本(2026 年 5 月 13 日发布),以及 4.1.4 和 3.20.2 补丁版本(2026 年 4 月 8 日发布)。

更新内容 (中文)

Helm v4.1.3 是一个补丁版本。建议用户升级以获得最佳体验。

请注意,由于发布自动化问题,未发布 4.1.2 版本。

社区正在壮大,我们期待您的加入!

  • 加入 Kubernetes Slack 的讨论:
    • 用于提问和休闲交流
    • 用于讨论 PR、代码和 bug
  • 参加公开开发者电话会议:每周四太平洋时间 9:30,通过 Zoom 参与
  • 测试、调试和贡献图表:ArtifactHub/packages

重要变更

  • 修复了 --dry-run=server 未遵循 generateName 的问题 #31563
  • 修复了空 CRD 资源导致崩溃的问题。现在会打印错误信息 #31578
  • 修复了带有标签+摘要的 OCI 引用因 “invalid byte” 错误而失败的问题 #31601
  • 修复了当图表具有空映射或某个键没有默认值时,用户提供的 nil 值未被保留的问题 #31644
  • 修复了自 Helm 3.18.0 以来的回归问题,即从使用索引在同一标签下存储容器镜像和 Helm 图表的 OCI 仓库拉取图表失败 #31776
  • 修复了 Helm 4 中的一个回归问题,即 YAML 文档分隔符后直接出现的 Go 模板空白修剪(在 postrendering 后存在时)导致 YAML 文件损坏 #31868
  • 修复了一个 bug,其中 FailedStatus 被视为终止状态,导致在集群自动伸缩器需要时间预配节点或滚动更新期间删除 Pod 时升级过早失败 #31897
  • 修复了 install 命令上已弃用的 --atomic 标志的向后兼容性问题 #31901
  • SDK:修复了 Windows 上多个进程同时尝试下载相同图表版本时出现的 “Access Denied” 错误 #31128
  • SDK:修复了用户未从 waiter 收到任何日志的问题,导致几分钟内没有任何用户反馈而产生困惑 #31717
  • SDK:修复了服务端应用默认值并不总是与 CLI 默认值匹配的问题 #31732
  • SDK:修复了下游工具尝试 vendor helm.sh/helm/v4/pkg/kube 时的 Go 导入问题 #31852

安装与升级

下载 Helm v4.1.3。常用平台二进制文件如下:

此版本使用 208D D36E D5BB 3745 A167 43A4 C7C6 FBB5 B91C 1155 签名,可在 @scottrigby 的 keybase 账户 找到。请使用附带的签名通过 gpg 验证此版本。

快速入门指南将引导您入门。有关升级说明或详细的安装说明,请查阅安装指南。您也可以在任何带有 bash 的系统上使用安装脚本进行安装。

下一步计划

  • 4.2.0 和 3.21.0 是下一个次要版本,将于 2026 年 5 月 13 日发布
  • 4.1.4 和 3.20.2 是下一个补丁版本,将于 2026 年 4 月 8 日发布

变更日志

  • chore(defaults): 服务端应用 SDK 默认值应始终匹配 CLI 默认值 c94d381b03be117e7e57908edbf642104e00eb8f (Matheus Pimenta)
  • 空白字符处理 b36d660fb7a5a162d59dcc7877af190b477ecf2b (Austin Abro)
  • 与 waiter 一起使用日志记录器 04a91af89e185fb2ff08592057726d54fdd22471 (Austin Abro)
  • 从 coalesce_test.go 中移除重构更改 c3c57dba9878074a7642f2cdf583e809bba7f96e (Evans Mungai)
  • 修复导入 d47cb2b7efaa26090510f4c2289127f40451062e (Evans Mungai)
  • 更新 pkg/chart/common/util/coalesce_test.go 790bf929d5d341df663e0219338fcbf0d5a3119b (Evans Mungai)
  • 修复警告 f7cec12e23fe800495814432da4368b54c6d4552 (Evans Mungai)
  • 在图表中保留 nil 值 d94a5c97cbff6b8e857c578ac7fd29407aa60907 (Evans Mungai)
  • fix(values): 当图表默认值为空映射时保留 nil 值 8c5fe4ef9781c714dc121288a4d499e62cc10bf8 (Evans Mungai)
  • chore(deps): 将 github.com/cloudflare/circl 从 1.6.1 升级到 1.6.3 217db28a4b75bff615275dc1e3975cf4d389c1d9 (dependabot[bot])
  • 恢复 install 命令上的 –atomic 标志 7cb43e0c58d8ccf18ca54eadb8d8d6cfb14c06f7 (Travis Leeden)
  • fix: 为 GO-2026-4394 将 go.opentelemetry.io/otel/sdk 升级到 v1.40.0 5b26d4f1f99091262fef50ed51133e7ae8e3b011 (Terry Howe)
  • fix: 将 fluxcd/cli-utils 升级到 v0.37.2-flux.1 360c1315ba2d468fcff77193f52764c6ad912c90 (Terry Howe)
  • chore(deps): 将 sigs.k8s.io/kustomize/kyaml 从 0.21.0 升级到 0.21.1 69a0a92ae3025cb00b480cb1084670d84b9fa018 (dependabot[bot])
  • fix: 在模板修剪粘合到内容的文档分隔符后插入换行符 b868e6a7cce696744d3f0c87e3f6bba6a779aff3 (Matheus Pimenta)
  • fix: 修正 statuswait.go 中的导入注释,从 v3 到 v4 dbfbea91e34220911481f82fc6831284d954959a (rohansood10)
  • chore(deps): 更新 k8s-io 组,包含 7 个更新 099192c285233653032e13f557e1b4a7c31e046b (dependabot[bot])
  • 添加图像索引测试 4967ead76215e2ea694c37164d14520da9ba8bde (Pedro Tôrres)
  • 修复从 OCI 索引拉取图表的问题 2fe6b106e6d515b6792d53aff517489ae97387be (Pedro Tôrres)
  • fix: 处理图表下载器中的 OCI 摘要算法前缀 (#31601) e3e2d01ef45c6e4179d0536ea4a475f18fa23846 (Evans Mungai)
  • fix(install): 检查 restClientGetter 的 nil 并修复测试 c15e7114dc0a0f24e0fda65dff83e7a18e264f60 (Manuel Alonso)
  • chore(refactor): 用于安装 CRD 的更好测试和功能 df82e68ce1cac6825a59ed43d68d7560d6426979 (Manuel Alonso)
  • fix(test): 修复测试并检查 restclient 的 nil 4b896ca82fa827760086998d6521965e0ace059f (Manuel Alonso)
  • fix(test): 正确合并修复 3fc79399c8af02b6704c10cba14be2ced9497cb2 (Manuel Alonso Gonzalez)
  • fix(install): 添加更多测试并检查 nil 文件数据 6017d2b470b07a4f55efd2c55ac0745203ddcd0b (Manuel Alonso)
  • fix(test): 不检查空资源 f451967ab5a5a9b1a26deb699bd1a1f4f2ba6b1e (Manuel Alonso)
  • fix(install): 检查长度和文件 nil,添加测试 fdadff59eb8c3552de76c7647a9c787c248cdbd2 (Manuel Alonso)
  • fix(action): CRD 资源可以为空 10d606726560f1e813617c050c7b9cfbb8b0cb26 (Manuel Alonso)
  • fix: 修复大小写问题 0fec40f9b61a1dc5799e67bd4fb4ea4321cdd836 (Mujib Ahasan)
  • fix: 正确处理错误 263749874cb21ba31ebca17fe6c19fb3d0379417 (Mujib Ahasan)
  • fix: 添加文档字符串 961d7d7cd6b39ccc3a63bce7bba505b94a9be384 (Mujib Ahasan)
  • update: 为辅助函数 validateNameAndGenerateName 添加测试覆盖 29e45067f3f5a772c1400eb756605ba3bc615176 (Mujib Ahasan)
  • update: 为业务逻辑添加辅助函数 d55b0b9022017aa7a5005d1c6bdc049872bc37f7 (Mujib Ahasan)
  • 逻辑中也考虑 generateName c1c090e8cead42ee16c36f987f2534c543b556fc (Mujib Ahasan)
  • update: 遵循业务逻辑以跳过缺少名称的对象 5e093136f456232f0c80c4d2481e5191b3c72530 (Mujib Ahasan)
  • fixed: –dry-run=server 现在遵循 generateName f289d1605c9f02c843dd1b5dd03221fdb980f28e (Mujib Ahasan)
  • fix(downloader): 在 Windows 上安全处理并发文件写入 bfac7393e4cc8b22a36fb015264d10ddb30e03da (Orgad Shaneh)

更新内容 (原始)

Helm v4.1.3 is a patch release. Users are encouraged to upgrade for the best experience.

Note there was no 4.1.2 release due to a release automation issue.

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

  • Fixed a bug where –dry-run=server was not respecting generateName #31563
  • Fixed a bug where empty CRD resources caused a crash. Now it prints an error #31578
  • Fixed a bug where OCI references with tag+digest failed with “invalid byte” error #31601
  • Fixed a bug where user-provided nil value was not preserved when chart has an empty map or no default for a key #31644
  • Fixed a regression since Helm 3.18.0 where Pulling charts from OCI repositories that use an index to store both Container Images and Helm Charts under the same tag failed #31776
  • Fixed a Helm 4 regression where gotemplate white space trimming directly after YAML doc separators, when present after postrendering, caused YAML file corruption #31868
  • Fixed a bug where FailedStatus is treated as a terminal state, causing upgrades to fail prematurely when cluster autoscalers needed time to provision nodes, or when pods were being deleted during rolling updates #31897
  • Fixed broken backwards compatibility for deprecated --atomic flag on install command #31901
  • SDK: Fixed a Windows ‘Access Deined’ error if multiple processes try to download the same chart version concurrently #31128
  • SDK: Fixed a bug where users did not receive any logs from the waiter, causing confusion as several minutes could pass with no user feedback #31717
  • SDK: Fixed a bug where server-side apply defaults did not always match the CLI defaults #31732
  • SDK: Fixed a Go import issue when downstream tooling attempted to vendor helm.sh/helm/v4/pkg/kube #31852

Installation and Upgrading

Download Helm v4.1.3. The common platform binaries are here:

This release was signed with 208D D36E D5BB 3745 A167 43A4 C7C6 FBB5 B91C 1155 and can be found at @scottrigby keybase account. 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.0 and 3.21.0 are the next minor releases and will be on May 13, 2026
  • 4.1.4 and 3.20.2 are the next patch releases and will be on April 8, 2026

Changelog

  • chore(defaults): server-side apply SDK defaults should always match the CLI defaults c94d381b03be117e7e57908edbf642104e00eb8f (Matheus Pimenta)
  • whitespace b36d660fb7a5a162d59dcc7877af190b477ecf2b (Austin Abro)
  • use logger with waiter 04a91af89e185fb2ff08592057726d54fdd22471 (Austin Abro)
  • Remove refactorring changes from coalesce_test.go c3c57dba9878074a7642f2cdf583e809bba7f96e (Evans Mungai)
  • Fix import d47cb2b7efaa26090510f4c2289127f40451062e (Evans Mungai)
  • Update pkg/chart/common/util/coalesce_test.go 790bf929d5d341df663e0219338fcbf0d5a3119b (Evans Mungai)
  • Fix lint warning f7cec12e23fe800495814432da4368b54c6d4552 (Evans Mungai)
  • Preserve nil values in chart already d94a5c97cbff6b8e857c578ac7fd29407aa60907 (Evans Mungai)
  • fix(values): preserve nil values when chart default is empty map 8c5fe4ef9781c714dc121288a4d499e62cc10bf8 (Evans Mungai)
  • chore(deps): bump github.com/cloudflare/circl from 1.6.1 to 1.6.3 217db28a4b75bff615275dc1e3975cf4d389c1d9 (dependabot[bot])
  • Restored –atomic flag on install command 7cb43e0c58d8ccf18ca54eadb8d8d6cfb14c06f7 (Travis Leeden)
  • fix: bump go.opentelemetry.io/otel/sdk to v1.40.0 for GO-2026-4394 5b26d4f1f99091262fef50ed51133e7ae8e3b011 (Terry Howe)
  • fix: bump fluxcd/cli-utils to v0.37.2-flux.1 360c1315ba2d468fcff77193f52764c6ad912c90 (Terry Howe)
  • chore(deps): bump sigs.k8s.io/kustomize/kyaml from 0.21.0 to 0.21.1 69a0a92ae3025cb00b480cb1084670d84b9fa018 (dependabot[bot])
  • fix: insert newline after doc separators glued to content by template trimming b868e6a7cce696744d3f0c87e3f6bba6a779aff3 (Matheus Pimenta)
  • fix: correct import comment in statuswait.go from v3 to v4 dbfbea91e34220911481f82fc6831284d954959a (rohansood10)
  • chore(deps): bump the k8s-io group with 7 updates 099192c285233653032e13f557e1b4a7c31e046b (dependabot[bot])
  • add image index test 4967ead76215e2ea694c37164d14520da9ba8bde (Pedro Tôrres)
  • fix pulling charts from OCI indices 2fe6b106e6d515b6792d53aff517489ae97387be (Pedro Tôrres)
  • fix: handle OCI digest algorithm prefix in chart downloader (#31601) e3e2d01ef45c6e4179d0536ea4a475f18fa23846 (Evans Mungai)
  • fix(install): check nil for restClientGetter and fix tests c15e7114dc0a0f24e0fda65dff83e7a18e264f60 (Manuel Alonso)
  • chore(refactor): better testing and functionality for installing crd df82e68ce1cac6825a59ed43d68d7560d6426979 (Manuel Alonso)
  • fix(test): fix tests and check nil for restclient 4b896ca82fa827760086998d6521965e0ace059f (Manuel Alonso)
  • fix(test): merge fix correctly 3fc79399c8af02b6704c10cba14be2ced9497cb2 (Manuel Alonso Gonzalez)
  • fix(install): add more tests and check nil file data 6017d2b470b07a4f55efd2c55ac0745203ddcd0b (Manuel Alonso)
  • fix(test): no check empty resources f451967ab5a5a9b1a26deb699bd1a1f4f2ba6b1e (Manuel Alonso)
  • fix(install): check lenght and file nil, add tests fdadff59eb8c3552de76c7647a9c787c248cdbd2 (Manuel Alonso)
  • fix(action): crd resources can be empty 10d606726560f1e813617c050c7b9cfbb8b0cb26 (Manuel Alonso)
  • fix: casing issue fixed 0fec40f9b61a1dc5799e67bd4fb4ea4321cdd836 (Mujib Ahasan)
  • fix: error handled correctly 263749874cb21ba31ebca17fe6c19fb3d0379417 (Mujib Ahasan)
  • fix: doc string added 961d7d7cd6b39ccc3a63bce7bba505b94a9be384 (Mujib Ahasan)
  • update: test coverage added for helper function validateNameAndGenerateName 29e45067f3f5a772c1400eb756605ba3bc615176 (Mujib Ahasan)
  • update: helper function added for the business logic d55b0b9022017aa7a5005d1c6bdc049872bc37f7 (Mujib Ahasan)
  • generateName is also considered in logic c1c090e8cead42ee16c36f987f2534c543b556fc (Mujib Ahasan)
  • update: business logic respected for skipping object missing name 5e093136f456232f0c80c4d2481e5191b3c72530 (Mujib Ahasan)
  • fixed: –dry-run=server now respect generateName f289d1605c9f02c843dd1b5dd03221fdb980f28e (Mujib Ahasan)
  • fix(downloader): safely handle concurrent file writes on Windows bfac7393e4cc8b22a36fb015264d10ddb30e03da (Orgad Shaneh)

下载链接