-
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
implement QueueingHint in TaintToleration #124287
Conversation
Please note that we're already in Test Freeze for the Fast forwards are scheduled to happen every 6 hours, whereas the most recent run was: Fri Apr 12 07:49:42 UTC 2024. |
This issue is currently awaiting triage. If a SIG or subproject determines this is a relevant issue, they will accept it by applying the The 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. |
/hold |
5978f7f
to
9348801
Compare
@@ -56,10 58,35 @@ func (pl *TaintToleration) Name() string { | |||
// failed by this plugin schedulable. | |||
func (pl *TaintToleration) EventsToRegister() []framework.ClusterEventWithHint { | |||
return []framework.ClusterEventWithHint{ | |||
{Event: framework.ClusterEvent{Resource: framework.Node, ActionType: framework.Add | framework.Update}}, | |||
{Event: framework.ClusterEvent{Resource: framework.Node, ActionType: framework.Add | framework.UpdateNodeTaint}, QueueingHintFn: pl.isSchedulableAfterNodeChange}, |
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.
should be OK to change it to UpdateNodeTaint
based on the discussion in -
#122292
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.
PreCheck includes not only taint validation, also like node affinity etc., so is this enough? For example, a new added node was rejected by nodeAffinity, but then updated the node label.
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.
Under this case, maybe it's taint tolerated before.
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.
You're actually right; if we want to cover all Nodes that possibly filtered out by preCheck previously, we have to keep Node/Update and actually add Pod/Delete (for node port).
But, from the discussion in https://github.com/kubernetes/kubernetes/pull/122292/files#r1495008072 and then we only added NodeTaint after all, I understand we agree to ignore those cases because they're very minor scenarios, and more importantly, that'd be a big degradation.
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 don't think we can apply the same argument. In the other PR, Node label updates have always been ignored.
In this case, we could be introducing a regression.
Let's keep Update until we finish migrating all the preChecks.
9348801
to
04c5059
Compare
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: sanposhiho The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/lgtm :) |
@kubernetes/sig-scheduling-approvers Can anyone take a look 🙏 |
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.
the hint itself LGTM
@@ -56,10 58,35 @@ func (pl *TaintToleration) Name() string { | |||
// failed by this plugin schedulable. | |||
func (pl *TaintToleration) EventsToRegister() []framework.ClusterEventWithHint { | |||
return []framework.ClusterEventWithHint{ | |||
{Event: framework.ClusterEvent{Resource: framework.Node, ActionType: framework.Add | framework.Update}}, | |||
{Event: framework.ClusterEvent{Resource: framework.Node, ActionType: framework.Add | framework.UpdateNodeTaint}, QueueingHintFn: pl.isSchedulableAfterNodeChange}, |
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 don't think we can apply the same argument. In the other PR, Node label updates have always been ignored.
In this case, we could be introducing a regression.
Let's keep Update until we finish migrating all the preChecks.
pkg/scheduler/framework/plugins/tainttoleration/taint_toleration.go
Outdated
Show resolved
Hide resolved
04c5059
to
a4bfaae
Compare
@kerthcet @alculquicondor Fixed two points from your reviews. |
(closed once by mistake😓 ) |
/retest |
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.
Good example of a simple hint :)
/lgtm
LGTM label has been added. Git tree hash: 8f7b401631a0ebafd6d0a3ed8c9df7ed09fb773c
|
got two reviews (Aldo, AxeZhan) /unhold |
What type of PR is this?
/kind feature
What this PR does / why we need it:
This PR implements QHint for TaintToleration
Taking over #119397
Which issue(s) this PR fixes:
Part of #118893
Special notes for your reviewer:
Does this PR introduce a user-facing change?
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: