如何将Helm Provenance文件推送至AWS ECR?解决推送报错
解决AWS ECR推送Helm Provenance文件的问题
问题根源
Helm的push命令仅针对Helm Chart归档包(.tgz格式)设计,它会自动验证文件是否为gzip压缩包。而Provenance文件(.prov)是纯文本签名文件,不符合该命令的验证逻辑,因此触发报错。
解决方案:使用oras推送Provenance文件
AWS ECR是标准OCI仓库,可通过oras(通用OCI artifact推送工具)推送Provenance这类非Chart的OCI artifacts,具体步骤如下:
安装oras工具
- macOS:通过Homebrew安装:
brew install oras - 其他系统:下载对应系统的二进制文件并添加至系统PATH即可
- macOS:通过Homebrew安装:
登录AWS ECR仓库
执行AWS CLI命令获取登录凭证,完成oras登录:aws ecr get-login-password --region <region> | oras login --username AWS --password-stdin <account_id>.dkr.ecr.<region>.amazonaws.com推送Provenance文件到ECR
推送时需指定Provenance文件的OCI artifact类型(application/vnd.cncf.helm.provenance.v1+txt),建议设置与Chart版本关联的标签以便识别:oras push <account_id>.dkr.ecr.<region>.amazonaws.com/mychart:0.1.0-prov mychart-0.1.0.tgz.prov --artifact-type application/vnd.cncf.helm.provenance.v1+txt验证推送结果
拉取文件确认推送成功:oras pull <account_id>.dkr.ecr.<region>.amazonaws.com/mychart:0.1.0-prov
额外说明
- 若要让Provenance文件与对应Chart版本强关联,可使用与Chart相同的版本标签,OCI仓库允许同一标签下存在多种类型的artifact,拉取时需指定对应类型即可。
- 后续拉取Provenance文件仍需使用
oras pull命令,Helm CLI暂不支持直接拉取单独的Provenance文件。
内容的提问来源于stack exchange,提问作者unbox-us
相关产品推荐
相关产品推荐

