Skip to content

feat: Placement Group Support#9030

Merged
joshuakguo merged 15 commits intoaws:mainfrom
joshuakguo:placement-groups-support
Apr 6, 2026
Merged

feat: Placement Group Support#9030
joshuakguo merged 15 commits intoaws:mainfrom
joshuakguo:placement-groups-support

Conversation

@joshuakguo
Copy link
Copy Markdown
Contributor

Fixes #3324

Description

  • add support for configuring EC2 Placement Groups on the EC2NodeClass
spec:
  placementGroupSelector:
    name: string
    id: string
  • add node labels karpenter.k8s.aws/placement-group-id and karpenter.k8s.aws/placement-group-partition (only for partition placement groups) for instances launched in placement groups

How was this change tested?

  • unit tests
  • manual testing

Does this change impact docs?

  • Yes, PR includes docs updates
  • Yes, issue opened: #
  • No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 23, 2026

Preview deployment ready!

Preview URL: https://pr-9030.d18coufmbnnaag.amplifyapp.com

Built from commit a76931bfa315cb9652bd11b3bc5b7289f7e7ab93

@joshuakguo joshuakguo force-pushed the placement-groups-support branch from f23151b to 0421ea8 Compare March 24, 2026 20:33
Copy link
Copy Markdown

@nathangeology nathangeology left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Placement groups a great feature to support. Left a few comments, I hope they are helpful!

@joshuakguo joshuakguo force-pushed the placement-groups-support branch 2 times, most recently from c44d044 to d0e24ad Compare March 26, 2026 01:25
@joshuakguo joshuakguo force-pushed the placement-groups-support branch from d0e24ad to 190e85e Compare March 27, 2026 21:05
@joshuakguo joshuakguo marked this pull request as ready for review March 27, 2026 21:25
@joshuakguo joshuakguo requested a review from a team as a code owner March 27, 2026 21:25
@joshuakguo joshuakguo requested a review from jigisha620 March 27, 2026 21:25
Copy link
Copy Markdown
Contributor Author

@joshuakguo joshuakguo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/karpenter snapshot

@github-actions
Copy link
Copy Markdown
Contributor

Snapshot successfully published to oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter:0-190e85efc9d157df8a60bbe5da752f65be0764b3.
To install you must login to the ECR repo with an AWS account:

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 021119463062.dkr.ecr.us-east-1.amazonaws.com

helm upgrade --install karpenter oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter --version "0-190e85efc9d157df8a60bbe5da752f65be0764b3" --namespace "kube-system" --create-namespace \
  --set "settings.clusterName=${CLUSTER_NAME}" \
  --set "settings.interruptionQueue=${CLUSTER_NAME}" \
  --set controller.resources.requests.cpu=1 \
  --set controller.resources.requests.memory=1Gi \
  --set controller.resources.limits.cpu=1 \
  --set controller.resources.limits.memory=1Gi \
  --wait

@joshuakguo joshuakguo force-pushed the placement-groups-support branch from 190e85e to 542c80a Compare March 31, 2026 01:06
@shawnawshk
Copy link
Copy Markdown

Hi team, looking forward to this feature release. Expect an ETA here

@joshuakguo joshuakguo force-pushed the placement-groups-support branch from 43232d0 to f65d2ae Compare April 1, 2026 22:59
@jmdeal jmdeal self-assigned this Apr 2, 2026
Copy link
Copy Markdown
Contributor Author

@joshuakguo joshuakguo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/karpenter snapshot

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

Snapshot successfully published to oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter:0-d0f56154a02e86ea92427084c9e63c8e118bc34f.
To install you must login to the ECR repo with an AWS account:

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 021119463062.dkr.ecr.us-east-1.amazonaws.com

helm upgrade --install karpenter oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter --version "0-d0f56154a02e86ea92427084c9e63c8e118bc34f" --namespace "kube-system" --create-namespace \
  --set "settings.clusterName=${CLUSTER_NAME}" \
  --set "settings.interruptionQueue=${CLUSTER_NAME}" \
  --set controller.resources.requests.cpu=1 \
  --set controller.resources.requests.memory=1Gi \
  --set controller.resources.limits.cpu=1 \
  --set controller.resources.limits.memory=1Gi \
  --wait

