-
Notifications
You must be signed in to change notification settings - Fork 979
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
Support labels on Provisioner set outside of labels #992
Comments
I'd love to see another example other than kop's I'll be honest that this feels like a hack to me. One option (at least in this case) would be to use a NotIn NodeAffinity rule to avoid the kops masters, rather than attracting to kops nodes. |
The node role label is a wellknown label that all installers use. Kops has a role for spots though that is very popular for using with cluster autoscaler to ensure a pod are either scheduled on or off spot instances. master (and apiserver) nodes are tainted and doesn't automatically attract any pods. CAS has templates that support this functionality. |
It's worth mentioning that karpenter cannot schedule nodeAffinity that uses |
Would this "just work" if kops didn't use the kubernetes.io domain? |
What are you referring to? If you mean the |
@olemarkus We're not sure this is still a requirement. Please reopen or comment if still needed. |
Tell us about your request
What do you want us to build?
Karpenter currently only supports label selectors that either karpenter manage (by assuming it can configure kubelet) or that are well-known (those kubelet set itself, such as kubernetes.io/os and kubernetes.io/arch).
But there is a host of other components that put labels on nodes: KCM, CCM, CNIs, device managers and others.
It should be possible to tell karpenter that instances launched by a given Provisioner is expected to get these labels.
This is the label analog to #628
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
One example would be a Pod that is scheduled to run only on worker nodes and that would have
node-role.kubernetes.io/node
as selector.Note that many of these selectors are forbidden to be set by kubelet (e.g the above-mentioned label), so this will most likely need a new field in the API.
Are you currently working around this issue?
Not possible.
Community Note
The text was updated successfully, but these errors were encountered: