能否使用SSH协议的Git仓库URL拉取Helm Chart?
解决Helm通过SSH拉取Git仓库中Chart的问题
Helm的--repo参数只支持HTTP/HTTPS协议的标准Helm仓库(需包含index.yaml索引文件),直接用ssh://作为仓库URL会触发协议不支持的错误。无需手动克隆仓库,直接通过SSH拉取Git中Chart的方法如下:
方式1:直接拉取Git仓库内的Chart
使用git+ssh://前缀的URL,配合--path参数指定Chart在仓库中的存储路径(若Chart位于仓库根目录,该参数可省略):
helm pull git+ssh://git@ssh.dev.azure.com/v3/MyOrg/MyProject/MyRepo \ --path=MyChart \ --version 0.0.1 \ --destination /tmp/xyz
该命令会自动借助本地已配置的SSH密钥克隆目标Git仓库,定位到指定版本和路径的Chart包,直接拉取到目标目录。
方式2:将Git仓库添加为Helm仓库(Helm 3.8及以上版本支持)
先把Git仓库注册为Helm的仓库源,之后即可像操作普通Helm仓库一样拉取Chart:
# 添加Git仓库作为Helm源,指定Chart所在路径 helm repo add my-chart-repo git+ssh://git@ssh.dev.azure.com/v3/MyOrg/MyProject/MyRepo --chart-path=MyChart # 更新仓库索引 helm repo update # 拉取指定版本的Chart helm pull my-chart-repo/MyChart --version 0.0.1 --destination /tmp/xyz
两种方法都依赖你本地Git的SSH配置正常(你已能通过git clone访问仓库,满足前提条件),Helm会调用Git完成SSH认证和仓库拉取,无需额外配置。
内容的提问来源于stack exchange,提问作者mark
相关产品推荐
相关产品推荐

