-
Notifications
You must be signed in to change notification settings - Fork 38.7k
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
WIP: volumebinding: scheduler queueing hints - phase1 #124939
Conversation
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: bells17 The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
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-sigs/prow repository. |
a6a90f6
to
3b3fab8
Compare
3b3fab8
to
b896c59
Compare
pkg/scheduler/framework/plugins/volumebinding/volume_binding.go
Outdated
Show resolved
Hide resolved
05edaed
to
4a49474
Compare
@bells17: GitHub didn't allow me to request PR reviews from the following users: YamasouA. Note that only kubernetes members and repo collaborators can review this PR, and authors cannot review their own PRs. 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-sigs/prow repository. |
/assign @YamasouA |
@bells17: GitHub didn't allow me to assign the following users: YamasouA. Note that only kubernetes members with read permissions, repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time. 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-sigs/prow repository. |
4a49474
to
0c5664d
Compare
b2061f0
to
5bddd01
Compare
/retest |
b0a9563
to
326ae8b
Compare
326ae8b
to
96d2ebc
Compare
for _, vol := range pod.Spec.Volumes { | ||
if vol.Name == newPV.Name { | ||
logger.V(4).Info("PersistentVolume referenced by the Pod was created or updated") | ||
return framework.Queue, nil |
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.
If a PV was subject to processing by csi-translation-lib, it may undergo significant changes. Therefore, even if only a part of the PV changes, I believe it should be treated as a target for queueing. I would appreciate your thoughts on this.
) | ||
|
||
result, err := processPodVolumesForQHint(pod, func(pvcName string, isEphemeral bool) (bool, error) { | ||
if pvcName == newPVC.Name { |
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 fields of PVC referenced within Volumebinding are wide-ranging.
Therefore, if we implement a logic that strictly checks for changes in the fields being used, it would be difficult to correctly reflect those changes in the QueueingHintFn when there are modifications to PreFilter or Filter, and I think it would result in high maintenance costs.
So, for the Phase, Annotations, and Spec fields, I'm using DeepEqual to check for differences.
I would appreciate your thoughts on about this approach.
96d2ebc
to
c1c6fba
Compare
/retest |
can we close this PR in favor of other smaller PRs you opened? |
/close |
@bells17: Closed this PR. 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-sigs/prow repository. |
What type of PR is this?
/kind feature
What this PR does / why we need it:
kube-scheduler implements scheduling hints for the VolumeBinding plugin.
The scheduling hints allow the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated.
Which issue(s) this PR fixes:
Part of #118893
KEP: https://github.com/kubernetes/enhancements/blob/master/keps/sig-scheduling/4247-queueinghint/README.md
Special notes for your reviewer:
Fields Impacting QueueingHintFn
PersistentVolume (PV) is not included in this table because it can undergo extensive changes when a conversion is performed by csi-translation-lib.
ref(ja): https://zenn.dev/bells17/scraps/65bd6891012bdc
Does this PR introduce a user-facing change?
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: