Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add Native Spot Termination Handling #2546

Merged
merged 73 commits into from
Nov 3, 2022

Conversation

jonathan-innis
Copy link
Contributor

@jonathan-innis jonathan-innis commented Sep 23, 2022

Fixes #702

Description

  • Adds native handling for spot termination by introducing two new controllers to the AWS cloud provider: aws/controllers/nodetemplate and aws/controllers/interruption
  • aws/controllers/nodetemplate is responsible for reconciling the desired state of Karpenter AWS infrastructure with the current state
  • aws/controllers/nodetemplate is also responsible for cleaning up the infrastructure when all AWSNodeTemplates are removed
  • aws/controllers/interruption is responsible for polling the SQS queue and cordoning and draining instances that it receives notifications for from the SQS queue

How was this change tested?

  • make test
  • FOCUS=Interruption make e2etests

Does this change impact docs?

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

Release Note

Add Native Spot Termination Handling

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

@netlify
Copy link

netlify bot commented Sep 23, 2022

Deploy Preview for karpenter-docs-prod canceled.

Name Link
🔨 Latest commit 563aa44
🔍 Latest deploy log https://app.netlify.com/sites/karpenter-docs-prod/deploys/636419035eaa910009779713

@jonathan-innis jonathan-innis force-pushed the spot-handler branch 29 times, most recently from 0d241e0 to 530fb08 Compare September 24, 2022 18:34
ellistarn
ellistarn previously approved these changes Nov 3, 2022
@jonathan-innis jonathan-innis merged commit bde080e into aws:main Nov 3, 2022
@jonathan-innis jonathan-innis deleted the spot-handler branch November 3, 2022 20:45
@jonathan-innis
Copy link
Contributor Author

🎉

@FernandoMiguel
Copy link
Contributor

now starts the fun bit of me trying to port all these changes to terraform

@FernandoMiguel
Copy link
Contributor

here's the 1st part for IAM policies aws-ia/terraform-aws-eks-blueprints#1145
once 0.19 comes out , I can test the ConfigMap and the renamed SETs

@auyer
Copy link
Contributor

auyer commented Nov 28, 2022

Hi ! Does this PR mean that it is no longer recommended (or necessary) to install the aws/aws-node-termination-handler resource ?

Thanks!

@ellistarn
Copy link
Contributor

Hi ! Does this PR mean that it is no longer recommended (or necessary) to install the aws/aws-node-termination-handler resource ?

Yep. You can continue to use it, if you prefer.

@bnbrijesh
Copy link

Is there any new setup for this , I do not see any docs about the new interruption controller, any help if be awesome.

@ellistarn
Copy link
Contributor

https://karpenter.sh/v0.21.1/concepts/deprovisioning/#interruption

@sap147
Copy link

sap147 commented Jul 22, 2023

are there updated docs on how to implement this? The above link goes to a page not found. Also, what is the minimum supported version of karpenter that this was introduced in?

@thepoppingone
Copy link

@thepoppingone
Copy link

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.

Native Support for Spot Termination
9 participants