terraformkubernetes-helmterraform-provider-kubernetes

index.yaml : 404 Not Found


I want to run Helm chart from Terraform script. I tried this:

terraform {
  required_providers {
    kubernetes = {
      source = "hashicorp/kubernetes"
      
      source = "hashicorp/kubernetes"
      version = "2.13.1"
    }
    kubectl = {
      source = "gavinbunney/kubectl"
      version = "1.14.0"
    }
    helm = {
      source = "hashicorp/helm"
      version = "2.6.0"
    }
  }
}

provider "kubectl" {
  # run kubectl cluster-info to get expoint and port
  host = "https://192.168.1.139:6443/"
  token = "eyJhbG......."
  insecure = "true"
}

provider "kubernetes" {
  # run kubectl cluster-info to get expoint and port
  host = "https://192.168.1.139:6443/"
  token = "eyJhb...."
  insecure = "true"
}

resource "kubernetes_namespace" "example" {
  metadata {
    annotations = {
      name = "example-annotation"
    }

    labels = {
      mylabel = "label-value"
    }

    name = "terraform-example-namespace"
  }
}

resource "helm_release" "spring-helm-stg" {
  name       = "spring-helm-stg"
  repository = "https://github.com/rcbandit111/terraform_helm_chart_poc/tree/main/helm/spring-helm-stg"
  chart      = "spring-helm-stg"

}

Full code: https://github.com/rcbandit111/terraform_helm_chart_poc

helm_release.spring-helm-stg: Creating...
╷
│ Error: could not download chart: looks like "https://github.com/rcbandit111/terraform_helm_chart_poc/tree/main/helm/spring-helm-stg" is not a valid chart repository or cannot be reached: failed to fetch https://github.com/rcbandit111/terraform_helm_chart_poc/tree/main/helm/spring-helm-stg/index.yaml : 404 Not Found
│
│   with helm_release.spring-helm-stg,
│   on main.tf line 48, in resource "helm_release" "spring-helm-stg":
│   48: resource "helm_release" "spring-helm-stg" {

I created the helm chart using this command: helm create spring-helm-stg But there is no file index.yaml

Full helm chart code: https://github.com/rcbandit111/terraform_helm_chart_poc/tree/main/helm/spring-helm-stg

Do you know how I can fix this?


Solution

  • First: your repository url is https://github.com/rcbandit111/terraform_helm_chart_poc (and NOT https://github.com/rcbandit111/terraform_helm_chart_poc/tree/main/helm/spring-helm-stg)

    After fixing that, you should then place the index.yaml file at root level (instead of helm directory) and also - make it a valid one. That's also "kind of" important.

    Because your repository is filled with sub-directories, lots of index files and seems pretty messed-up (it's OK to make experiments... it's also OK to delete irrelevant parts) you may consider rearranging everything in a new branch and merge it to master OR create a new better-organized repository.

    RESPECT to @marko for the documentation link in the comment. Please use that when you are writing your repository's index file

    Cheers