hashicorp / terraform-provider-kubernetes

Terraform Kubernetes provider
https://www.terraform.io/docs/providers/kubernetes/
Mozilla Public License 2.0
1.56k stars 963 forks source link

crash when set multi env config in manifest #2516

Open nnsay opened 2 weeks ago

nnsay commented 2 weeks ago

Terraform Version, Provider Version and Kubernetes Version

Terraform version: v1.5.7
Kubernetes provider version: v2.30.0
Kubernetes version: v1.29.2

Affected Resource(s)

Terraform Configuration Files

terraform {
  backend "local" {}
  required_providers {
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = "2.30.0"
    }
  }
}

provider "kubernetes" {
  config_path = "~/.kube/config"
}

resource "kubernetes_manifest" "demo_service" {
  manifest = {
    "apiVersion" = "serving.knative.dev/v1"
    "kind"       = "Service"
    "metadata" = {
      "labels" = {
        "networking.knative.dev/visibility" = "cluster-local"
      }
      "name"      = "busybox-service"
      "namespace" = "default"
    }
    "spec" = {
      "template" = {
        "metadata" = {
          "annotations" = {
            "autoscaling.knative.dev/target" = "10"
          }
          "labels" = {
            "app" = "busybox-service"
          }
        }
        "spec" = {
          "containerConcurrency" = 10
          "containers" = [
            {
              "env" = [
                {
                  "name" = "WEATHERFILE_S3"
                  "valueFrom" = {
                    "secretKeyRef" = {
                      "key"  = "WEATHER_FILES_S3"
                      "name" = "bucket-name"
                    }
                  }
                },
                {
                  "name" = "PROJECT_REPORT_S3"
                  "valueFrom" = {
                    "secretKeyRef" = {
                      "key"  = "PROJECT_REPORT_DATA_S3"
                      "name" = "bucket-name"
                    }
                  }
                }
              ]
              "image" = "busybox:latest"
              "name"  = "busybox"
              "ports" = [
                {
                  "containerPort" = 3000
                }
              ]
              "readinessProbe" = {
                "httpGet" = {
                  "path" = "/health"
                  "port" = 3000
                }
                "initialDelaySeconds" = 3
              }
            }
          ]
        }
      }
    }
  }
}

Debug Output

https://gist.github.com/nnsay/56673a736926f51960e0d0f537798a34

Panic Output

https://gist.github.com/nnsay/6cb8f990444703b1709547be0fea9d6f

Steps to Reproduce

terraform plan

Expected Behavior

output the new resource should be created

Actual Behavior

error and crash

Important Factoids

if only set the one env item, the plan command is ok.

References

no

Community Note

g-sponda commented 1 week ago

I got the same crash and error, when also using kubernetes_manifest resource. The crash is also happening on version 2.31.0

The temporary solution that worked for me, it was downgrading to 2.29.