Custom launch template
The module creates a custom launch template by default (use_custom_launch_template = true). This ensures settings such as tags, metadata options, and EBS configurations are propagated correctly to the underlying EC2 instances. Many advanced customization options are only available when using a custom launch template.
To use the default template provided by the EKS service instead:
Supported AMI types
Theami_type variable controls which Amazon Machine Image variant nodes use. The default is AL2023_x86_64_STANDARD (starting from Kubernetes 1.30).
Basic configuration
The core sizing variables for a managed node group are:desired_size is ignored after the initial creation to avoid conflicts with external autoscalers. See the eks-desired-size-hack for managing this in Terraform.Examples
- AL2023 (default)
- Bottlerocket
- Custom AMI
- Custom AMI + Bottlerocket
Node repair configuration
EKS managed node groups support automatic node repair. When enabled, EKS monitors node health and replaces nodes that become unhealthy. The module exposes the fullnode_repair_config object:
EFA support
Elastic Fabric Adapter (EFA) enables high-bandwidth, low-latency networking for tightly-coupled distributed workloads such as large-scale ML training. EFA must be enabled at both the cluster level and on each node group that should use it:- The cluster-level
enable_efa_support = trueadds the required EFA ingress/egress rules to the shared node security group. - The node group-level
enable_efa_support = truedoes the following per node group:- Exposes all EFA interfaces supported by the selected instance type on the launch template
- Creates a placement group with
strategy = "clustered"per EFA requirements - Restricts subnets to only availability zones that support the selected instance type
For managed node groups with multiple instance types, the first type in the
instance_types list is used to calculate the number of EFA interfaces. Mixing instance types with different EFA interface counts is not recommended.