如何在私有Git仓库或AWS ECR/OCI注册表托管并访问Helm库图表?
关于Helm库图表托管与导入的解决方案
一、用AWS ECR/OCI注册表托管(完全匹配你的需求)
完全支持你想要的Chart.yaml配置格式,和Bitnami的用法一致:
dependencies: - name: common version: 1.x.x repository: oci://<你的AWS ECR地址>
操作流程如下:
- 先打包库图表:
helm package mylibchart - 登录AWS ECR:
aws ecr get-login-password --region <你的区域> | helm registry login --username AWS --password-stdin <你的ECR registry地址> - 推送打包后的图表:
helm push mylibchart-1.0.0.tgz oci://<你的ECR仓库地址>
之后其他依赖图表只要配置好认证(比如在CI/CD流程中注入AWS凭证),就能正常拉取该库图表并使用其中的模板。
二、用私有Git仓库托管(你更倾向的方式)
Helm支持直接将Git仓库作为依赖源,无论仓库是公开还是私有,库图表同样适用,配置方式如下:
dependencies: - name: common version: 1.x.x repository: git+https://<你的私有Git仓库地址>.git#<分支名/tag/提交哈希>
私有仓库的认证处理:
- HTTPS方式:可在URL中嵌入用户名和访问令牌(不建议明文编写,推荐用环境变量或CI密钥管理工具存储),格式为
git+https://<用户名>:<访问令牌>@<仓库地址>.git#<版本标识> - SSH方式:确保本地或CI环境配置了对应的SSH密钥,URL写为
git+ssh://git@<仓库地址>.git#<版本标识>
这种方式无需提前打包图表,但建议用tag指定版本,方便管理迭代。
三、额外说明
你之前使用的本地file://方式虽能减少重复,但跨仓库复用较为繁琐。上面两种方案都能实现单一库图表供所有依赖仓库导入的目标,完全符合DRY原则。且无论采用哪种方式,库图表的模板写法和本地使用时完全一致,依赖图表只需通过{{ include "<库图表名>/<模板名>" . }}即可引用。
内容的提问来源于stack exchange,提问作者Mo0rBy
相关产品推荐
相关产品推荐

