Skip to content

Conversation

@vladikkuzn
Copy link
Contributor

@vladikkuzn vladikkuzn commented Oct 17, 2025

What type of PR is this?

/kind api-change

What this PR does / why we need it:

Which issue(s) this PR fixes:

Part of #6184

Special notes for your reviewer:

Does this PR introduce a user-facing change?

FlavorFungibility: introduce the ClusterQueue's API for flavorFungibility: `.spec.flavorFungibility.preference` to indicate
the user's preference for borrowing or preemption when there is no flavor which avoids both. This new field is a replacement for the alpha feature gate FlavorFungibilityImplicitPreferenceDefault which will be removed in 0.16.

@k8s-ci-robot
Copy link
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@k8s-ci-robot k8s-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/documentation Categorizes issue or PR as related to documentation. release-note-none Denotes a PR that doesn't merit a release note. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Oct 17, 2025
@netlify
Copy link

netlify bot commented Oct 17, 2025

Deploy Preview for kubernetes-sigs-kueue canceled.

Name Link
🔨 Latest commit d669ce0
🔍 Latest deploy log https://app.netlify.com/projects/kubernetes-sigs-kueue/deploys/6915d3bcd3fe2e0008e78266

@k8s-ci-robot k8s-ci-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Oct 17, 2025
@vladikkuzn vladikkuzn changed the title [KEP] FlavorFungability: replace FlavorFungibilityImplicitPreferenceDefault feature gate with API FlavorFungability: replace FlavorFungibilityImplicitPreferenceDefault feature gate with API Oct 17, 2025
@vladikkuzn
Copy link
Contributor Author

/assign

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 20, 2025
@vladikkuzn vladikkuzn force-pushed the replace-FlavorFungibilityImplicitPreferenceDefault-feature-gate-with-API branch from 4f8cb0b to 84adb94 Compare October 29, 2025 22:04
@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Oct 29, 2025
@vladikkuzn
Copy link
Contributor Author

/ok-to-test

@k8s-ci-robot k8s-ci-robot added the ok-to-test Indicates a non-member PR verified by an org member that is safe to test. label Oct 29, 2025
@vladikkuzn vladikkuzn force-pushed the replace-FlavorFungibilityImplicitPreferenceDefault-feature-gate-with-API branch from 84adb94 to dc9e8f1 Compare October 31, 2025 17:08
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 31, 2025
@vladikkuzn vladikkuzn force-pushed the replace-FlavorFungibilityImplicitPreferenceDefault-feature-gate-with-API branch from dc9e8f1 to e7152d4 Compare October 31, 2025 17:13
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 31, 2025
@vladikkuzn vladikkuzn force-pushed the replace-FlavorFungibilityImplicitPreferenceDefault-feature-gate-with-API branch 2 times, most recently from 0744117 to 92c279b Compare October 31, 2025 17:32
@vladikkuzn
Copy link
Contributor Author

/retest

@vladikkuzn vladikkuzn force-pushed the replace-FlavorFungibilityImplicitPreferenceDefault-feature-gate-with-API branch 2 times, most recently from 9ccb35d to a748a85 Compare November 3, 2025 22:18
@k8s-ci-robot k8s-ci-robot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Nov 3, 2025
@k8s-ci-robot k8s-ci-robot removed the release-note-none Denotes a PR that doesn't merit a release note. label Nov 13, 2025
@vladikkuzn vladikkuzn force-pushed the replace-FlavorFungibilityImplicitPreferenceDefault-feature-gate-with-API branch from a07e328 to d669ce0 Compare November 13, 2025 12:48
Copy link
Contributor

@mimowo mimowo left a comment

Choose a reason for hiding this comment

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

Thank you 👍
/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Nov 13, 2025
@k8s-ci-robot
Copy link
Contributor

LGTM label has been added.

Git tree hash: 7a3eb9372dcc5a1d80bcdbe17810b5caa4a96606

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: mimowo, vladikkuzn

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 Nov 13, 2025
@mimowo
Copy link
Contributor

mimowo commented Nov 13, 2025

/hold

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Nov 13, 2025
@mimowo
Copy link
Contributor

mimowo commented Nov 13, 2025

