eksctl supports control plane component configuration
Introduced 2026-08-14 · score 0.98
HOW TO USE IT
When creating an EKS cluster with selected control plane settings, set the corresponding optional component fields in the ClusterConfig file; omitted fields use EKS defaults. To update an existing cluster, set at least one component field and run the update command; only components present in the file are updated.
eksctl create cluster -f control-plane-component-config.yamleksctl utils update-control-plane-component-config -f control-plane-component-config.yamlWHY THIS HELPS
Create or update an EKS cluster with selected kube-apiserver, kube-scheduler, or kube-controller-manager settings.
REQUIREMENTS AND LIMITATIONS
- Version: v0.230.0
- -f control-plane-component-config.yaml (required): Path to the ClusterConfig file. Required for the update command.
- kubeAPIServerConfig: Optional kube-apiserver configuration. Documented sub-keys: eventTTL (event retention duration) and serviceNodePortRange, with required minPort and maxPort port numbers. These component fields are independently optional, not documented as mutually exclusive.
- kubeSchedulerConfig: Optional kube-scheduler configuration. Documented sub-key nodeResourcesFit.scoringStrategy: type accepts LeastAllocated or MostAllocated; resources is a list of resources considered, each with a relative weight. These component fields are independently optional, not documented as mutually exclusive.
- kubeControllerManagerConfig: Optional kube-controller-manager configuration. Documented sub-key horizontalPodAutoscalerControllerConfig.horizontalPodAutoscalerSyncPeriod (duration string; configurable only on provisioned control plane scaling tiers, fixed at default on Standard tier), and podGCControllerConfig.terminatedPodGCThreshold (threshold; configurable only on provisioned control plane scaling tiers, fixed at default on Standard tier). These component fields are independently optional, not documented as mutually exclusive.
- Each component field is optional; EKS applies its default for omitted fields when creating a cluster.
- Updating an existing cluster requires a config file with at least one of `kubeAPIServerConfig`, `kubeSchedulerConfig`, or `kubeControllerManagerConfig`.
- Only components present in the update file are updated; omitted components are left unchanged.
- Docs conflict: The current official documentation includes podGCControllerConfig.terminatedPodGCThreshold, absent from the supplied v0.230.0 release-note evidence; it also says Standard tier fixes this setting at the default. Do not treat this as evidence that the v0.230.0 feature supported that key.
FIRST-PARTY EVIDENCE
- https://github.com/eksctl-io/eksctl/releases/tag/v0.230.0
- https://github.com/eksctl-io/eksctl/pull/8821
- https://eksctl.io/usage/control-plane-component-config/
Check the installed version and the source before using it. Entry JSON