Skip to content

[WIP] Reclaim backoff for re-borrowing after preemption-driven reclamation - #14470

Open
hahahaheihei wants to merge 7 commits into
kubernetes-sigs:mainfrom
hahahaheihei:feat/reclaim-backoff
Open

[WIP] Reclaim backoff for re-borrowing after preemption-driven reclamation#14470
hahahaheihei wants to merge 7 commits into
kubernetes-sigs:mainfrom
hahahaheihei:feat/reclaim-backoff

Conversation

@hahahaheihei

Copy link
Copy Markdown
Contributor

What type of PR is this?

/kind feature
/kind api-change

What this PR does / why we need it:

Implements the reclaim backoff proposed in KEP-14468 (design review in progress). After a ClusterQueue's borrowed resource is reclaimed by cohort preemption, the scheduler applies an exponentially growing cooldown during which it defers only the flavor assignments that would borrow that same resource again. This breaks the "admitted, then immediately reclaimed again" spin loop without changing quota semantics for well-behaved workloads.

The feature is opt-in via a new reclaimBackoff block in the v1beta2 Configuration API and disabled by default.

/hold

Hold until the KEP is accepted.

Which issue(s) this PR fixes:

Part of #14468

Special notes for your reviewer:

KEP under review: #14469

Submitted as a draft reference implementation to aid the KEP discussion. Verified locally: make verify, unit tests, the new integration suite (test/integration/singlecluster/scheduler/reclaimbackoff), and the e2e baseline (62/62) all pass.

Does this PR introduce a user-facing change?

Scheduling: Added an opt-in `reclaimBackoff` configuration that defers re-borrowing of a resource for an exponential cooldown after the ClusterQueue's borrowed share of that resource is reclaimed by preemption, breaking admit-reclaim spin loops.

@kubernetes-prow kubernetes-prow Bot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. release-note Denotes a PR that will be considered when it comes time to generate release notes. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/feature Categorizes issue or PR as related to a new feature. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API labels Aug 14, 2026
@netlify

netlify Bot commented Aug 14, 2026

Copy link
Copy Markdown

Deploy Preview for kubernetes-sigs-kueue canceled.

Name Link
🔨 Latest commit c9eec1f
🔍 Latest deploy log https://app.netlify.com/projects/kubernetes-sigs-kueue/deploys/6a82ad2431dd650008065dda

@kubernetes-prow kubernetes-prow Bot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Aug 14, 2026
@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are limited based on label configuration.

🚫 Excluded labels (none allowed) (3)
  • needs-ok-to-test
  • do-not-merge/work-in-progress
  • cncf-cla: no

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: e0c522bb-a18f-4004-960e-945e95b70d2e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@kubernetes-prow kubernetes-prow Bot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Aug 14, 2026
@kubernetes-prow

Copy link
Copy Markdown

Hi @hahahaheihei. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

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.

@kubernetes-prow

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: hahahaheihei
Once this PR has been reviewed and has the lgtm label, please assign mbobrovskyi, mimowo, pbundyra for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details 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

@tenzen-y

Copy link
Copy Markdown
Member

/ok-to-test

@kubernetes-prow kubernetes-prow Bot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Aug 14, 2026
@kubernetes-prow kubernetes-prow Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 17, 2026
@kubernetes-prow

Copy link
Copy Markdown

PR needs rebase.

Details

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.

@hahahaheihei
hahahaheihei marked this pull request as ready for review August 17, 2026 06:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. 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. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants