Skip to content
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

scheduler: Extend ExtenderFilterResult to include UnschedulableAndUnresolvable nodes #92866

Merged
merged 2 commits into from Feb 2, 2021

Conversation

cofyc
Copy link
Member

@cofyc cofyc commented Jul 7, 2020

What type of PR is this?

Uncomment only one /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:

/kind api-change
/kind bug
/kind cleanup
/kind deprecation
/kind design
/kind documentation
/kind failing-test
/kind feature
/kind flake

What this PR does / why we need it:

Which issue(s) this PR fixes:

Fixes #91281

Special notes for your reviewer:

Does this PR introduce a user-facing change?:

Scheduler extender filter interface now can report unresolvable failed nodes in the new field `FailedAndUnresolvableNodes` of  `ExtenderFilterResult` struct. Nodes in this map will be skipped in the preemption phase. 

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

- [KEP]: https://github.com/kubernetes/enhancements/pull/1850

@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/feature Categorizes issue or PR as related to a new feature. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. labels Jul 7, 2020
@cofyc
Copy link
Member Author

cofyc commented Jul 7, 2020

/priority backlog
(not sure if it can go into 1.19)
/sig scheduling
/assign @Huang-Wei

@k8s-ci-robot k8s-ci-robot added priority/backlog Higher priority than priority/awaiting-more-evidence. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. and removed needs-priority Indicates a PR lacks a `priority/foo` label and requires one. needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Jul 7, 2020
@k8s-ci-robot k8s-ci-robot added the kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API label Jul 7, 2020
@fejta-bot
Copy link

This PR may require API review.

If so, when the changes are ready, complete the pre-review checklist and request an API review.

Status of requested reviews is tracked in the API Review project.

@Huang-Wei
Copy link
Member

@cofyc As this PR also needs API review, and unfortunately tomorrow is the code freeze for 1.19. Per the original plan (targeting 1.20) in KEP, would you mind holding the review until 1.20?

@cofyc
Copy link
Member Author

cofyc commented Jul 9, 2020

@cofyc As this PR also needs API review, and unfortunately tomorrow is the code freeze for 1.19. Per the original plan (targeting 1.20) in KEP, would you mind holding the review until 1.20?

sure

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 12, 2020
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 13, 2020
@cofyc
Copy link
Member Author

cofyc commented Jul 28, 2020

/retest

pkg/scheduler/core/generic_scheduler.go Outdated Show resolved Hide resolved
pkg/scheduler/core/generic_scheduler.go Outdated Show resolved Hide resolved
pkg/scheduler/core/generic_scheduler_test.go Outdated Show resolved Hide resolved
Copy link
Member Author

@cofyc cofyc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@soulxu thanks! PTAL

pkg/scheduler/core/generic_scheduler.go Outdated Show resolved Hide resolved
pkg/scheduler/core/generic_scheduler_test.go Outdated Show resolved Hide resolved
@cofyc
Copy link
Member Author

cofyc commented Jul 28, 2020

/retest

@cofyc
Copy link
Member Author

cofyc commented Aug 28, 2020

/test pull-kubernetes-e2e-kind-ipv6

@cofyc
Copy link
Member Author

cofyc commented Sep 28, 2020

@Huang-Wei can you take a look recently?

@Huang-Wei
Copy link
Member

This also needs api reviews.

@kubernetes/api-reviewers Can any API expert take a review? Thanks.

@@ -287,7 +289,7 @@ func (h *HTTPExtender) Filter(
}

if h.filterVerb == "" {
return nodes, extenderv1.FailedNodesMap{}, nil
return nodes, nil, nil, nil
Copy link
Contributor

@soulxu soulxu Jan 12, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm wondering this would break when loop the failedNodesMap in "genernicSchduler.findNodesThatPassExtenders", since we loop on a nil

for failedNodeName, failedMsg := range failedMap {

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Fixed.

@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 12, 2021
@cofyc
Copy link
Member Author

cofyc commented Jan 13, 2021

/retest

@Huang-Wei
Copy link
Member

/lgtm
on scheduling side

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 15, 2021
@cofyc
Copy link
Member Author

cofyc commented Jan 15, 2021

/cc @liggitt
can you take a look at the API change?

@cofyc
Copy link
Member Author

cofyc commented Jan 15, 2021

/cc @liggitt

@alculquicondor
Copy link
Member

alculquicondor commented Jan 15, 2021

We know that this API doesn't respect openAPI and there is an open issue to fix this in a v2: #88634

This API is used to format messages between scheduler and an external extender.

As it stands today, api-change lgtm.

@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jan 29, 2021
@cofyc
Copy link
Member Author

cofyc commented Jan 29, 2021

conflicts in bazel files are resolved

@cofyc
Copy link
Member Author

cofyc commented Jan 29, 2021

/retest

@Huang-Wei
Copy link
Member

Kindly ping @liggitt for approval.

@liggitt
Copy link
Member

liggitt commented Feb 2, 2021

/approve
for staging/src/k8s.io/kube-scheduler/extender/v1/types.go changes

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: cofyc, Huang-Wei, liggitt

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 2, 2021
@Huang-Wei
Copy link
Member

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Feb 2, 2021
@k8s-ci-robot k8s-ci-robot merged commit 8096513 into kubernetes:master Feb 2, 2021
@k8s-ci-robot k8s-ci-robot added this to the v1.21 milestone Feb 2, 2021
@cofyc cofyc deleted the fix91281 branch February 10, 2021 03:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. priority/backlog Higher priority than priority/awaiting-more-evidence. release-note Denotes a PR that will be considered when it comes time to generate release notes. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

scheduler/extender: extend the current ExtenderFilterResult struct to include node status
8 participants