Copy link
Copy Markdown
Contributor Author

@joshuakguo joshuakguo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/karpenter snapshot

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Snapshot successfully published to oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter:0-497d09a9671c40d6d54648544d0ddc9ab7730626.
To install you must login to the ECR repo with an AWS account:

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 021119463062.dkr.ecr.us-east-1.amazonaws.com

helm upgrade --install karpenter oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter --version "0-497d09a9671c40d6d54648544d0ddc9ab7730626" --namespace "kube-system" --create-namespace \
  --set "settings.clusterName=${CLUSTER_NAME}" \
  --set "settings.interruptionQueue=${CLUSTER_NAME}" \
  --set controller.resources.requests.cpu=1 \
  --set controller.resources.requests.memory=1Gi \
  --set controller.resources.limits.cpu=1 \
  --set controller.resources.limits.memory=1Gi \
  --wait

Copy link
Copy Markdown
Contributor Author

@joshuakguo joshuakguo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/karpenter snapshot

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Snapshot successfully published to oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter:0-48fb4d6b209d6baa7340e8955fd37dcc5b85150c.
To install you must login to the ECR repo with an AWS account:

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 021119463062.dkr.ecr.us-east-1.amazonaws.com

helm upgrade --install karpenter oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter --version "0-48fb4d6b209d6baa7340e8955fd37dcc5b85150c" --namespace "kube-system" --create-namespace \
  --set "settings.clusterName=${CLUSTER_NAME}" \
  --set "settings.interruptionQueue=${CLUSTER_NAME}" \
  --set controller.resources.requests.cpu=1 \
  --set controller.resources.requests.memory=1Gi \
  --set controller.resources.limits.cpu=1 \
  --set controller.resources.limits.memory=1Gi \
  --wait

Copy link
Copy Markdown
Contributor Author

@joshuakguo joshuakguo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/karpenter snapshot

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Snapshot successfully published to oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter:0-7cb40c1e59e6223ba8af6c6c1935f4847dd8185e.
To install you must login to the ECR repo with an AWS account:

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 021119463062.dkr.ecr.us-east-1.amazonaws.com

helm upgrade --install karpenter oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter --version "0-7cb40c1e59e6223ba8af6c6c1935f4847dd8185e" --namespace "kube-system" --create-namespace \
  --set "settings.clusterName=${CLUSTER_NAME}" \
  --set "settings.interruptionQueue=${CLUSTER_NAME}" \
  --set controller.resources.requests.cpu=1 \
  --set controller.resources.requests.memory=1Gi \
  --set controller.resources.limits.cpu=1 \
  --set controller.resources.limits.memory=1Gi \
  --wait

Copy link
Copy Markdown
Contributor Author

@joshuakguo joshuakguo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/karpenter snapshot

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 4, 2026

Snapshot successfully published to oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter:0-a76931bfa315cb9652bd11b3bc5b7289f7e7ab93.
To install you must login to the ECR repo with an AWS account:

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 021119463062.dkr.ecr.us-east-1.amazonaws.com

helm upgrade --install karpenter oci://021119463062.dkr.ecr.us-east-1.amazonaws.com/karpenter/snapshot/karpenter --version "0-a76931bfa315cb9652bd11b3bc5b7289f7e7ab93" --namespace "kube-system" --create-namespace \
  --set "settings.clusterName=${CLUSTER_NAME}" \
  --set "settings.interruptionQueue=${CLUSTER_NAME}" \
  --set controller.resources.requests.cpu=1 \
  --set controller.resources.requests.memory=1Gi \
  --set controller.resources.limits.cpu=1 \
  --set controller.resources.limits.memory=1Gi \
  --wait

Copy link
Copy Markdown
Contributor

@jmdeal jmdeal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🚀

@joshuakguo joshuakguo merged commit edd18ec into aws:main Apr 6, 2026
30 of 31 checks passed
@hustshawn
Copy link
Copy Markdown
Contributor

Great job @joshuakguo , thank you

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 for AWS placement group strategies

6 participants