Helm使用--repo参数指定仓库时从非目标地址拉取Chart的问题
Helm3 --repo参数不生效问题排查与解决
根本原因
- 你执行的命令中第二个参数为纯chart名称
grafana,无仓库前缀,当本地缓存中存在过对应chart的历史索引记录时,部分版本的Helm会优先匹配缓存中的旧仓库地址,不会使用--repo参数指定的地址。 - 该问题和Helm小版本的行为差异有关:你同事的环境大概率为3.7及以下版本,Helm 3.8+版本调整了
--repo参数的优先级逻辑,本地存在同名chart的索引缓存时会忽略--repo指定的地址。 - 你本地虽然已经删除了grafana仓库,但
~/.cache/helm/目录下还残留了旧的grafana索引文件,所以会跳转至github的旧release地址拉取资源。
无需修改现有脚本的解决方案
- 第一步清理本地Helm全量缓存,执行命令:
helm3 cache clean --all
- 缓存清理完成后直接执行原命令即可正常运行,无需手动添加grafana仓库。
- 如果清理缓存后仍然失效,可以在原命令中追加
--force-update参数强制拉取指定仓库的最新索引:
helm3 upgrade --install grafana grafana --dry-run --repo https://grafana.github.io/helm-charts --wait --force-update
补充说明
如果该问题在你的环境中偶发,可以在原有脚本执行前统一增加缓存清理逻辑,不会影响脚本原有功能的正常运行。
内容的提问来源于stack exchange,提问作者ErnieAndBert
相关产品推荐
相关产品推荐

