Build EKS managed node group configurations with scaling, instance types, taints, labels, and update policies.
Build EKS managed node group configurations with scaling, instance types, taints, labels, and update policies.
Required Fields
ClusterNameNodegroupNameNodeRoleSubnetsScalingConfigOutput will appear here...Build an EKS managed node group with autoscaling bounds, mixed instance type fallback for capacity availability, and an UpdateConfig controlling how aggressively nodes roll during an upgrade. UpdateConfig accepts either MaxUnavailable (an absolute node count) or MaxUnavailablePercentage, not both meaningfully together, specifying both in the same config is accepted by the API but only one actually takes effect (the percentage-based one takes precedence when both are present), a subtlety that trips up teams who think they're layering two complementary controls.
The API accepts both fields being present, but only the percentage-based setting takes precedence when both are specified, the absolute MaxUnavailable value is effectively ignored in that case. If you intend to control update pace with an absolute node count, set only MaxUnavailable and leave MaxUnavailablePercentage unset, don't assume they combine or complement each other.
No, it means EKS uses the list as a fallback/diversification pool for the underlying Auto Scaling Group's capacity strategy, it's not a cost-optimization preference ordering. If minimizing cost across the listed types matters, that requires additional Auto Scaling Group allocation strategy configuration beyond just listing instance types here, the node group builder's InstanceTypes list alone doesn't guarantee lowest-cost selection.
Changing Taints on a node group definition doesn't retroactively apply to already-running nodes and their scheduled pods, existing nodes keep their original taint state until they're replaced (through a node group update, scaling event, or manual replacement). A taint change is effectively forward-looking for new nodes unless you force a rolling replacement of the existing ones.
The builder validates that ClusterName, NodegroupName, NodeRole, Subnets, and ScalingConfig all resolve before accepting the JSON as a valid CreateNodegroup request, the fields EKS needs to attach a node group to a cluster with an IAM role, network placement, and scaling bounds; it can't verify the referenced NodeRole has the required EKS worker node IAM policies attached, that's checked only against the live IAM role.
Don't set both MaxUnavailable and MaxUnavailablePercentage expecting them to layer, only the percentage value takes effect when both are present, pick one control mechanism deliberately rather than setting both defensively.
A taint change on an existing node group doesn't retroactively affect already-running nodes, if you need the new taint enforced immediately, that requires actively cycling the node group's existing nodes, not just updating the node group definition.
Mixing SPOT and ON_DEMAND capacity types within the same node group isn't how CapacityType works, it's an all-or-nothing setting per node group, if a workload needs a mix of spot and guaranteed capacity, that requires two separate node groups with pod scheduling (via node selectors/taints) directing workloads to the appropriate one.
Was this tool helpful?
Disclaimer: This tool runs entirely in your browser. No data is sent to our servers. Always verify outputs before using them in production. AWS, Azure, and GCP are trademarks of their respective owners.