如何使用tar命令正确打包Helm Chart?
失败原因
你自行打包失败主要有两个核心原因:
- 文件名不符合Helm规范:Helm要求Chart压缩包的命名必须严格遵循
[Chart名称]-[版本号].tgz的格式,其中Chart名称要和Chart.yaml中的name字段完全一致,版本号要和Chart.yaml中的version字段完全一致。你打包后命名为test.tgz缺少版本号,Helm无法正常识别。 - 压缩包包含多余元数据文件:如果你是在macOS环境下执行tar命令,默认会把系统生成的
.DS_Store、._开头的扩展属性文件打入压缩包,这类文件不属于Helm Chart的标准结构,会导致解析失败。普通diff命令默认不展示隐藏文件,所以你会误认为解压后内容完全一致。
正确tar打包方法
按照以下步骤执行即可生成符合要求的Chart包:
- 首先进入你的
testChart目录的上级目录,避免打包时出现多余的父目录层级 - 执行tar命令时排除多余的系统隐藏文件,同时按规范命名输出的压缩包,示例命令如下:
# 注意替换命令中的版本号为你Chart.yaml中实际的version字段值 tar --exclude='._*' --exclude='.DS_Store' --exclude='.git' --exclude='.github' -zcf test-0.1.0.tgz test/
- 打包完成后可以执行
helm lint test-0.1.0.tgz验证包的合法性,校验通过后即可正常执行helm install操作。
验证校验方法
你可以执行tar tf test-0.1.0.tgz查看压缩包内的文件结构,需满足以下要求:
- 顶层目录为你的Chart名称(即
test/) - 第二层直接存在
Chart.yaml文件,无多余嵌套层级 - 无多余的系统隐藏文件或非Chart相关文件
内容的提问来源于stack exchange,提问作者Jing Wang
相关产品推荐
相关产品推荐