I synced with @vladikkuzn that there is one suspicious test which causes endless loop when the FG is enabled. @vladikkuzn please share more details.

@mimowo
Copy link
Contributor

mimowo commented Nov 13, 2025

/test pull-kueue-test-e2e-multikueue-main
this is unrelated, opened: #7650

@vladikkuzn
Copy link
Contributor Author

vladikkuzn commented Nov 14, 2025

Here's the test

With FlavorFungibilityImplicitPreferenceDefault enabled, the scheduler keeps trying flavor f2 instead (logs repeatedly show “insufficient unused quota for cpu in flavor f2 … Pending the preemption of 1 workload”), so the expected admission on f1 never arrives and the Eventually times out.

Steps to reproduce: enable FlavorFungibilityImplicitPreferenceDefault feature gate and run make test-integration GINKGO_ARGS="--focus \"finds correct flavor by discarding the first one in which preemption is not possible\""

Now I think this is expected behaviour, so we can proceed without creating an issue

@mimowo
Copy link
Contributor

mimowo commented Nov 14, 2025

cc @pajakd wdyt?

@pajakd
Copy link
Contributor

pajakd commented Nov 14, 2025

This is correct.

If FlavorFungibilityImplicitPreferenceDefault would be enabled, the test "finds correct flavor by discarding the first one in which preemption is not possible" should fail because this high-priority workload would choose f2 instead of f1 as we expect in the test:

cq2HighPriority := createWorkloadWithPriority("cq1", "1", 9999)
{
admission := utiltestingapi.MakeAdmission("cq1").PodSets(utiltestingapi.MakePodSetAssignment(kueue.DefaultPodSetName).Assignment(corev1.ResourceCPU, "f1", "1").Obj()).Obj()
util.ExpectWorkloadToBeAdmittedAs(ctx, k8sClient, cq2HighPriority, admission)
}

@mimowo
Copy link
Contributor

mimowo commented Nov 14, 2025

/unhold
lets see if there are still no conflicts

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Nov 14, 2025
@vladikkuzn
Copy link
Contributor Author

/retest-required

@k8s-ci-robot k8s-ci-robot merged commit b68f109 into kubernetes-sigs:main Nov 14, 2025
22 checks passed
@k8s-ci-robot k8s-ci-robot added this to the v0.15 milestone Nov 14, 2025
@vladikkuzn vladikkuzn deleted the replace-FlavorFungibilityImplicitPreferenceDefault-feature-gate-with-API branch November 14, 2025 16:02
Singularity23x0 pushed a commit to Singularity23x0/kueue that referenced this pull request Nov 17, 2025
@mimowo
Copy link
Contributor

mimowo commented Nov 28, 2025

/remove-kind documentation
/kind feature

@k8s-ci-robot k8s-ci-robot added kind/feature Categorizes issue or PR as related to a new feature. and removed kind/documentation Categorizes issue or PR as related to documentation. labels Nov 28, 2025
@mimowo
Copy link
Contributor

mimowo commented Dec 1, 2025

proposal:
/release-note-edit

FlavorFungibility: introduce the ClusterQueue's API for flavorFungibility: `.spec.flavorFungability.preference` to indicate
the user's preference for borrowing or preemption when there is no flavor which avoids both. This new field is a replacement for the alpha feature gate FlavorFungibilityImplicitPreferenceDefault which will be removed in 0.16.

@mbobrovskyi
Copy link
Contributor

/release-note-edit

FlavorFungibility: introduce the ClusterQueue's API for flavorFungibility: `.spec.flavorFungibility.preference` to indicate
the user's preference for borrowing or preemption when there is no flavor which avoids both. This new field is a replacement for the alpha feature gate FlavorFungibilityImplicitPreferenceDefault which will be removed in 0.16.

@mbobrovskyi
Copy link
Contributor

/retitle FlavorFungibility: replace FlavorFungibilityImplicitPreferenceDefault feature gate with API

@k8s-ci-robot k8s-ci-robot changed the title FlavorFungability: replace FlavorFungibilityImplicitPreferenceDefault feature gate with API FlavorFungibility: replace FlavorFungibilityImplicitPreferenceDefault feature gate with API Dec 3, 2025
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/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. 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/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.

5 participants