-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Open
Labels
@aws-cdk/aws-eksRelated to Amazon Elastic Kubernetes ServiceRelated to Amazon Elastic Kubernetes Serviceeffort/mediumMedium work item – several days of effortMedium work item – several days of effortfeature-requestA feature should be added or improved.A feature should be added or improved.p2
Description
Describe the feature
Add support for EKS Provisioned Control Plane to the EKS Cluster L2 construct by exposing the controlPlaneScalingConfig property.
EKS Provisioned Control Plane allows cluster administrators to select from a set of scaling tiers (XL, 2XL, 4XL) to ensure high and predictable performance for demanding workloads such as
- AI training/inference
- High-performance computing
- Large-scale data processing jobs
- Disaster recovery scenarios
Use Case
Currently, users who need Provisioned Control Plane must use the L1 CfnCluster construct or escape hatches. This makes the feature harder to discover and use with other L2 features like managed node groups, Fargate profiles, and Helm charts.
// Current workaround (L1)
const cfnCluster = new eks.CfnCluster(this, 'Cluster', {
// ... other props
controlPlaneScalingConfig: {
tier: 'tier-xl',
},
});
// Desired (L2)
const cluster = new eks.Cluster(this, 'Cluster', {
version: eks.KubernetesVersion.V1_31,
controlPlaneScalingTier: eks.ControlPlaneScalingTier.TIER_XL,
// ... can use all L2 features
});
### Proposed Solution
1. Add ControlPlaneScalingTier enum with values:
- STANDARD (default)
- TIER_XL
- TIER_2XL
- TIER_4XL
2. Add controlPlaneScalingTier property to ClusterOptions interface
3. Pass the configuration to the underlying ClusterResource
```ts
/**
* Control plane scaling tier for EKS Provisioned Control Plane.
* @see https://docs.aws.amazon.com/eks/latest/userguide/eks-provisioned-control-plane.html
*/
export enum ControlPlaneScalingTier {
/** Standard control plane (default, no additional cost) */
STANDARD = 'standard',
/** Extra-large provisioned tier */
TIER_XL = 'tier-xl',
/** 2x extra-large provisioned tier */
TIER_2XL = 'tier-2xl',
/** 4x extra-large provisioned tier */
TIER_4XL = 'tier-4xl',
}
export interface ClusterOptions extends CommonClusterOptions {
/**
* The control plane scaling tier for EKS Provisioned Control Plane.
*
* Provisioned Control Plane allows you to select a scaling tier to ensure
* high and predictable performance for demanding workloads.
*
* @default - Standard control plane (no provisioned tier)
* @see https://docs.aws.amazon.com/eks/latest/userguide/eks-provisioned-control-plane.html
*/
readonly controlPlaneScalingTier?: ControlPlaneScalingTier;
}Other Information
- L1 Support: Already available via CfnCluster.controlPlaneScalingConfig
- CloudFormation: AWS::EKS::Cluster ControlPlaneScalingConfig.Tier property
Acknowledgements
- I may be able to implement this feature request
- This feature might incur a breaking change
AWS CDK Library version (aws-cdk-lib)
2.x
AWS CDK CLI version
2.x
Environment details (OS name and version, etc.)
all
Metadata
Metadata
Assignees
Labels
@aws-cdk/aws-eksRelated to Amazon Elastic Kubernetes ServiceRelated to Amazon Elastic Kubernetes Serviceeffort/mediumMedium work item – several days of effortMedium work item – several days of effortfeature-requestA feature should be added or improved.A feature should be added or improved.p2