Skip to content

(eks): Add Provisioned Control Plane support to Cluster L2 construct #36650

@yasomaru

Description

@yasomaru

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

No one assigned

    Labels

    @aws-cdk/aws-eksRelated to Amazon Elastic Kubernetes Serviceeffort/mediumMedium work item – several days of effortfeature-requestA feature should be added or improved.p2

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions