Search code examples
terraformkubernetes-helm

Terraform: helm chart not found in repo but work in cli


I've got this problem when using terraform helm_release provider:

Error: chart "external-dns/external-dns" not found in https://kubernetes-sigs.github.io/external-dns repository

While it works with helm:

helm NAME                               CHART VERSION   APP VERSION     DESCRIPTION                                       
center/bitnami/external-dns     4.5.5           0.7.6           ExternalDNS is a Kubernetes addon that configur...
center/stable/external-dns      2.20.4          0.7.0           DEPRECATED ExternalDNS is a Kubernetes addon th...
external-dns/external-dns       1.3.2           0.10.0          ExternalDNS synchronizes exposed Kubernetes Ser...
stable/external-dns             2.20.4          0.7.0           DEPRECATED ExternalDNS is a Kubernetes addon th...
holms@debian:~/Dev/contracts/setupad/devops-sdk/terraform/stag/post-infra$ helm repo list
NAME            URL                                           
elastic         https://helm.elastic.co                       
stable          https://charts.helm.sh/stable                 
ingress-nginx   https://kubernetes.github.io/ingress-nginx    
center          https://repo.chartcenter.io                   
external-dns    https://kubernetes-sigs.github.io/external-dns

The terraform script:

resource "helm_release" "external-dns" {
  name       = "external-dns"
  repository = "https://kubernetes-sigs.github.io/external-dns"
  chart      = "external-dns/external-dns"
  namespace  = "default"

  values = [
    file("charts/external-dns.yaml")
  ]
  depends_on = [kubernetes_secret.cloudflare-api]


external-dns.yaml:

---
provider: "cloudflare"
domainFilter: "setupad.net"
extraArgs:
    - --cloudflare-proxied
env:
    - name: "CF_API_KEY"
      valueFrom:
        secretKeyRef:
            name: cloudflare-api
            key: token

Solution

  • Change it to external-dns rather than external-dns/external-dns.

    resource "helm_release" "external-dns" {
      name       = "external-dns"
      repository = "https://kubernetes-sigs.github.io/external-dns"
      chart      = "external-dns"
      namespace  = "default"
    
      values = [
        file("charts/external-dns.yaml")
      ]
      depends_on = [kubernetes_secret.cloudflare-api]
    }