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

Add support for graceful shutdown options to Provisioner spec #4536

Closed
AlexMaksimkin opened this issue Sep 1, 2023 · 3 comments
Closed

Add support for graceful shutdown options to Provisioner spec #4536

AlexMaksimkin opened this issue Sep 1, 2023 · 3 comments
Labels
feature New feature or request

Comments

@AlexMaksimkin
Copy link

Description

What problem are you trying to solve?
Current Provisioner spec sh.karpenter.v1alpha5.Provisioner.spec.kubeletConfiguration are missing support for graceful shutdown kubelet configuration, in particular:

  • shutdownGracePeriod
  • shutdownGracePeriodCriticalPods
  • shutdownGracePeriodByPodPriority

https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/#kubelet-config-k8s-io-v1beta1-ShutdownGracePeriodByPodPriority

which block any ability to use of graceful termination features with Karpenter.

How important is this feature to you?

Many workloads are require graceful shutdown as well as doing that in particular order.
BottlerocketOS recently added related support: bottlerocket-os/bottlerocket#2930, bottlerocket-os/bottlerocket#3308, but Karpenter couldn't use it without additional support in Provisioner specs.

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment
@AlexMaksimkin AlexMaksimkin added the feature New feature or request label Sep 1, 2023
@jonathan-innis
Copy link
Contributor

@AlexMaksimkin Can you pass the additional values down to the bootstrapped KubeletConfig by performing overrides similar to what's described in our upstream docs?

We've generally been trying to avoid adding all the support KubeletConfiguration fields into the Provisioner (since there's a lot of fields) and tried to scope the fields to just be fields that are related to scheduling behavior that Karpenter should be aware of without having to introspect the userData.

@jonathan-innis jonathan-innis added question Further information is requested and removed feature New feature or request labels Sep 1, 2023
@bwagner5
Copy link
Contributor

bwagner5 commented Sep 6, 2023

Looks like we do need to update the Bottlerocket settings configuration to support this, but we shouldn't need to add this to the kubelet configuration in the provisioner spec.

@bwagner5 bwagner5 added feature New feature or request and removed question Further information is requested labels Sep 6, 2023
@bwagner5
Copy link
Contributor

bwagner5 commented Sep 6, 2023

Added support for graceful shutdown, will be available in the next Karpenter release.

@bwagner5 bwagner5 closed this as completed Sep 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants