图表安装(或通过 terraform 进行 helm_release)总是导致“无法下载“

图表安装(或通过 terraform 进行 helm_release)总是导致“无法下载“

直接安装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(或类似的)获取图表没有问题,图表的内容看起来正确,甚至可以在作为本地文件而不是远程下载运行时安装。

但是,如果出现类似helmterraform 中的提供程序需要存储库但不会接受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缺少定义的本地缓存。 造成这种情况的可能原因是helmv2 升级到 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 以帮助发现

相关内容