-
Notifications
You must be signed in to change notification settings - Fork 40k
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
Task 0: Added node taints labels and feature flags #49547
Conversation
/cc @liggitt |
/retest |
// When feature-gate for TaintBasedEvictions=true flag is enabled, | ||
// TaintNodeOutOfDisk would be automatically added by node controller | ||
// when node becomes out of disk, and removed when node has enough disk. | ||
TaintNodeOutOfDisk = "node.alpha.kubernetes.io/outOfDisk" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the rationale behind including alpha in the taint name? Is there concern a taint named node.kubernetes.io/outOfDisk
would want to be used in some other way in the future? If not, I'd prefer taking the approach recommended for API fields:
- Carefully choose names
- Feature gate the setting of the data while in alpha
- On graduation to beta, the feature gate can be enabled by default
That means that if the feature survives, clusters that enabled and used the taints in alpha state can simply continue to do so.
cc @kubernetes/sig-api-machinery-pr-reviews
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems node.kubernetes.io/outOfDisk
is better to keep the backward compatibility. @gmarek , WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 for node.kubernetes.io/outOfDisk
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great! Updated to node.kubernetes.io/xxxx
. Will handle notReady
and unreachable
in beta graduation PR.
/cc @gmarek |
/cc @kubernetes/sig-scheduling-api-reviews |
/unassign @jayunit100 @timothysc |
/retest |
// When feature-gate for TaintBasedEvictions=true flag is enabled, | ||
// TaintNodeOutOfDisk would be automatically added by node controller | ||
// when node becomes out of disk, and removed when node has enough disk. | ||
TaintNodeOutOfDisk = "node.kubernetes.io/outOfDisk" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
these should all have .alpha.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see the discussion on including alpha in the name in kubernetes/community#819 (comment)
tl;dr: if you include alpha in the name, there is no reasonable way to migrate people to the beta and ga versions. feature-gating the alpha function is sufficient to keep it from affecting anything until it graduates to beta or an admin opts in to using it in alpha mode.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update the link to open comments directly (https://github.com/kubernetes/community/pull/819/files/1bb113172319e32a8bde63f996c0b382e2fa511a#r128887276)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@timothysc , is that OK for your?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should update other taints then, and have a pattern for upgrade.
/cc @davidopp
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to update other taint when graduating from alpha to beta in separate PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
these look OK to me, per @LiGgit's comment
if not comments on the name of label, can we get this PR merged firstly? |
// | ||
// Taint nodes based on their condition status for 'NetworkUnavailable', | ||
// 'MemoryPressure', 'OutOfDisk' and 'DiskPressure'. | ||
TaintNodesByCondition utilfeature.Feature = "TaintNodesByCondition" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't feature gates need to be plumbed through api-machinery to hit all component configs?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nop; AFAIK, feature gates are local map in each component for now :).
// When feature-gate for TaintBasedEvictions=true flag is enabled, | ||
// TaintNodeOutOfDisk would be automatically added by node controller | ||
// when node becomes out of disk, and removed when node has enough disk. | ||
TaintNodeOutOfDisk = "node.kubernetes.io/outOfDisk" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should update other taints then, and have a pattern for upgrade.
/cc @davidopp
@timothysc @liggitt @gmarek , can we get this merged? |
My main interest was the taint name and plans for progressing to beta and stable, so no objections from me |
@davidopp , do you have any comments for the name of taint labels? If not, I think we can merge this :). |
/lgtm |
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: gmarek, k82cn, wojtek-t Associated issue: 42001 The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these OWNERS Files:
You can indicate your approval by writing |
/retest Review the full test history for this PR. |
/retest |
Automatic merge from submit-queue (batch tested with PRs 50119, 48366, 47181, 41611, 49547) |
What this PR does / why we need it:
Added node taint const for node condition.
Which issue this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)
format, will close that issue when PR gets merged): part of #42001Release note: