You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Helm v3.7推送Chart时如何指定目标仓库名称

Helm 3.7+ 推送Chart到ACR自定义仓库名方案

核心结论

不需要修改源码中Chart.yaml的name字段,通过Helm原生命令参数即可实现自定义推送的仓库名称,完全兼容3.7版本引入破坏性变更前的旧推送路径逻辑,不会在ACR中生成多余子目录。


方案1:直接推送本地Chart目录(最简便,无需提前打包)

旧版本实验性OCI命令转正后,helm push原生支持直接推送本地Chart目录,只要在OCI目标路径末尾直接指定你需要的自定义仓库名,Helm会直接使用该路径作为最终制品存储位置,不会读取Chart.yaml中的name生成额外目录。
Pipeline配置示例:

- script: |
    helm push ./Chart oci://$(ACR_NAME).azurecr.io/helm/storage-api \
      --version $(BUILD_VERSION) \
      --app-version $(BUILD_VERSION)
  displayName: push new chart to ACR

注意:路径末尾不要多加斜杠,必须把目标仓库名storage-api直接作为OCI地址的最后一段。


方案2:提前打包tgz场景(适用于需要留存包、做签名/扫描的流程)

如果你的流程必须先生成tgz安装包,直接在helm package命令中加--name参数即可覆盖包内的Chart名称,不需要修改源码中的Chart.yaml文件,打包完成后正常推送即可。
Pipeline配置示例:

- script: |
    helm package ./Chart \
      --name storage-api \
      --app-version $(BUILD_VERSION) \
      --version $(BUILD_VERSION)
  displayName: package chart with custom repo name

- script: |
    helm push storage-api-$(BUILD_VERSION).tgz oci://$(ACR_NAME).azurecr.io/helm/
  displayName: push packaged chart to ACR

避坑说明

  • 如果OCI推送路径只写到helm/层级(末尾斜杠后无自定义名称),Helm会默认读取Chart元数据中的name字段作为仓库名,就会出现仓库名自动变成storage-chart的问题。
  • 两种方案都不会修改源码仓库里的原有Chart配置,对现有业务逻辑无侵入。

内容的提问来源于stack exchange,提问作者DaveVentura

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 09:51:47