使用Terraform helm_release报错找不到chart但helm CLI运行正常
报错原因
你混淆了本地helm CLI的引用规则和Terraform helm_release 资源的参数规则:
- 本地helm CLI已经提前将
https://kubernetes-sigs.github.io/external-dns添加为名为external-dns的仓库,所以引用该仓库下的chart时,可以使用[仓库名]/[chart名]的格式external-dns/external-dns - 但在Terraform的
helm_release资源中,你已经通过repository字段直接指定了仓库地址,此时chart字段只需要填写chart本身的名称即可,不需要额外加仓库名前缀。你填写的external-dns/external-dns会被provider识别为「在指定的仓库根路径下查找external-dns子目录中的external-dnschart」,自然找不到匹配的资源。
解决方案
直接修改helm_release资源的chart参数,去掉前缀即可,修改后的配置如下:
resource "helm_release" "external-dns" { name = "external-dns" repository = "https://kubernetes-sigs.github.io/external-dns" chart = "external-dns" # 去掉仓库名前缀,只保留chart名称 namespace = "default" values = [ file("charts/external-dns.yaml") ] depends_on = [kubernetes_secret.cloudflare-api] }
修改后重新执行terraform plan和terraform apply即可正常拉取chart部署。
内容的提问来源于stack exchange,提问作者holms
相关产品推荐
相关产品推荐

