直接安装helm
图表(使用 helm 3)或使用helm
提供程序时terraform
,会引发相同的错误,这意味着下载失败,如下所示:
Error: failed to download "https://agones.dev/chart/stable/agones-1.7.0.tgz" (hint: running `helm repo update` may help)
运行 repo update 没有效果,删除缓存、尝试不同的版本、不同版本的 Helm 3 也没有效果。但是,wget
(或类似的)获取图表没有问题,图表的内容看起来正确,甚至可以在作为本地文件而不是远程下载运行时安装。
但是,如果出现类似helm
terraform 中的提供程序需要存储库但不会接受file://
该定义的协议的情况,则不能将其用作解决方法。如何永久修复此问题,以便它再次与 terraform 一起“正常工作”?
答案1
这里的错误很难调试,但直接安装失败的事实允许通过在命令中Terraform
添加标志来获取更多信息:--debug
helm --debug install agones https://agones.dev/chart/stable/agones-1.7.0.tgz -n agones-system
现在错误更加详细,原因也变得明显:
Error: no cached repo found. (try 'helm repo update'): open ~/.cache/helm/repository/local-index.yaml: no such file or directory
~/.config/helm/repositories.yaml
缺少定义的本地缓存。 造成这种情况的可能原因是helm
v2 升级到 v3 或初始 repo 配置中存在错误,可以通过创建以下文件来修复:
cp ~/.helm/repository/local/index.yaml ~/.cache/helm/repository/local-index.yaml
一旦文件被复制,所有的 helm 操作都应该恢复正常。如果你因为某种原因没有该文件的副本,那么很容易从头开始创建,下面是我的文件内容:
apiVersion: v1
entries: {}
generated: "2020-07-14T18:21:24.471657624+01:00"
只需使用适当的时间戳手动创建文件,错误就会消失。
注意:这最初是回答这里(也是我做的),添加到 ServerFault 以帮助发现