如何在helm package命令中覆盖Helm Chart名称且不修改Chart.yaml
实现方法
Helm本身没有提供直接覆盖Chart.yaml中name字段的命令行参数,不过可以通过以下两种临时修改的方式实现需求:
方法一:复制临时目录修改后打包
这种方式不会改动原目录的文件,更安全:
- 复制原Helm包目录到临时目录:
cp -r my-package my-package-tmp - 修改临时目录内Chart.yaml的
name字段为xyz:sed -i 's/^name: abc/name: xyz/' my-package-tmp/Chart.yaml - 打包临时目录并指定版本:
helm package --version 11.21 my-package-tmp - 清理临时目录(可选):
rm -rf my-package-tmp
方法二:临时修改原文件后复原
如果不想创建临时目录,可以先备份原文件,修改后打包再恢复:
- 备份原Chart.yaml文件:
cp my-package/Chart.yaml my-package/Chart.yaml.bak - 修改原Chart.yaml的
name字段为xyz:sed -i 's/^name: abc/name: xyz/' my-package/Chart.yaml - 执行打包命令:
helm package --version 11.21 my-package - 恢复原Chart.yaml文件:
mv my-package/Chart.yaml.bak my-package/Chart.yaml
执行完以上任意一种方法后,都会生成xyz-11.21.tgz包文件,上传至仓库后即可通过helm upgrade --install "my-release" "foo/xyz" --version "11.21"命令安装。
内容的提问来源于stack exchange,提问作者Amin Ba
相关产品推荐
相关产品推荐

