-
Notifications
You must be signed in to change notification settings - Fork 4k
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
Align Cluster Autoscaler taints with k8s naming #5433
Comments
/help |
@x13n: GuidelinesPlease ensure that the issue body includes answers to the following questions:
For more details on the requirements of such an issue, please see here and ensure that they are met. If this request no longer meets these requirements, the label can be removed In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
@x13n I'd be glad to work on this issue, what is the timeline? How can we coordinate this? |
I think implementation can start right away. Suggested timeline:
/cc @MaciekPytel @gjtempleton @mwielgus Any concerns with this approach? |
In case people are tolerating only the existing taints, do we need to communicate the change a bit more than usual? Eg article on https://blog.k8s.io/ |
I don't have a strong opinion on this. On one hand I'm not sure what would be the use case for scheduling pods on a node that is being deleted. On the other hand, I guess it is better to over-communicate. How do we make a release note appear on the blog? |
It'd be a new blog article - see https://kubernetes.io/docs/contribute/new-content/blogs-case-studies/ (which is a bit wrong but is mostly correct). It looks like none of the CA taints are the |
Some thoughts for implementing double tainting:
Some more questions for the planI was reiterating our plan, and have some questions:
The scenario I can think of is that users' Pods are tolerating the existing taint, so they will need to tolerate the new taint too. In that case, if we want to keep backward compatibility, they will need to pass a flag and ask the autoscaler to use the old taints. If we use double tainting, how does the user benefit from it? Please provide any context I'm missing. Cc: @x13n |
I think we actually need not bool, but an enum (so, in practice - string) flag to allow one of 3 values: old / new / both.
I agree, OR seems to be the right check.
I think in case of tolerations you're right, double-tainting doesn't seem to provide a lot of benefit - there could be two tolerations on workloads to allow gradual rollout. The use case I had in mind was actually for other dependency: when some other controller (like this one) uses the taint as a signal that CA will be deleting the node. To allow such use cases to migrate, we give them two signals that will coexist for at least 1 release cycle. Heads up @thockin @alexanderConstantinescu |
Thanks for volunteering! I think there was no discussion for a while now, so I'd proceed with the first step from my original description: double-tainting (flag gated and implemented within a single API call, as @gregth suggested). The flag should default to double tainting, but allow also "only new" and "only old". |
In the light of kubernetes/org#4258, we should probably align the prefix between components, to avoid migrating twice. @MaciekPytel @mwielgus @gjtempleton - thoughts? |
Sorry for such a late response on this. But I'm back now and starting today. As agreed above, I will have double-tainting with a flag to opt in for "only new" and "only old" or "both" as default. |
Thanks! I think recently there were some discussions around unifying labels
between CA and Karpenter now it is a part of the SIG. Need to make sure we
don't need to migrate twice. @towca can you chime in on this?
czw., 15 lut 2024, 09:07 użytkownik Feruzjon Muyassarov <
***@***.***> napisał:
… Sorry for such a like response on this. But I'm back now and starting
today. As agreed above, I will have double-tainting with a flag to opt in
for "only new" and "only old" or "both" as default.
/assign
—
Reply to this email directly, view it on GitHub
<#5433 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAFMP4DABDVHVS76PYQ2MSDYTW65PAVCNFSM6AAAAAAUAVOWPSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBVGU2DMNJTG4>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
@x13n I'm almost done with the change and want to check something regarding taint format before submitting the changes.
Basically instead of using camelCase I have used |
Hey @fmuyassarov! As @x13n mentioned above, we're currently in discussions with Karpenter about unifying the common parts of our APIs. These taints are one such common part, and we still need to align on the exact API group and naming for them. Could you hold off your change until that happens? I can reach out when we have the naming ready. Unfortunately right now it's hard for me to predict when exactly that'll be (probably a couple of months), but I'd really like to avoid changing the API twice for this. |
Hey @towca. Yes, it totally makes sense to keep it on hold for now and thanks for the update. Is the discussion with the Karpenter community being tracked somewhere on GitHub where I can follow it too? |
/hold |
cc: @jonathan-innis, @ellistarn, @njtran |
I think I found it, probably the discussion on happening on this google doc: https://docs.google.com/document/d/1_KCCr5CzxmurFX_6TGLav6iMwCxPOj0P/edit |
Hey 👋🏼 chiming in here from the Karpenter maintainer team. I don't think we have really gone back to that doc for active discussion in a bit. I've been talking with @towca a bit on this but I agree that it's going to take a bit of time for both of the projects to come into an alignment. I'd be open to starting a discussion over in the K8s slack with everyone who wants to be involved. We could just do it in #sig-autoscaling channel, though I expect that it might be lost in conversation. It would be really nice if we could just call this a "working group discussion" and just get a "wg" channel started in the K8s slack so we can get all of the relevant parties involved and have an active discussion over there specifically on this topic. |
@jonathan-innis I'll look into setting up the proper communication channels to discuss this. |
Which component are you using?:
Cluster Autoscaler
Is your feature request designed to solve a problem? If so describe the problem this feature should solve.:
Existing CA taints don't follow the k8s naming pattern like our annotations do (
cluster-autoscaler.kubernetes.io/...
)Describe the solution you'd like.:
We should migrate to new taints and document them on https://kubernetes.io/docs/reference/labels-annotations-taints/
Steps:
Describe any alternative solutions you've considered.:
Additional context.:
See kubernetes/website#45074
The text was updated successfully, but these errors were encountered: