Skip to content

Support advanced Kubernetes control plane configuration - #2368

Open
ranyhb wants to merge 3 commits into
pulumi:masterfrom
ranyhb:ranyhb/eks-control-plane-config
Open

Support advanced Kubernetes control plane configuration#2368
ranyhb wants to merge 3 commits into
pulumi:masterfrom
ranyhb:ranyhb/eks-control-plane-config

Conversation

@ranyhb

@ranyhb ranyhb commented Aug 26, 2026

Copy link
Copy Markdown

Proposed changes

Adds kubeSchedulerConfig, kubeApiServerConfig and kubeControllerManagerConfig to eks.Cluster, passed straight through to aws.eks.Cluster. This exposes AWS's advanced Kubernetes control plane configuration to clusters created through this component.

All three are optional with no default, so leaving them unset sends nothing and AWS's own defaults apply — no change for existing users. I followed upgradePolicy (#1787) file-for-file, including exposing them on ClusterResult.

These types only exist in @pulumi/aws 7.42.0+, so this bumps nodejs/eks from 7.25.0 to 7.43.0 (and sdk/go.mod to match, or the Go SDK doesn't compile). That bump surfaces 7 pre-existing type errors in nodegroup.ts, because optional list and string inputs are now typed Input<T | undefined> rather than Input<T> | undefined. This is the same breakage currently blocking #2209, so this PR should unblock that too. I fixed them by widening the affected signatures and guarding the resolved values rather than casting, so runtime behaviour is unchanged — with one deliberate exception, called out in its own commit: in getRecommendedAMI, version now falls back with version ?? clusterVersion. Previously an args.version that resolved to undefined was passed straight into ssmParameterName, producing a malformed SSM parameter path.

Regenerating the schema also flips 57 /aws/v7.14.0 refs to v7.43.0. That's pre-existing drift the regen picks up, purely mechanical.

The example sets kubeSchedulerConfig only. kubeControllerManagerConfig requires EKS Provisioned Control Plane, so it would fail on the test cluster.

Split into three commits — the nodegroup.ts type fixes, the dependency bump, then the feature plus regenerated schema and SDKs — in case you'd rather take them separately.

Verified locally: tsc clean, 417/417 unit tests with snapshots, make build_nodejs, go build ./go/..., make provider and the provider tests. dotnet, java and python SDKs are regenerated but I can't build those here. I did not run the integration tests, since they create real EKS clusters.

One thing to watch: regenerating the nodejs SDK on my machine rewrites the sdk/nodejs/types/*.ts imports from ../utilities to ./utilities, which doesn't compile. I reproduced that on an unmodified master, so it isn't coming from this change, and I reverted those files (along with sdk/java/settings.gradle and the version stamp in build.gradle) to keep the diff to what this change actually needs. If build_sdk (nodejs) disagrees, take CI's version of those files.

Related issues

Fixes #2367

ranyhb added 3 commits August 26, 2026 14:44
Optional list and string inputs are now typed Input<T | undefined> rather than
Input<T> | undefined, so the surrounding signatures no longer accept them. Widen
the affected signatures and guard the resolved values instead of casting.

The one behaviour change is in getRecommendedAMI: version now falls back with
`version ?? clusterVersion`. Previously an args.version that resolved to
undefined was passed straight into ssmParameterName, producing a malformed SSM
parameter path.
The EKS control plane configuration types were added in 7.42.0.
Adds kubeSchedulerConfig, kubeApiServerConfig and kubeControllerManagerConfig to
eks.Cluster, passed through to aws.eks.Cluster. All three are optional with no
default, so unset means AWS's defaults.

Regenerates the schema and SDKs; the schema's aws refs move from v7.14.0 to
v7.43.0 as a result of the dependency bump.
@github-actions

Copy link
Copy Markdown
Contributor

PR is now waiting for a maintainer to run the acceptance tests.
Note for the maintainer: To run the acceptance tests, please comment /run-acceptance-tests on the PR

@ranyhb

ranyhb commented Aug 26, 2026

Copy link
Copy Markdown
Author

@pose @guineveresaenger — could you take a look when you get a chance? Thanks!

@ranyhb

ranyhb commented Aug 26, 2026

Copy link
Copy Markdown
Author

@iwahbe — I know you're an active maintainer across the Pulumi repos, and I saw your recent contributions here too. Could you take a look as well? Thanks!

@ranyhb

ranyhb commented Aug 27, 2026

Copy link
Copy Markdown
Author

@Frassle is there any chance that u can take a look ?

@Frassle

Frassle commented Aug 27, 2026

Copy link
Copy Markdown
Member

EKS falls under the @pulumi/providers team, and they’ll review this PR when they have capacity. Please don’t ping individual maintainers directly to request attention on a PR. That creates unnecessary pressure on contributors and maintainers, and is not an appropriate way to expedite review. The owning team will triage the PR through the normal process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support EKS advanced Kubernetes control plane configuration

2 participants