Terraform EKS Karpenter submodule

From wikieduonline
Jump to navigation Jump to search

2025[edit]

https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/examples/karpenter/main.tf

module "karpenter" {
 source = "../../modules/karpenter"

 cluster_name          = module.eks.cluster_name
 enable_v1_permissions = true

 # Name needs to match role name passed to the EC2NodeClass
 node_iam_role_use_name_prefix   = false
 node_iam_role_name              = local.name
 create_pod_identity_association = true

 # Used to attach additional IAM policies to the Karpenter node IAM role
 node_iam_role_additional_policies = {
   AmazonSSMManagedInstanceCore = "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore"
 }

 tags = local.tags
}

2023 Karpenter official example using Node Groups[edit]

module "karpenter" {
  source = "terraform-aws-modules/eks/aws//modules/karpenter" 

  cluster_name = module.eks.cluster_name

  irsa_oidc_provider_arn          = module.eks.oidc_provider_arn
  irsa_namespace_service_accounts = ["karpenter:karpenter"]
 
  create_iam_role = false
  iam_role_arn    = module.eks.eks_managed_node_groups["initial"].iam_role_arn 

  tags = { 
    Environment = "dev"
    Terraform   = "true"
  }
}
module "eks" {
  source = "terraform-aws-modules/eks" 

  # Shown just for connection between cluster and Karpenter sub-module below
  eks_managed_node_groups = {
    initial = {
      instance_types = ["t3.medium"] 

      min_size     = 1
      max_size     = 3
      desired_size = 1
    }
  }
  ...
}

Related[edit]

See also[edit]

Advertising: