lablabs / terraform-aws-eks-karpenter

A terraform module to deploy the karpenter on Amazon EKS cluster.
Apache License 2.0
8 stars 3 forks source link

bug: #13

Open promzeus opened 1 week ago

promzeus commented 1 week ago

Summary

# Karpenter Module
module "karpenter" {
  source  = "lablabs/eks-karpenter/aws"
  version = "2.0.0"

  cluster_name                     = var.eks_cluster_name
  cluster_identity_oidc_issuer     = data.aws_eks_cluster.eks.identity[0].oidc[0].issuer
  cluster_identity_oidc_issuer_arn = module.eks.oidc_provider_arn

  crds_helm_chart_version = "0.36.2"
  crds_helm_chart_name    = "karpenter/karpenter"
}

Issue Type

Bug Report

Terraform Version

terraform -version
Terraform v1.6.4
on darwin_arm64
+ provider registry.terraform.io/cloudposse/utils v1.23.0
+ provider registry.terraform.io/gavinbunney/kubectl v1.14.0
+ provider registry.terraform.io/hashicorp/aws v5.55.0
+ provider registry.terraform.io/hashicorp/cloudinit v2.3.4
+ provider registry.terraform.io/hashicorp/helm v2.14.0
+ provider registry.terraform.io/hashicorp/kubernetes v2.31.0
+ provider registry.terraform.io/hashicorp/local v2.5.1
+ provider registry.terraform.io/hashicorp/null v3.2.2
+ provider registry.terraform.io/hashicorp/random v3.6.2
+ provider registry.terraform.io/hashicorp/time v0.11.2
+ provider registry.terraform.io/hashicorp/tls v4.0.5

EKS_CLUSTER = 1.30

Steps to Reproduce

# IAM Role for Karpenter
module "karpenter_irsa" {
  source  = "terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks"
  version = "5.39.1"

  role_name = "karpenter-controller"

  oidc_providers = {
    main = {
      provider_arn               = module.eks.oidc_provider_arn
      namespace_service_accounts = ["karpenter:karpenter"]
    }
  }

  tags = {
    Environment = "stage"
    Terraform   = "true"
  }
}

# Karpenter Module
module "karpenter" {
  source  = "lablabs/eks-karpenter/aws"
  version = "2.0.0"

  cluster_name                     = var.eks_cluster_name
  cluster_identity_oidc_issuer     = data.aws_eks_cluster.eks.identity[0].oidc[0].issuer
  cluster_identity_oidc_issuer_arn = module.eks.oidc_provider_arn

  crds_helm_chart_version = "0.36.2"
  crds_helm_chart_name    = "karpenter/karpenter"

}

Expected Results

in container karpenter-crds-* errors

goroutine 1 [running]:
github.com/samber/lo.must({0x2659660, 0xc00056b820}, {0x0, 0x0, 0x0})
    github.com/samber/lo@v1.39.0/errors.go:53 +0x1e9
github.com/samber/lo.Must0(...)
    github.com/samber/lo@v1.39.0/errors.go:72
sigs.k8s.io/karpenter/pkg/operator/injection.WithOptionsOrDie({0x31804d8, 0xc000396480}, {0xc000490800, 0x2, 0x23bb5a0?})
    sigs.k8s.io/karpenter@v0.35.5/pkg/operator/injection/injection.go:53 +0x138
sigs.k8s.io/karpenter/pkg/operator.NewOperator()
    sigs.k8s.io/karpenter@v0.35.5/pkg/operator/operator.go:106 +0xb7
main.main()
    github.com/aws/karpenter-provider-aws/cmd/controller/main.go:33 +0x25
panic: validating options, missing field, cluster-name

Actual Results

╷
│ Warning: Helm release "karpenter-crds" was created but has a failed status. Use the `helm` command to investigate the error, correct it, then run Terraform again.
│ 
│   with module.karpenter.helm_release.crds[0],
│   on .terraform/modules/karpenter/helm.tf line 5, in resource "helm_release" "crds":
│    5: resource "helm_release" "crds" {
│ 
╵
╷
│ Error: context deadline exceeded
│ 
│   with module.karpenter.helm_release.crds[0],
│   on .terraform/modules/karpenter/helm.tf line 5, in resource "helm_release" "crds":
│    5: resource "helm_release" "crds" {