From df15d50ed863c2661c4a0dfc2b7da946fbafb823 Mon Sep 17 00:00:00 2001 From: Ania Borowiec Date: Fri, 12 Sep 2025 21:35:41 +0000 Subject: [PATCH 1/5] graduate kep 5142 to GA --- .../README.md | 30 ++++++++++++------- .../kep.yaml | 5 ++-- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/README.md b/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/README.md index ce6c357c083..c51bf4ebb88 100644 --- a/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/README.md +++ b/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/README.md @@ -75,10 +75,10 @@ checklist items _must_ be updated for the enhancement to be released. Items marked with (R) are required *prior to targeting to a milestone / release*. -- [ ] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR) -- [ ] (R) KEP approvers have approved the KEP status as `implementable` -- [ ] (R) Design details are appropriately documented -- [ ] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors) +- [x] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR) +- [x] (R) KEP approvers have approved the KEP status as `implementable` +- [x] (R) Design details are appropriately documented +- [x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors) - [ ] e2e Tests for all Beta API Operations (endpoints) - [ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md) - [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free @@ -246,12 +246,12 @@ to implement this enhancement. ##### Unit tests -- `k8s.io/kubernetes/pkg/scheduler/backend/queue`: `2025-02-06` - `91.4` +- `k8s.io/kubernetes/pkg/scheduler/backend/queue`: `2025-09-12` - `91.4` ##### Integration tests -- [`k8s.io/kubernetes/test/integration/scheduler/queueing`](https://github.com/kubernetes/kubernetes/tree/master/test/integration/scheduler/queueing) - add test cases covering the scenario. -- [scheduler_perf](https://github.com/kubernetes/kubernetes/tree/master/test/integration/scheduler_perf) - add test cases measuring performance in this scenario. +- [`k8s.io/kubernetes/test/integration/scheduler/queueing`](https://github.com/kubernetes/kubernetes/tree/master/test/integration/scheduler/queueing) - added `TestPopFromBackoffQWhenActiveQEmpty` that covers the scenario. +- [scheduler_perf](https://github.com/kubernetes/kubernetes/tree/master/test/integration/scheduler_perf) - no perf test has been added to measure this particular scenario, as it's very difficult to simulate the conditions (empty active queue, pods waiting in backoff). At the same in time the available metrics for existing perf tests show that scheduling throughput has not decreased since 1.33 (when this featured was switched on as Beta). ##### e2e tests @@ -260,7 +260,7 @@ The whole feature should be already covered by integration tests. ### Graduation Criteria -The feature will start from beta and be enabled by default, because it is an internal kube-scheduler feature and guarded by a flag. +The feature started as beta in 1.33 and has been enabled by default, because it is an internal kube-scheduler feature and guarded by a flag. #### Alpha @@ -274,13 +274,13 @@ N/A #### GA -- Gather feedback from users and fix reported bugs. +- No issues have been reported in relation to this feature. ### Upgrade / Downgrade Strategy **Upgrade** -During the beta period, the feature gate `SchedulerPopFromBackoffQ` is enabled by default, so users don't need to opt in. +After promoting to GA the feature gate `SchedulerPopFromBackoffQ` is enabled by default, so users don't need to opt in. This is a purely in-memory feature for the kube-scheduler, so no special actions are required outside the scheduler. **Downgrade** @@ -430,6 +430,16 @@ Unknown ## Implementation History - 6th Feb 2025: The initial KEP is submitted. +- Feb-Mar 2025: Feature is implemented in the kubernetes codebase. PRs: + +#130214 Split backoffQ into backoffQ and errorBackoffQ in scheduler kubernetes + +#130492 Call PreEnqueue plugins before adding pod to backoffQ kubernetes + +#130680 Update backoffQ's less function to order pods by priority in windows kubernetes + +#130772 Pop from backoffQ when activeQ is empty kubernetes +- 15th Sep 2025: Feature gate updated in tests, KEP updated to upgrade to GA ## Drawbacks diff --git a/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml b/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml index 34b00616996..9f37096cd7b 100644 --- a/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml +++ b/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml @@ -11,13 +11,14 @@ reviewers: approvers: - alculquicondor -stage: beta +stage: stable -latest-milestone: "v1.33" +latest-milestone: "v1.35" # The milestone at which this feature was, or is targeted to be, at each stage. milestone: beta: "v1.33" + stable: "v1.35" # The following PRR answers are required at alpha release # List the feature gate name and the components for which it must be enabled From 7004fbc1007a189fbe51edb6b47342ba40a0e476 Mon Sep 17 00:00:00 2001 From: Ania Borowiec Date: Tue, 16 Sep 2025 08:02:41 +0000 Subject: [PATCH 2/5] try to fix approvers list --- .../5142-pop-backoffq-when-activeq-empty/kep.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml b/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml index 9f37096cd7b..9df8fc3b388 100644 --- a/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml +++ b/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml @@ -6,10 +6,11 @@ owning-sig: sig-scheduling status: implementable creation-date: 2025-02-06 reviewers: - - dom4ha - - sanposhiho + - "@dom4ha" + - "@sanposhiho" approvers: - - alculquicondor + - "@dom4ha" + - "@sanposhiho" stage: stable From a1ff7bf3826ded26502606a36d335ddc39e016c5 Mon Sep 17 00:00:00 2001 From: Ania Borowiec Date: Tue, 16 Sep 2025 08:34:05 +0000 Subject: [PATCH 3/5] try add prr aporoval --- .../5142-pop-backoffq-when-activeq-empty/kep.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml b/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml index 9df8fc3b388..4124fa8e3ba 100644 --- a/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml +++ b/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml @@ -11,6 +11,10 @@ reviewers: approvers: - "@dom4ha" - "@sanposhiho" +prr-approval: + stable: + milestone: "v1.35" + reviewer: "@dom4ha" stage: stable From ffd92aca02b1660839f91e422110af6cd7e65f3f Mon Sep 17 00:00:00 2001 From: Ania Borowiec Date: Mon, 22 Sep 2025 12:07:44 +0000 Subject: [PATCH 4/5] add wojtek-t to prr approvers --- keps/prod-readiness/sig-scheduling/5142.yaml | 2 ++ .../5142-pop-backoffq-when-activeq-empty/README.md | 12 ++++++------ .../5142-pop-backoffq-when-activeq-empty/kep.yaml | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/keps/prod-readiness/sig-scheduling/5142.yaml b/keps/prod-readiness/sig-scheduling/5142.yaml index 72f38c227b3..cd1d6e67558 100644 --- a/keps/prod-readiness/sig-scheduling/5142.yaml +++ b/keps/prod-readiness/sig-scheduling/5142.yaml @@ -1,3 +1,5 @@ kep-number: 5142 beta: approver: "@wojtek-t" +stable: + approver: "@wojtek-t" diff --git a/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/README.md b/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/README.md index c51bf4ebb88..f82244c61a1 100644 --- a/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/README.md +++ b/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/README.md @@ -80,12 +80,12 @@ Items marked with (R) are required *prior to targeting to a milestone / release* - [x] (R) Design details are appropriately documented - [x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors) - [ ] e2e Tests for all Beta API Operations (endpoints) - - [ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md) - - [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free -- [ ] (R) Graduation criteria is in place - - [ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md) -- [ ] (R) Production readiness review completed -- [ ] (R) Production readiness review approved + - [x] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md) + - [x] (R) Minimum Two Week Window for GA e2e tests to prove flake free +- [x] (R) Graduation criteria is in place + - [x] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md) +- [x] (R) Production readiness review completed +- [x] (R) Production readiness review approved - [ ] "Implementation History" section is up-to-date for milestone - [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io] - [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes diff --git a/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml b/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml index 4124fa8e3ba..30b9e6d8920 100644 --- a/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml +++ b/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml @@ -9,6 +9,7 @@ reviewers: - "@dom4ha" - "@sanposhiho" approvers: + - "@alculquicondor" - "@dom4ha" - "@sanposhiho" prr-approval: From d11e0e4b505fcf88f0d6dafc00682ffa8b07282c Mon Sep 17 00:00:00 2001 From: Ania Borowiec Date: Mon, 22 Sep 2025 12:27:09 +0000 Subject: [PATCH 5/5] one more --- .../5142-pop-backoffq-when-activeq-empty/kep.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml b/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml index 30b9e6d8920..7d18ced062d 100644 --- a/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml +++ b/keps/sig-scheduling/5142-pop-backoffq-when-activeq-empty/kep.yaml @@ -12,10 +12,6 @@ approvers: - "@alculquicondor" - "@dom4ha" - "@sanposhiho" -prr-approval: - stable: - milestone: "v1.35" - reviewer: "@dom4ha" stage: stable