Terraform EKS Karpenter submodule
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]
- Karpenter,
karpenter.sh, provisioners.karpenter.sh
, Karpenter releases, best practices,karpenter.sh/capacity-type, karpenter.sh/discovery
,kind: Provisioner, kind: AWSNodeTemplate
,kubectl provisioner
,TopologyKey, FailedDraining, Evict, DisruptionBlocked
, Karpenter logs,controller., ttlSecondsUntilExpired
, KEDA, NodePools, Kind: NodePool, Workload Consolidation, Disruption controls - Terraform EKS Karpenter submodule
Advertising: