无法执行helm dependency build时,如何从远程仓库安装Helm依赖?
helm dependency build时安装Helm Chart依赖的方案 直接在安装/升级时自动拉取依赖
Helm支持在执行helm install或helm upgrade时,自动从指定仓库拉取缺失的依赖,不需要提前执行dependency build。只需要加上--repo指定依赖仓库,再配合--dependency-update参数即可。示例命令:helm install my-app ./my-chart --repo https://charts.bitnami.com/bitnami --dependency-update这个参数会让Helm在安装过程中自动检查并拉取
Chart.yaml中声明的依赖,完全替代dependency build的作用。预打包依赖到Chart目录
如果你能在自动化流程之外(比如本地开发阶段或CI的前置准备步骤)执行一次helm dependency build,可以把下载好的依赖Chart包放到主Chart的charts/目录下,然后将整个包含依赖的Chart目录作为制品提交或存储。后续自动化流程直接使用这个完整的Chart目录安装,就不需要再远程拉取依赖了。注意要保证Chart.yaml里的依赖版本和本地打包的一致,避免版本冲突。手动拉取依赖并放入指定目录
不用dependency build,可以单独拉取每个依赖Chart,解压后放到主Chart的charts/目录下。比如依赖bitnami的redis,执行命令:helm pull bitnami/redis --version 17.11.0 --untar --untardir ./my-chart/charts这样主Chart安装时会直接读取本地
charts/里的依赖,不需要再从远程仓库获取。用
helm dependency update替代build
如果自动化流程允许执行仓库配置和dependency update命令,可以先添加依赖仓库,再执行update来拉取依赖。示例命令:helm repo add bitnami https://charts.bitnami.com/bitnami helm dependency update ./my-chartdependency update会根据Chart.yaml更新requirements.lock并拉取对应版本的依赖,效果和build类似,只是会优先遵循锁文件的版本,适合需要版本管控的场景。
内容的提问来源于stack exchange,提问作者raghu_manne

