Skip to content

docs: document suspend behavior for raycluster/rayservice/rayjob - #8900

Merged
k8s-ci-robot merged 1 commit into
kubernetes-sigs:mainfrom
Abirdcfly:feat-or-bug
Feb 23, 2026
Merged

k8s-ci-robot merged 1 commit into
kubernetes-sigs:mainfrom
Abirdcfly:feat-or-bug

Conversation

@Abirdcfly

@Abirdcfly Abirdcfly commented Jan 30, 2026 •

Copy link
Copy Markdown
Member

What type of PR is this?

/kind documentation

What this PR does / why we need it:

Updated documentation for RayCluster, RayJob, and RayService to clarify that Kueue manages the suspend field and overrides it upon admission.

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?

NONE

@k8s-ci-robot k8s-ci-robot added release-note-none Denotes a PR that doesn't merit a release note. kind/bug Categorizes issue or PR as related to a bug. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Jan 30, 2026
@k8s-ci-robot k8s-ci-robot added the size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. label Jan 30, 2026
@netlify

netlify Bot commented Jan 30, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for kubernetes-sigs-kueue canceled.

Name Link
🔨 Latest commit 0f33582
🔍 Latest deploy log https://app.netlify.com/projects/kubernetes-sigs-kueue/deploys/698aa4af3d6cb900082f1a3b

@IrvingMg

IrvingMg commented Feb 2, 2026

Copy link
Copy Markdown
Member

Hi @Abirdcfly, these changes appear to be breaking several tests. Since there’s no linked issue, could you provide more context on the bug this PR is addressing (e.g., reproduction steps, how it was discovered, or a test case)?

Comment thread pkg/controller/jobs/raycluster/raycluster_controller.go Outdated
@k8s-ci-robot k8s-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Feb 10, 2026
@Abirdcfly Abirdcfly changed the title Fix RayCluster suspend field overwrite in RunWithPodSetsInfo docs: document suspend behavior for raycluster/rayservice/rayjob Feb 10, 2026
Updated documentation for RayCluster, RayJob, and RayService to clarify that Kueue manages the `suspend` field and overrides it upon admission.

Signed-off-by: Abirdcfly <fp544037857@gmail.com>
@Abirdcfly

Copy link
Copy Markdown
Member Author

Hi @Abirdcfly, these changes appear to be breaking several tests. Since there’s no linked issue, could you provide more context on the bug this PR is addressing (e.g., reproduction steps, how it was discovered, or a test case)?

After reviewing the code and testing, I think that forcing suspend to false is a feature of kueue rather than a bug, but the document did not mention this to the end user, so I updated the document.

@mimowo mimowo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thank you 👍
/lgtm
/approve
/cherrypick website

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Feb 23, 2026
@k8s-ci-robot

Copy link
Copy Markdown
Contributor

LGTM label has been added.

DetailsGit tree hash: 760c859234cb5d68e7a925717784e3372989db89

@k8s-ci-robot

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

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

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

The pull request process is described 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

@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 23, 2026
### c. Limitations
### c. Suspend control

Kueue controls the `spec.suspend` field of the RayCluster created by RayService. When the RayCluster is admitted by Kueue, Kueue will unsuspend it by setting `spec.suspend` to `false`, regardless of its previous value.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

FYI: this is getting changed as we will support in KubeRay 0.17 RayService as a top-level Job: #9102

cc @hiboyang

@k8s-ci-robot
k8s-ci-robot merged commit e1b57cb into kubernetes-sigs:main Feb 23, 2026
8 checks passed
@k8s-ci-robot k8s-ci-robot added this to the v0.17 milestone Feb 23, 2026
@mimowo

mimowo commented Feb 23, 2026

Copy link
Copy Markdown
Contributor

/cherrypick website

@k8s-infra-cherrypick-robot

Copy link
Copy Markdown
Contributor

@mimowo: new pull request created: #9426

Details

In response to this:

/cherrypick website

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.

thejoeejoee pushed a commit to thejoeejoee/kueue that referenced this pull request Feb 27, 2026
…ernetes-sigs#8900)

Updated documentation for RayCluster, RayJob, and RayService to clarify that Kueue manages the `suspend` field and overrides it upon admission.

Signed-off-by: Abirdcfly <fp544037857@gmail.com>
Singularity23x0 added a commit to Singularity23x0/kueue that referenced this pull request Mar 26, 2026
flavor assigned.
Adds tests to track the change.

Test setup fix.

Test setup and teardown fix.

Fit removed.

Adds fix with tests (it and unit).

fix incorrect pod placement during node replacement (#9211)

fix: retry kind cluster deletion to work around Docker race condition (#9261)

* fix: retry kind cluster deletion to work around Docker race condition

Add retry logic with exponential backoff to cluster_cleanup in
e2e-common.sh. Under CI (Docker-in-Docker on Linux with high IO
contention), 'kind delete cluster' can fail because Docker's internal
container kill has a hardcoded 2-second timeout that expires before the
container acknowledges the exit event (moby/moby#51028, moby/moby#51845).

Between retries, force-stop any remaining containers using the
io.x-k8s.kind.cluster label so that the next kind delete attempt starts
from a clean state.

Fixes kubernetes-sigs/kueue#8908

* fix: simplify kind cluster cleanup retries

Address review feedback by retrying only kind delete cluster with a shorter exponential backoff (1s initial delay, 5 attempts). Remove manual docker kill/rm cleanup to keep the bash logic simple, and document the upstream Docker issues as the reason for the temporary workaround.

Add scheduler tests for hierarchical cohort lendingLimit (#9136)

Add two test cases to verify lendingLimit behavior when borrowing
resources across hierarchical cohort structures:

- hierarchical cohort respects lending limit when borrowing
- hierarchical cohort allows borrowing up to lending limit

Graduate SanitizePodSets feature gate to GA (#9260)

Set SanitizePodSets to GA with LockToDefault: true in v0.17.
Remove the feature gate check from SanitizePodSet(), the disabled
feature gate test case, and update documentation.

[Refactor] Move all metrics ops to metrics.go in cache.queue (#9295)

* [Refactor] Move all metrics ops to metrics.go in cache.queue

* make names consistent

Graduate LendingLimit feature gate to GA (#9258)

Promote LendingLimit to GA at v0.18 with LockToDefault: true.
Remove all feature gate checks from production code and clean up
test cases that verified behavior when the feature was disabled.

Align the Kueue KEP template with the K8s KEP template (#9276)

Optimize UpdateKueueConfiguration. (#9275)

Enable TAS with ElasticJobsViaWorkloadSlices feature (#8580)

This change enables Topology-Aware Scheduling (TAS) to work correctly
with the ElasticJobsViaWorkloadSlices feature, which allows jobs to
dynamically scale via workload slices.
When ElasticJobsViaWorkloadSlices is enabled and a workload slice is
being replaced, the previous topology assignment is preserved for
existing pods, ensuring pods across slices are found correctly.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix race in RemoveRemoteObjects where remote LWS is not deleted (#9201)

When MultiKueueGC deletes the remote workload before the reconciler
processes the deletion, RemoveRemoteObjects would early-return on
remWl == nil without deleting the remote controller object (e.g., LWS).

Move DeleteRemoteObject before the nil check to ensure the remote
controller object is always deleted regardless of remote workload state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flake in scale-down logic for LeaderWorkerSet (#9135)

* Fix flake in scale-down logic for LeaderWorkerSet

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Add tests to prove the need of UpdatedReplicas check during rolling updates

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

[Refactor] queue.Manager Factory for integ tests (#9224)

Set certificate authority instead of insecure options in dev setup (#9312)

mark MultiKueueAllowInsecureKubeconfig as deprecated in feature gate (#9297)

Temporarily disable the TAS+ElasticWorkloads test (#9317)

Add podSecurityContext and containerSecurityContext to KueueViz Helm … (#9311)

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

Automate adding kind/* labels to cherry-pick PRs #9222 (#9290)

[Refactor] queue.Manager Factory for unit tests (#9321)

Increase the timeout for waiting for the Deployment update to start and check if ObservedGeneration changed. (#9315)

* Increase the timeout for waiting for the Deployment update to start.

* Check if ObservedGeneration changed in Deployment Status.

* Check if generation equal ObservedGeneration.

Upgrade MPI Operator version to v0.8.0 and enable TAS E2E tests (#9330)

* Update MPI Operator version to v0.8.0

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Enable MPIJob TAS E2E rank-ordering tests

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

promote local queue defaulting to ga (#9299)

Align CERTMANAGER configs. (#9332)

doc: Update the minimum MPI Operator version (#9335)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

KEP-8303: MultiKueue Orchestrated Preemption (#8985)

* Add first draft of KEP-8303: MultiKueue Synchronized Preemptions

* Add missing KEP number

* Reword main KEP goal

* Update KEP reviewers

* Expand the KEP content to include more detailed semantics of the proposal

* Remove wrong non-goal

* Add new non-goal

* Expand the beta API proposal with strictness of the gate

* Update the beta API with enum instead of boolean

* Add structure to the values of the proposed annotation

* Update the scheduler explanation section

* Explicitly specify the semantics of `PreemptionGateTimeout`

* Move dynamic timeout default to alternatives

* Update the comparison table between preemption annotations

* Fix leftover mentions of old design

* Finalize the API design: extend Workload API in alpha

* Rename the feature gate

* Update alternatives

* Update the proposal with a new `Condition`

* Update the creation date of the KEP

* Apply suggestions from code review

* Add missing step to the MK controller description

* Add early exit to the MK controller logic

* Rename open/closed to active/inactive

* Fix typo in API definition

* Fix grammar - 'disactivate' -> 'deactivate'

* Add paragraph about setting spec

* Fix typo 'born' -> 'blocked'

* Remove filtering out workloads with reserved quota for simplicity

* Mention having to check both the spec and status of workload

* Disambiguate active preemption gate

* Use `LastTriggeredTime` instead of `Condition`

* Remove dubious advantage of spec/status split

* Update the controller algorithm with early exit

* Rename 'synchronization' to 'orchestration'

* Add 'presence as active' alternative

* Expand the scheduler impact description

* Update ToC

* Add table explaining flavor selection

* Fix typos in the content

* Add more context to the requeueing logic

* Remove paragraph about `cannot-preempt` behavior similarity

* Fix alternatives section nesting

* Apply review comments

* Make `LastTriggeredTime` optional

* Remove confusing step from controller implementation

* Explicitly mention the controller updating the status of preemption gates

* Address review comments

* Add missing comments to proposed API

* Revert back to using a new condition for signaling

* Fix alternative nesting

* Rename active/inactive to open/closed

* Add alternative to place timeout in `MultiKueueConfig`

* Reword condition description comment

* Mention eviction atomicity

* Fix wording on the condition extension alternative

FIX: Drop default podSecurityContext and containerSecurityContext to KueueViz frontend (#9339)

Reduce the TAS performance test results variance (#9238)

* Reduce the TAS performance test results variance

The average admission time reported in TAS performance test is too
unstable:
60 workloads (large-balanced-rack) → 37.1% CV
90 workloads (medium-balanced-rack) → 34.7% CV
120 workloads (medium-preferred-block) → 32.3% CV
180 workloads (medium/small-required/preferred-rack) → ~9% CV
300 workloads (small-required-rack) → 5.3% CV
where CV (Coefficient of Variance) = variance / average.

Specifying thresholds for the admission time now would make the
TAS performance test results flaky.

This commit attempts to reduce the variance down to <10% by increasing
the workloads count and making the Law of Large Numbers work for us.

* Match tas performance test counts with baseline

One difference remaining is that TAS workloads have multiple pods in
them.

All 3 workload sets have different tas constraints to test the
performance impact of all of them.

* Add more workload set combinations

Keep the workload count the same, but test all the combinations of
different workload sizes with all the possible TAS constraints.

Fix ExpectNewWorkloadSlice to retry until workload is found (#9331)

The function was supposed to wait until a new workload appeared,
but it returned immediately after checking the list even if nothing
was found yet. This caused the test to fail randomly when the controller
was slower than expected. Keep retrying until the workload is actually
found, and clear the result before each retry to avoid returning stale data.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Update _index.md (#9351)

Fix feature-gates ConfigMap example.

promote ObjectRetentionPolicy to GA (#9300)

Test cleanup fix.

Included coverage of the "admission with no flavors" case in workload controller.

Included coverage of the "admission with no flavors" case in workload controller.

Import fix.

Test setup correction.

Moved workload admission definitions back into the bodies of the relevant tests.

Adds logging.

Foramtting.

Temporary - increase flaky e2e test verbosity.

e2e mk deployment test update - safeguard against flakyness.

test restructure

LOg message cleanup.

Logs cleanup.

Unnecesary util fiunc cleanup.

Optimized migration script to allow migration of namespaced resources by namespace (#9340)

* Optimized migration script to allow migration of namespaced resources by namespace.

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

---------

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

Automate adding kind/* labels to cherry-pick PRs #9222 (#9362)

* Follow-up

fix: quota double-counting for unchanged podSets in Workload Slices (#9322)

* Fix quota double-counting for unchanged podSets in workload slicing

* Add e2e tests for elastic workloads

* Remove downscale checks as these aren't managed by flavor assignment logic

* fix: integ test and podSet field being immutable (for upscales)

* address comments

* keep empty quota

* update assignment usage comment

Handle NoExecute taint as an unhealthy node (#8964)

* TAS Replace Node On Taints implementation

* refactor node failure controller

* use job instead of jobset

* cleanup

TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaluted (#8685)

* TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaludated

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* decouple E2E test from existing one

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Simplify the number of PodSet detection

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

Extend resource transformation integration tests. (#9356)

[Refactor] Terminate Workloads Sequentially in Integration Test (#9346)

Fix e2e certmanager kustomization missing vars (#9372)

Use v1beta1 as prefered API resource version. (#9367)

MultiKueue + TAS setup script: bump Kueue to 0.16 (#9308)

* MultiKueue + TAS setup script: bump Kueue to 0.16

* Address comments

Bump systeminformation from 5.27.14 to 5.31.1 in /test/e2e/kueueviz (#9373)

Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 5.27.14 to 5.31.1.
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v5.27.14...v5.31.1)

---
updated-dependencies:
- dependency-name: systeminformation
  dependency-version: 5.31.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add common code into raycluster/common.go (#9376)

* Add common code into raycluster/common.go

* Remove ByRayClusterSpec from names

* Update usage of common code

Add Prometheus e2e tests (#9031)

e2e testing: load images into kind worker nodes in parallel #9052 (#9294)

Remove deprecated TASProfileLeastFreeCapacity feature gate (#9298)

* Remove deprecated TASProfileLeastFreeCapacity feature gate

The TASProfileLeastFreeCapacity feature gate was deprecated in v0.11,
superseded by TASProfileMixed which uses LeastFreeCapacity only for
unconstrained requests and BestFit for required/preferred. This removes
the gate, simplifies validation logic, and drops all associated tests.

* add back validation code in case we add more tas profiles

KEP-2724: Add multi-level topology aware scheduling design (#9243)

* KEP-2724: Add multi-level topology aware scheduling design

Add the design for multi-level TAS, which extends two-level
scheduling to support N slice layers across deeper topology
hierarchies (e.g., datacenter → block → rack → host).

* fixup: fix comments

Self-nominate olekzabl as reviewer (#9366)

Optimize checkFlavorForPodSets(). (#9390)

Refactor string literals to common consts in raycluster, pod, job controller reconciler tests (#9393)

Optimize migrate-to-v1beta2.sh to allow downgrade. (#9383)

* Optimize migrate-to-v1beta2.sh to allow downgrade.

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

---------

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

Fix prometheus operator setup in e2e-k8s-main-was target (#9403)

Fix flaky workload retention test after manager restart (#9384)

Adds a controller-readiness barrier after restartManager() to ensure
controllers are processing events before deleting the workload.
Without this, gauge metric assertions passed from stale prometheus
state, allowing the delete to race ahead of controller startup.

using replacements instead of vars (#9239)

* using replacements instead of vars

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* commenting out optional changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* adding certmanager message back

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* removing accidentally committed dependency from project

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* additional formatting

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting fixes

* Revert e2e certmanager kustomization to keep PR focused

* formatting yaml, removing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* remove trailing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Fix hack/tools module path to match directory structure (#9408)

KubeRay: Add RayService controller as top level job (#9102)

* Add RayService controller as top level job

* Update helm chart yaml files

* Use build and update logic for RayService PodSets method

* Fix lint issue

* Update processing-plan.yaml

* Clean up rayservice webhook and multikueue adapter and update tests

* Use hardcode Running message in RayService.Finished

* Remove pod debugging log in e2e test

* Remove rayservice multikueue adapter

* Replace Status.ServiceStatus with Condition check

* Move RayJob/RayService common code to raycluster package

* Remove ByRayClusterSpec from names

* Add rayservice to integration and clean up code

Add example ConfigMap for RayJob autoscaling documentation (#9410)

Include the ray-job-autoscaling-code-sample.yaml ConfigMap in the
autoscaling example section of the RayJob docs (en and zh-CN), along
with kubectl commands to apply it. This mirrors the pattern used in
the non-autoscaling example section.

Bump golangci-lint to v2.10.1 (#9389)

Bump rajatjindal/krew-release-bot from 0.0.47 to 0.0.50 in the all group (#9418)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.47 to 0.0.50
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.47...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.50
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix dev mode e2e setup to skip prometheus config when feature is not selected (#9417)

Fix InsertText test cases in yaml-processor (#9409)

Fix: fix cohortName field for `v1beta2.ClusterQueue` (#9394)

* Fix ClusterQueue builder for v1beta2

* Update references in comments

* Update references in other files - automatic update

docs: document suspend behavior for raycluster/rayservice/rayjob (#8900)

Updated documentation for RayCluster, RayJob, and RayService to clarify that Kueue manages the `suspend` field and overrides it upon admission.

Signed-off-by: Abirdcfly <fp544037857@gmail.com>

Fix stale replica-role in scheduler logs after leader election (#9429)

Add cluster-queue-name and local-queue-name labels for pods coming from admitted workloads (#9348)

* Add queue labels to pod template for jobs

* Add queue labels to pods in existing tests

* Add queue pod labels to docs

* Add feature gate for queue pod labels and validation

* Revert testfile changes to avoid conflicts with pretask

* Add checks for new labels in e2e tests

* Add queue label checks to unit tests

* Fix incorrect table test name

Cleanup RayService controller code (#9430)

* Use 600m cpu for RayService e2e test

* Update suspend related doc for RayService

* Add rayservice to integrations in helm chart values file

* Update RayJob test wrapper

Fix discarded ctx from ctrl.LoggerInto causing missing replica-role in logs (#9445)

Fix missing roleTracker in NonTasUsageReconciler (#9433)

[Refactor] Add context to integ manager factory (#9458)

Fix race in KubeConfigFSWatcher tests by making Start() blocking (#9459)

[Docs][zh]sync tasks/run/deployment (#9442)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/plain_pods (#9443)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/leaderworkerset (#9444)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/statefulset (#9446)

Signed-off-by: xin.li <xin.li@daocloud.io>

upgrade to beta (#9450)

[flake] fix Admission Fair Sharing test (#9471)

[flake] fix Admission Fair Sharing test2 (#9476)

Narrow TAS ResourceFlavor spec immutability to topology-sensitive fields (#9427)

* Restrict the fields that are immutable in ResourceFlavorSpec when using TAS

* Remove nodeTaints from ResourceFlavor immutability check

* Fix formatting failures

* Fix documentation by removing unwanted comments

Fix a flavorFungibility preference bug (#9464)

* Reproduce a flavor fungibility preference bug (https://github.com/kubernetes-sigs/kueue/issues/9462)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Fix a flavorFungibility preference bug where explicit preference specifications are reversed behavior

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

[flake] fix e2e metrics test (#9485)

Asynchronous Inadmissible Workload Requeueing (#9232)

* Asynchronous Inadmissible Workload Requeueing

* address comments

* workqueue

Bump github.com/cloudflare/circl from 1.6.1 to 1.6.3 in /hack/tools (#9491)

Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.6.1 to 1.6.3.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.6.1...v1.6.3)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-version: 1.6.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump rollup from 4.43.0 to 4.59.0 in /cmd/kueueviz/frontend (#9496)

Bumps [rollup](https://github.com/rollup/rollup) from 4.43.0 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.43.0...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Localize topology (#9423)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync multikueue (#9436)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync concepts/_index (#9424)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]Localize elastic_workload (#9425)

Signed-off-by: xin.li <xin.li@daocloud.io>

Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~11h (#9493)

* Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~5.69h

Bump the bucket count from 14 to 15 so the max boundary becomes
20480s (~5.69h).

* Bump to 16 buckets

feat: update metrics for local queue kep to beta (#9370)

[Fair Sharing] Prefer nominal-quota workloads in admission ordering (#9484)

* Give priority to workloads that can fit within quota during fair sharing

* Add e2e tests. Create a feature gate

* Change feature gate to beta and get make verify to work

Add windsonsea and my-git9 to zh-CN docs approver (#9497)

Signed-off-by: xin.li <xin.li@daocloud.io>

Bump actions/setup-go from 6.2.0 to 6.3.0 in the all group (#9509)

Bumps the all group with 1 update: [actions/setup-go](https://github.com/actions/setup-go).

Updates `actions/setup-go` from 6.2.0 to 6.3.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5...4b73464bb391d4059bd26b0524d20df3927bd417)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Add tasks/run/using_hami (#9505)

Signed-off-by: xin.li <xin.li@daocloud.io>

inadmissible workloads - delete already processed logic (#9513)

Update RayService doc due to recent top level job change (#9460)

* Update RayService doc

* Extra version change

* Remove restart instruction

* Revert "Remove restart instruction"

This reverts commit 61594c3064b9e769a0f6c12d0625e24343e7d935.

log inadmissible workload requeue count (#9512)

move certs test (#9521)

[flake] increase batch period for requeue inadmissible test (#9531)

Fix StatefulSet MultiKueue adapter selection by creating workload in STS reconciler (#9344)

[website][zh] translation of YAML annotations for using_hami (#9517)

Signed-off-by: xin.li <xin.li@daocloud.io>

[website][zh]sync run/kubeflow/mpijobs (#9518)

Signed-off-by: xin.li <xin.li@daocloud.io>

Clean up workaround for the MPI Operator installation in E2E (#9546)

Remove the yq workaround that dropped empty rules for aggregated
ClusterRoles. The new MPI Operator version includes the fix.

Ref: https://github.com/kubernetes-sigs/kueue/issues/9375

[flake] fix StatefulSet e2e test when manageJobsWithoutQueueName=true (#9542)

fix perf test flakiness caused by informer relist (#9543)

The Create predicate assumed Create events always mean freshly created,
non-admitted workloads, so it returned false for all of them.  This
breaks during informer relist: if the watch closes and the client
relists, workloads admitted during the gap appear as Create events and
were silently dropped, so Reconcile() was never called and they were
never marked Finished.

Fix the predicate to return true only for admitted, unfinished workloads,
mirroring the Update path.  Add a unit test covering all four cases.

fix(scheduler): relax strict admission attempt expectations in flaky tests (#9554)

* fix(scheduler): relax strict admission attempt expectations in flaky tests

* fix(scheduler): keep scope to scheduler_test for #9526

Add subpage in observability about resource usage monitoring (#9461)

* Add observability webpage about resource usage monitroing

* Refine the site

* Refine the resource monitoring docs

* Add kubectl top result to resource usage docs

Bump the kubernetes group across 3 directories with 11 updates (#9560)

Bumps the kubernetes group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.35.1` | `0.35.2` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.35.1` | `0.35.2` |
| [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) | `0.35.1` | `0.35.2` |
| [k8s.io/component-helpers](https://github.com/kubernetes/component-helpers) | `0.35.1` | `0.35.2` |
| [k8s.io/kubectl](https://github.com/kubernetes/kubectl) | `0.35.1` | `0.35.2` |

Bumps the kubernetes group with 1 update in the /cmd/experimental/kueue-populator directory: [k8s.io/api](https://github.com/kubernetes/api).
Bumps the kubernetes group with 1 update in the /cmd/kueueviz/backend directory: [k8s.io/api](https://github.com/kubernetes/api).

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiextensions-apiserver` from 0.35.1 to 0.35.2
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiserver` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/cli-runtime` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-base` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-base/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-helpers` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-helpers/compare/v0.35.1...v0.35.2)

Updates `k8s.io/kubectl` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/kubectl/compare/v0.35.1...v0.35.2)

Updates `k8s.io/metrics` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/metrics/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/code-generator` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/code-generator/compare/v0.35.1...v0.35.2)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/cli-runtime
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-base
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-helpers
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/kubectl
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/metrics
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/code-generator
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Update main with the latest v0.16.2 (#9574)

update changelog for v15 (#9578)

Bump the all group across 3 directories with 3 updates (#9558)

Bumps the all group with 1 update in the /cmd/kueueviz/frontend directory: [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).
Bumps the all group with 1 update in the /site directory: [autoprefixer](https://github.com/postcss/autoprefixer).
Bumps the all group with 1 update in the /test/e2e/kueueviz directory: [cypress](https://github.com/cypress-io/cypress).

Updates `react-router-dom` from 7.13.0 to 7.13.1
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.13.1/packages/react-router-dom)

Updates `autoprefixer` from 10.4.24 to 10.4.27
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.24...10.4.27)

Updates `cypress` from 15.10.0 to 15.11.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v15.10.0...v15.11.0)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: autoprefixer
  dependency-version: 10.4.27
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: cypress
  dependency-version: 15.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

test(cleanup): treat unknown kind cluster as successful deletion (#9577)

update release template post release 0.15.5/0.16.2 (#9579)

* update release template post release 0.15.5/0.16.2

* clarify

test(multikueue): increase TAS completion wait to VeryLongTimeout (#9572)

test(perf): relax baseline small admission threshold for flake (#9581)

[Fair Sharing] If workload fits in nominalQuota for a flavor, ignore DRS checks during preemption (#9494)

* Preempt in fair sharing if CQ within nominal. Add feature gate. Change reason to InCohortReclamation

Change to beta

Remove refactor

Revert some remnants of refactor. Make test changes clearer

* Add new feature flag

* Address review comments

Set TAS perf test thresholds (#9495)

Prevent duplicate preemption requests across scheduling cycles (#9437)

Use expectations.Store (same pattern as pod controller) to track
workloads with in-flight preemptions. The expectation is set before
calling Evict and rolled back on failure. It is cleared by the workload
controller when the eviction (or deletion) is observed.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump github.com/cert-manager/cert-manager from 1.19.3 to 1.19.4 (#9561)

Bumps [github.com/cert-manager/cert-manager](https://github.com/cert-manager/cert-manager) from 1.19.3 to 1.19.4.
- [Release notes](https://github.com/cert-manager/cert-manager/releases)
- [Changelog](https://github.com/cert-manager/cert-manager/blob/master/RELEASE.md)
- [Commits](https://github.com/cert-manager/cert-manager/compare/v1.19.3...v1.19.4)

---
updated-dependencies:
- dependency-name: github.com/cert-manager/cert-manager
  dependency-version: 1.19.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Refresh the PR template to add KEP label and areas (#9590)

Bump cypress/base from 24.13.1 to 24.14.0 in /hack/testing/cypress (#9557)

Bumps cypress/base from 24.13.1 to 24.14.0.

---
updated-dependencies:
- dependency-name: cypress/base
  dependency-version: 24.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Cleanup unused exported functions. (#9601)

Use NewPodSetReference() instead if PodSetReference(). (#9602)

Added a missing backslash in the  command for kueueviz (#9605)

Signed-off-by: michaelkotelnikov <michael.kot97@gmail.com>

Bump go.opentelemetry.io/otel/sdk from 1.38.0 to 1.40.0 in /hack/tools (#9607)

Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.40.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.40.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.40.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump minimatch in /test/e2e/kueueviz (#9613)

Bumps  and [minimatch](https://github.com/isaacs/minimatch). These dependencies needed to be updated together.

Updates `minimatch` from 7.4.6 to 7.4.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 7.4.9
  dependency-type: indirect
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools (#9614)

* Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools

Bumps [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) from 0.155.3 to 0.157.0.
- [Release notes](https://github.com/gohugoio/hugo/releases)
- [Commits](https://github.com/gohugoio/hugo/compare/v0.155.3...v0.157.0)

---
updated-dependencies:
- dependency-name: github.com/gohugoio/hugo
  dependency-version: 0.157.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Sync hugo version

* Fix after bump.

* Fix seo_schema.html.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix parsing of repo name and org in releasing scripts (#9617)

Fix the appwrapper e2e test (#9620)

test(tas): wait for TrainingRuntime visibility before creating TrainJob (#9571)

The e2e TAS TrainJob tests can flake when attempting to create a
TrainJob immediately after creating its referenced TrainingRuntime.
This happens because the Validation Webhook for TrainJobs relies on
an informer cache to verify the referenced TrainingRuntime exists.

If the Create request hits the webhook before the informer cache
synchronizes the new TrainingRuntime, the webhook rejects the TrainJob
creation with a "not found" error.

This commit introduces a local helper `createTrainJobWithRetry` that
wraps the TrainJob creation in an `Eventually` block, ignoring
transient "not found" or webhook errors until the cache is fully
synchronized and the creation succeeds.

e2e testing: use RequestAndLimit consistently (#9623)

* e2e testing: use RequestAndLimit consistently

* test

* fix

* fix lws

Refactor featuregate setup in tests to reduce possibility of flaky tests conflicts (#9600)

* Refactor feature gate setup in tests to use SetFeatureGateDuringTest for DynamicResourceAllocation, AdmissionFairSharing, and TASBalancedPlacement

* Remove unused feature gate setup in tests for AdmissionFairSharing and TASBalancedPlacement

* sync ##9603

* Remove unused feature gate setups in tests for AdmissionFairSharing and TopologyAwareScheduling

Skip PushOrUpdate for inflight workloads to prevent spurious scheduling cycles (#9598)

When a workload is popped by the scheduler (inflight), a concurrent
PushOrUpdate from the workload controller can push it onto the heap
while the scheduler also places it in the inadmissible set. This
causes an extra scheduling cycle.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump sigs.k8s.io/jobset from 0.11.0 to 0.11.1 (#9562)

Bumps [sigs.k8s.io/jobset](https://github.com/kubernetes-sigs/jobset) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/kubernetes-sigs/jobset/releases)
- [Changelog](https://github.com/kubernetes-sigs/jobset/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/jobset/compare/v0.11.0...v0.11.1)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/jobset
  dependency-version: 0.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Execute all FG validations at once #9355 (#9547)

- ValidateFeatureGates now returns field.ErrorList and collects all errors
- Update TestValidateFeatureGates to assert actual vs expected field errors
- Add test case for multiple FG validation errors returned at once

Add LockToDefault for PropagateBatchJobLabelsToWorkload GA feature gate (#9640)

Update kep.yaml files for v0.17 GA feature promotions (#9642)

* Update KEP 2936 (LocalQueueDefaulting) stage to stable for GA promotion

* Update KEP 1618 (ObjectRetentionPolicies) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, adds stable
milestone, and sets disable-supported to false.

* Update KEP 693 (MultiKueue) kep.yaml for MultiKueueBatchJobWithManagedBy GA

Updates latest-milestone to v0.17, adds stable milestone, and sets
disable-supported to false following MultiKueueBatchJobWithManagedBy
GA promotion.

* Update KEP 1834 (PropagateBatchJobLabelsToWorkload) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, and adds stable
milestone.

Bump rajatjindal/krew-release-bot in /hack/releasing/krew-release-bot (#9556)

Bumps [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot) from v0.0.46 to v0.0.50.
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.46...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: v0.0.50
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Use List to verify LWS state in reconciler tests (#9654)

* Use List to verify LWS state in reconciler tests

* Fix gofmt and gci formatting

Bump rajatjindal/krew-release-bot from 0.0.50 to 0.0.51 in the all group (#9648)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.50 to 0.0.51
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.50...v0.0.51)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.51
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add E2E test suite for MultiKueue with TAS (#9396)

* Add TAS asymmetric-quota tests to multikueue E2E suite

Add two new test cases to the existing multikueue TAS Describe
block in test/e2e/multikueue/tas_test.go, using asymmetric
worker quotas (worker1=2CPU, worker2=1CPU) to enable
deterministic routing assertions:

- Preferred topology routing: 1500m CPU job routes to worker1
- Required topology: 500m CPU job admitted on either worker

Extract waitForTopologyAssignment and
waitForDelayedTopologyRequestReady helpers to reduce
duplication across existing and new tests. Use
MakeDefaultOneLevelTopology and batchv1.JobNameLabel
for consistency.

* fix: hoist managerWl outside Eventually in waitForDelayedTopologyRequestReady

generalize MustCreateWithRetry and apply (#9653)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Fix LendingLimit feature-state version tag in cluster_queue.md (#9643)

The LendingLimit feature was promoted to GA in v0.17, not v0.18.
Update the feature-state version tag to reflect the correct version.

Multikueue dev setup for E2E test cluster: extend SA token expiration time to 7d (#9540)

* Set SA expiration time to 7d for e2e dev mode

* update worker-cluster.kind.yaml

* update worker-cluster.kind.yaml

* Revert "Merge branch 'cleanup/mk-dev-setup-sa-token-exp-e2e' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp-e2e"

This reverts commit e5b959ed01486ee051b64db134e38c3e2a57aea3, reversing
changes made to 33a4149b0f6c786273e5ccaa5d8ae23df6d37cff.

Add wayve.ai as an adopter (#9663)

* Add wayve.ai as an adopter

* Improved description

* Fix syntax issue

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig (#9604)

* Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* Adding messages pinpointing failures alogn failfast

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting log

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* untangling code

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Update RayService E2E test to check http endpoint inside the RayService (#9660)

* Update RayService E2E test to check http endpoint inside the RayService

* Use system generated port like 0:remotePort

Forcefully remove stuck pods in the failure recovery controller (#9651)

* Forcefully remove stuck pods in the failure recovery controller

* Add e2e test for `FailureRecoveryPolicy`

* Exclude buffer from the termination timeout

* Add e2e test for `FailureRecoveryPolicy` during foreground deletion

* Code review fixes

* Update the KEP with the new failure recovery logic

* Rename 'terminate' to 'delete'

* Fix e2e test

* Check the failure recovery condition to filter out more executions

* Add missing `gomega.Succeed()`

* Fix import formatting

* Fix e2e test timeouts

* Mention condition check in KEP

* Wait longer for job to be admitted in e2e test

* Use `ContainsFunc` in Pod utils

* Wrap the e2e tests with ginkgo.By

* Shorten the pod grace termination period

* Add `ginkgo.By` steps to `BeforeEach` and `AfterEach`

[KEP] Add a mechanism to consider preemption cost when finding preemption candidates (#8551)

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* priority-boost

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

Update KEP-6757 history to include changes after foreground propagated deletion fix (#9675)

* Mention the annotation name change in the KEP history

* Mention which versions use which annotation name

* Mention which versions retain the old behaviour

Small clarifications in scheduling code (#9674)

Fix inadmissible workload stuck after priority update (#9661)

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Watch workload deletions to trigger LWS reconciliation (#9631)

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Refactor of check filtering to reduce code duplication.

Test refactor.

Fix typo in README: 'Build-in' → 'Built-in' (#9683)

* Fix typo in README: 'Build-in' → 'Built-in'

* docs: fix abbreviation formatting: 'eg.' → 'e.g.'

TAS: support ResourceTransformations (#8963)

* Create integration test.

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

* TAS: support ResourceTransformations

---------

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

Fix shellcheck SC2086 ignore (#9646)

* make test-e2e not parsing GINKGO_ARGS properly #9477

* Fix shellcheck SC2086 ignore #9477

Promote HierarchicalCohorts to GA (#9618)

* Promote HierarchicalCohorts to GA

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Remove deprecated API references

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Fix generateName for StatefulSets by including UID in workload name (#9091)

* Fix generateName for StatefulSets by including UID in workload name

* Support StatefulSet workloads created without UID in name

* Propagate non-NotFound errors in findWorkloadName

feat: add multi-layer topology constraints for TAS (#9506)

* KEP update to reflect the latest impl.

* feat: add multi-layer topology constraints for TAS

Introduce the TASMultiLayerTopology feature gate (alpha) to support
up to 3 hierarchical slice layers in topology-aware scheduling.

- Add `PodsetSliceRequiredTopologyConstraints` field to
  `PodSetTopologyRequest` and the corresponding pod annotation
- Extend TAS flavor snapshot to handle multi-layer placement
- Add validation for the new field (mutual exclusivity with
  existing single-layer fields, layer ordering, size divisibility)
- Add v1beta1 <-> v1beta2 conversion support
- Add integration tests for multi-layer scheduling

* make generate && make verify

* fixup: address comments

Bump the all group across 1 directory with 3 updates (#9703)

Bumps the all group with 2 updates in the /cmd/kueueviz/frontend directory: [@mui/icons-material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material) and [serve](https://github.com/vercel/serve).

Updates `@mui/icons-material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-icons-material)

Updates `@mui/material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-material)

Updates `serve` from 14.2.5 to 14.2.6
- [Release notes](https://github.com/vercel/serve/releases)
- [Changelog](https://github.com/vercel/serve/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vercel/serve/compare/v14.2.5...v14.2.6)

---
updated-dependencies:
- dependency-name: "@mui/icons-material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: "@mui/material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: serve
  dependency-version: 14.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gin-gonic/gin in /cmd/kueueviz/backend (#9707)

Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/gin-gonic/gin/releases)
- [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gin-gonic/gin/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: github.com/gin-gonic/gin
  dependency-version: 1.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/kueue from 0.16.1 to 0.16.2 in /cmd/kueueviz/backend (#9709)

Bumps [sigs.k8s.io/kueue](https://github.com/kubernetes-sigs/kueue) from 0.16.1 to 0.16.2.
- [Release notes](https://github.com/kubernetes-sigs/kueue/releases)
- [Changelog](https://github.com/kubernetes-sigs/kueue/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/kueue/compare/v0.16.1...v0.16.2)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/kueue
  dependency-version: 0.16.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3 (#9704)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime in /cmd/kueueviz/backend (#9708)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Remove duplicates of using ContextWithLog(t). (#9717)

KEP: add kueueviz auth (#8971)

* KEP: add kueueviz auth

Signed-off-by: samzong <samzong.lu@gmail.com>

* update KEP details

Signed-off-by: samzong <samzong.lu@gmail.com>

* KEP-5993: adopt Alpha-first graduation and refine design

Signed-off-by: samzong <samzong.lu@gmail.com>

* remove featuregateway in design

Signed-off-by: samzong <samzong.lu@gmail.com>

---------

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: add token-based authentication for backend and frontend (#9684)

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: fetch Cohort CRD directly, instead of deriving from ClusterQueues (#9719)

Signed-off-by: samzong <samzong.lu@gmail.com>

Propagate contextual logger to workload.Info.Update (#9723)

Add logr.Logger parameter to workload.Info.Update() so callers can
pass a contextualized logger for V(5) debug logging. This keeps
workload.Info as a pure data struct without embedding runtime state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flaky test for sticky workload (#9718)

Add KEP to support `QuotaCheckStrategy` (#8396)

This commit details the changes required to support a new
configuration field, `QuotaCheckStrategy`.

Self-nominate kshalot as reviewer (#9692)

Add KEP-7066: Custom metadata labels for Kueue metrics (#9225)

* Add KEP-7066: Custom metadata labels for Kueue metrics

* Refine KEP-7066 design details and validation rules

* Add explicit source key mapping to KEP-7066 configuration

* Expand KEP-7066 to cover Cohort metrics

* Refine KEP-7066 structure and validation rules

Skip equivalent inadmissible workloads in BestEffortFIFO scheduling (#9698)

When the scheduler evaluates a workload and gets NoFit from FlavorAssigner,
bulk-move all heap workloads with the same scheduling hash to inadmissible.
This reduces scheduling cost from O(workloads) to O(equivalence classes),
allowing the scheduler to reach schedulable workloads deep in the queue.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

add handler in leader workset reconiler (#9740)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Bump ShortConsistentDuration. (#9749)

Provide a metric for cohort nominal quota (#9132)

* Add CohortNominalQuota metric

* Rework after code review

Propagate contextual logger to scheduling hash computation via UpdateSchedulingHash (#9731)

Add UpdateSchedulingHash(log) method to workload.Info so production
callers can compute the scheduling hash with a contextual logger
after NewInfo construction. NewInfo signature stays unchanged.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Cleanup Consistently. (#9756)

Scheduling: reduce the maximal backoff time from 100ms to 10ms (#9697)

* Reduce the max backoff time from 100ms to 10ms

* simplify the code to drop configurable maxBackoff

* add comments to the consts

[MinimalKueue] Add HeapProfile(). (#9759)

Multikueue dev setup: extend SA token expiration time (#9516)

* Update SA setup for MultiKueue dev setup and related doc

* Set SA expiration time to 7d for e2e dev mode

* Set SA expiration time to 7d for e2e dev mode

* Revert "Set SA expiration time to 7d for e2e dev mode"

This reverts commit e9cba59eaa6ead5488d80287f3e40078efaa4cfa.

* Undo Merge branch 'cleanup/mk-dev-setup-sa-token-exp' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp

feat: enhance error message for multi-layer topology constraints (#9739)

* feat: enhance error message for multi-layer topology constraints

Add detailed noFit messages for multi-layer TAS topology that report
per-level slice fit counts (e.g., "1/2 slice(s) fit on level block;
3/4 slice(s) fit on rack; 6/8 slice(s) fit on hostname").

* fixup: add UT for enough hostname slices but insufficient rack slices

kueueviz: support hierarchical cohorts with tree view (#9725)

Signed-off-by: samzong <samzong.lu@gmail.com>

feat(kueueviz/backend): drop polling and switch to informers (#8707)

Signed-off-by: Josef Kolář <josef.kolar@firma.seznam.cz>

Add E2E_SKIP_REINSTALL flag that working in E2E_MODE=dev mode, Add KUEUE_DEPLOYMENT_NAME const for controller manager deployment string (#9753)

Optimize gomega.Eventually() for populator. (#9777)

Decouple borrowing state from DRS ratio value (#9738)

* Add IsBorrowing function in DRS to be explicit about borrowing rather than assuming 0 DRS value means borrowing.

* Address review comments

Spell fix.

TAS: Improve scheduling performance by caching nodes (#9712)

* TAS: Improve scheduling performance by caching nodes

* Rename AddOrUpdateNode() to SyncNode().

Self-nominate sohankunkerkar as reviewer (#9776)

Optimize ContextWithLog() to allow use testing.TB. (#9780)

Update pkg/workload/workload.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Added comments to better explain the logic of "AdmissionChecksForWorkload" function.

Spell fix.

Tests update.

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Move test for clarity.

connection util update

Test fix.

Update cohort metric name (#9787)

Fix NodeHotSwap for multi-layer TAS topology constraints (#9733)

This fixes two issues with NodeHotSwap replacement in multi-layer topology:

1. Domain Selection (requiredReplacementDomain): When multiple slice
   constraints are configured (e.g., [{rack: 8}, {switch: 4}, {hostname: 2}]),
   the code was using only the outermost constraint to find the replacement
   domain. This could place replacements in the wrong sub-domain.

   Fix: Iterate from innermost to outermost constraint and use the first
   (innermost) broken constraint's domain to confine the search.

2. Slice Size (findReplacementAssignment): After clearing
   PodsetSliceRequiredTopologyConstraints, setting PodSetSliceSize alone
   was a dead write because getSliceSizeWithSinglePodAsDefault() requires
   PodSetSliceRequiredTopology to be set. This caused sliceSize=1, scattering
   replacement pods across hosts and violating hostname grouping constraints.

   Fix: Find the innermost satisfied constraint and set both
   PodSetSliceRequiredTopology and PodSetSliceSize to preserve leaf-level
   grouping.

Added test cases:
- 3-layer topology: validates innermost broken domain selection
- 2-layer topology: validates sliceSize prevents scattered placement

chore: Use slices instead of sort (#9781)

Fix missing replica_role=leader metrics after HA role transition (#9487)

test: use Job instead of JobSet in TAS rank ordering case (#9796)

TAS: improve performance of the addNode function. (#9791)

Use gomega.Eventually(func(g gomega.Gomega) pattern. (#9800)

* Use gomega.Eventually(func(g gomega.Gomega) pattern.

* Use wait.Group.

* Ignore conflict error.

feat(visibility): allow visibility server to use custom kubeconfig path (#9619)

* feat(visibility): allow visibility server to use custom kubeconfig path

* docs(visibility): clarify kubeConfig and kubeConfigPath usage in visibility server

* refactor(visibility): streamline kubeConfig handling in visibility server

* refactor(visibility): simplify kubeConfig path retrieval in visibility server

* refactor(visibility): remove redundant comments regarding kubeConfig in visibility server setup

* test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag

* Revert "test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag"

This reverts commit a4add98a15f4a581dd70d0aa57b87d7059f3ba85.

* feat(visibility): enable visibility server to utilize custom kubeconfig path

* test(visibility): add e2e tests for visibility server using custom kubeconfig with RBAC

* refactor(visibility): replace waitForDeployment with WaitForKueueAvailabilityNoRestartCountCheck in kubeconfig tests

* test(visibility): enhance clarity in kubeconfig test by adding descriptive step

* test(visibility): enhance RBAC tests for visibility server with custom kubeconfig

* fix(visibility): remove unused visibility import and ensure visibility scheme is added in init

* refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access

* Revert "refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access"

This reverts commit c11f57ac5d6c087ce94a7ce20e8c342e4c707b84.

* refactor(visibility): simplify kubeconfig test by removing unused visibility import and updating client usage

* fix(visibility): update cloneControllerRBAC to skip additional roles for SubjectAccessReview permissions

* Fix comments

* chore: remove trailing whitespace in `visibility_kubeconfig_test.go`

* Add TODO for internal server error

* refactor: replace `client.IgnoreAlreadyExists` with `util.MustCreate` for object creation in e2e tests.

* Remove CQ from test

* feat: introduce kubeconfig utility to resolve config and path, and pass the path to the visibility server for authentication and authorization configuration.

* refactor: extract kubeconfig path resolution into a dedicated function and add unit tests.

* Revert changes

* Ref…
k8s-ci-robot pushed a commit that referenced this pull request Apr 7, 2026
…flavor assigned (#9359)

* Apply admission checks covering all CQ resources to workloads before
flavor assigned.
Adds tests to track the change.

Test setup fix.

Test setup and teardown fix.

Fit removed.

Adds fix with tests (it and unit).

fix incorrect pod placement during node replacement (#9211)

fix: retry kind cluster deletion to work around Docker race condition (#9261)

* fix: retry kind cluster deletion to work around Docker race condition

Add retry logic with exponential backoff to cluster_cleanup in
e2e-common.sh. Under CI (Docker-in-Docker on Linux with high IO
contention), 'kind delete cluster' can fail because Docker's internal
container kill has a hardcoded 2-second timeout that expires before the
container acknowledges the exit event (moby/moby#51028, moby/moby#51845).

Between retries, force-stop any remaining containers using the
io.x-k8s.kind.cluster label so that the next kind delete attempt starts
from a clean state.

Fixes kubernetes-sigs/kueue#8908

* fix: simplify kind cluster cleanup retries

Address review feedback by retrying only kind delete cluster with a shorter exponential backoff (1s initial delay, 5 attempts). Remove manual docker kill/rm cleanup to keep the bash logic simple, and document the upstream Docker issues as the reason for the temporary workaround.

Add scheduler tests for hierarchical cohort lendingLimit (#9136)

Add two test cases to verify lendingLimit behavior when borrowing
resources across hierarchical cohort structures:

- hierarchical cohort respects lending limit when borrowing
- hierarchical cohort allows borrowing up to lending limit

Graduate SanitizePodSets feature gate to GA (#9260)

Set SanitizePodSets to GA with LockToDefault: true in v0.17.
Remove the feature gate check from SanitizePodSet(), the disabled
feature gate test case, and update documentation.

[Refactor] Move all metrics ops to metrics.go in cache.queue (#9295)

* [Refactor] Move all metrics ops to metrics.go in cache.queue

* make names consistent

Graduate LendingLimit feature gate to GA (#9258)

Promote LendingLimit to GA at v0.18 with LockToDefault: true.
Remove all feature gate checks from production code and clean up
test cases that verified behavior when the feature was disabled.

Align the Kueue KEP template with the K8s KEP template (#9276)

Optimize UpdateKueueConfiguration. (#9275)

Enable TAS with ElasticJobsViaWorkloadSlices feature (#8580)

This change enables Topology-Aware Scheduling (TAS) to work correctly
with the ElasticJobsViaWorkloadSlices feature, which allows jobs to
dynamically scale via workload slices.
When ElasticJobsViaWorkloadSlices is enabled and a workload slice is
being replaced, the previous topology assignment is preserved for
existing pods, ensuring pods across slices are found correctly.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix race in RemoveRemoteObjects where remote LWS is not deleted (#9201)

When MultiKueueGC deletes the remote workload before the reconciler
processes the deletion, RemoveRemoteObjects would early-return on
remWl == nil without deleting the remote controller object (e.g., LWS).

Move DeleteRemoteObject before the nil check to ensure the remote
controller object is always deleted regardless of remote workload state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flake in scale-down logic for LeaderWorkerSet (#9135)

* Fix flake in scale-down logic for LeaderWorkerSet

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Add tests to prove the need of UpdatedReplicas check during rolling updates

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

[Refactor] queue.Manager Factory for integ tests (#9224)

Set certificate authority instead of insecure options in dev setup (#9312)

mark MultiKueueAllowInsecureKubeconfig as deprecated in feature gate (#9297)

Temporarily disable the TAS+ElasticWorkloads test (#9317)

Add podSecurityContext and containerSecurityContext to KueueViz Helm … (#9311)

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

Automate adding kind/* labels to cherry-pick PRs #9222 (#9290)

[Refactor] queue.Manager Factory for unit tests (#9321)

Increase the timeout for waiting for the Deployment update to start and check if ObservedGeneration changed. (#9315)

* Increase the timeout for waiting for the Deployment update to start.

* Check if ObservedGeneration changed in Deployment Status.

* Check if generation equal ObservedGeneration.

Upgrade MPI Operator version to v0.8.0 and enable TAS E2E tests (#9330)

* Update MPI Operator version to v0.8.0

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Enable MPIJob TAS E2E rank-ordering tests

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

promote local queue defaulting to ga (#9299)

Align CERTMANAGER configs. (#9332)

doc: Update the minimum MPI Operator version (#9335)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

KEP-8303: MultiKueue Orchestrated Preemption (#8985)

* Add first draft of KEP-8303: MultiKueue Synchronized Preemptions

* Add missing KEP number

* Reword main KEP goal

* Update KEP reviewers

* Expand the KEP content to include more detailed semantics of the proposal

* Remove wrong non-goal

* Add new non-goal

* Expand the beta API proposal with strictness of the gate

* Update the beta API with enum instead of boolean

* Add structure to the values of the proposed annotation

* Update the scheduler explanation section

* Explicitly specify the semantics of `PreemptionGateTimeout`

* Move dynamic timeout default to alternatives

* Update the comparison table between preemption annotations

* Fix leftover mentions of old design

* Finalize the API design: extend Workload API in alpha

* Rename the feature gate

* Update alternatives

* Update the proposal with a new `Condition`

* Update the creation date of the KEP

* Apply suggestions from code review

* Add missing step to the MK controller description

* Add early exit to the MK controller logic

* Rename open/closed to active/inactive

* Fix typo in API definition

* Fix grammar - 'disactivate' -> 'deactivate'

* Add paragraph about setting spec

* Fix typo 'born' -> 'blocked'

* Remove filtering out workloads with reserved quota for simplicity

* Mention having to check both the spec and status of workload

* Disambiguate active preemption gate

* Use `LastTriggeredTime` instead of `Condition`

* Remove dubious advantage of spec/status split

* Update the controller algorithm with early exit

* Rename 'synchronization' to 'orchestration'

* Add 'presence as active' alternative

* Expand the scheduler impact description

* Update ToC

* Add table explaining flavor selection

* Fix typos in the content

* Add more context to the requeueing logic

* Remove paragraph about `cannot-preempt` behavior similarity

* Fix alternatives section nesting

* Apply review comments

* Make `LastTriggeredTime` optional

* Remove confusing step from controller implementation

* Explicitly mention the controller updating the status of preemption gates

* Address review comments

* Add missing comments to proposed API

* Revert back to using a new condition for signaling

* Fix alternative nesting

* Rename active/inactive to open/closed

* Add alternative to place timeout in `MultiKueueConfig`

* Reword condition description comment

* Mention eviction atomicity

* Fix wording on the condition extension alternative

FIX: Drop default podSecurityContext and containerSecurityContext to KueueViz frontend (#9339)

Reduce the TAS performance test results variance (#9238)

* Reduce the TAS performance test results variance

The average admission time reported in TAS performance test is too
unstable:
60 workloads (large-balanced-rack) → 37.1% CV
90 workloads (medium-balanced-rack) → 34.7% CV
120 workloads (medium-preferred-block) → 32.3% CV
180 workloads (medium/small-required/preferred-rack) → ~9% CV
300 workloads (small-required-rack) → 5.3% CV
where CV (Coefficient of Variance) = variance / average.

Specifying thresholds for the admission time now would make the
TAS performance test results flaky.

This commit attempts to reduce the variance down to <10% by increasing
the workloads count and making the Law of Large Numbers work for us.

* Match tas performance test counts with baseline

One difference remaining is that TAS workloads have multiple pods in
them.

All 3 workload sets have different tas constraints to test the
performance impact of all of them.

* Add more workload set combinations

Keep the workload count the same, but test all the combinations of
different workload sizes with all the possible TAS constraints.

Fix ExpectNewWorkloadSlice to retry until workload is found (#9331)

The function was supposed to wait until a new workload appeared,
but it returned immediately after checking the list even if nothing
was found yet. This caused the test to fail randomly when the controller
was slower than expected. Keep retrying until the workload is actually
found, and clear the result before each retry to avoid returning stale data.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Update _index.md (#9351)

Fix feature-gates ConfigMap example.

promote ObjectRetentionPolicy to GA (#9300)

Test cleanup fix.

Included coverage of the "admission with no flavors" case in workload controller.

Included coverage of the "admission with no flavors" case in workload controller.

Import fix.

Test setup correction.

Moved workload admission definitions back into the bodies of the relevant tests.

Adds logging.

Foramtting.

Temporary - increase flaky e2e test verbosity.

e2e mk deployment test update - safeguard against flakyness.

test restructure

LOg message cleanup.

Logs cleanup.

Unnecesary util fiunc cleanup.

Optimized migration script to allow migration of namespaced resources by namespace (#9340)

* Optimized migration script to allow migration of namespaced resources by namespace.

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

---------

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

Automate adding kind/* labels to cherry-pick PRs #9222 (#9362)

* Follow-up

fix: quota double-counting for unchanged podSets in Workload Slices (#9322)

* Fix quota double-counting for unchanged podSets in workload slicing

* Add e2e tests for elastic workloads

* Remove downscale checks as these aren't managed by flavor assignment logic

* fix: integ test and podSet field being immutable (for upscales)

* address comments

* keep empty quota

* update assignment usage comment

Handle NoExecute taint as an unhealthy node (#8964)

* TAS Replace Node On Taints implementation

* refactor node failure controller

* use job instead of jobset

* cleanup

TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaluted (#8685)

* TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaludated

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* decouple E2E test from existing one

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Simplify the number of PodSet detection

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

Extend resource transformation integration tests. (#9356)

[Refactor] Terminate Workloads Sequentially in Integration Test (#9346)

Fix e2e certmanager kustomization missing vars (#9372)

Use v1beta1 as prefered API resource version. (#9367)

MultiKueue + TAS setup script: bump Kueue to 0.16 (#9308)

* MultiKueue + TAS setup script: bump Kueue to 0.16

* Address comments

Bump systeminformation from 5.27.14 to 5.31.1 in /test/e2e/kueueviz (#9373)

Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 5.27.14 to 5.31.1.
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v5.27.14...v5.31.1)

---
updated-dependencies:
- dependency-name: systeminformation
  dependency-version: 5.31.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add common code into raycluster/common.go (#9376)

* Add common code into raycluster/common.go

* Remove ByRayClusterSpec from names

* Update usage of common code

Add Prometheus e2e tests (#9031)

e2e testing: load images into kind worker nodes in parallel #9052 (#9294)

Remove deprecated TASProfileLeastFreeCapacity feature gate (#9298)

* Remove deprecated TASProfileLeastFreeCapacity feature gate

The TASProfileLeastFreeCapacity feature gate was deprecated in v0.11,
superseded by TASProfileMixed which uses LeastFreeCapacity only for
unconstrained requests and BestFit for required/preferred. This removes
the gate, simplifies validation logic, and drops all associated tests.

* add back validation code in case we add more tas profiles

KEP-2724: Add multi-level topology aware scheduling design (#9243)

* KEP-2724: Add multi-level topology aware scheduling design

Add the design for multi-level TAS, which extends two-level
scheduling to support N slice layers across deeper topology
hierarchies (e.g., datacenter → block → rack → host).

* fixup: fix comments

Self-nominate olekzabl as reviewer (#9366)

Optimize checkFlavorForPodSets(). (#9390)

Refactor string literals to common consts in raycluster, pod, job controller reconciler tests (#9393)

Optimize migrate-to-v1beta2.sh to allow downgrade. (#9383)

* Optimize migrate-to-v1beta2.sh to allow downgrade.

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

---------

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

Fix prometheus operator setup in e2e-k8s-main-was target (#9403)

Fix flaky workload retention test after manager restart (#9384)

Adds a controller-readiness barrier after restartManager() to ensure
controllers are processing events before deleting the workload.
Without this, gauge metric assertions passed from stale prometheus
state, allowing the delete to race ahead of controller startup.

using replacements instead of vars (#9239)

* using replacements instead of vars

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* commenting out optional changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* adding certmanager message back

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* removing accidentally committed dependency from project

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* additional formatting

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting fixes

* Revert e2e certmanager kustomization to keep PR focused

* formatting yaml, removing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* remove trailing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Fix hack/tools module path to match directory structure (#9408)

KubeRay: Add RayService controller as top level job (#9102)

* Add RayService controller as top level job

* Update helm chart yaml files

* Use build and update logic for RayService PodSets method

* Fix lint issue

* Update processing-plan.yaml

* Clean up rayservice webhook and multikueue adapter and update tests

* Use hardcode Running message in RayService.Finished

* Remove pod debugging log in e2e test

* Remove rayservice multikueue adapter

* Replace Status.ServiceStatus with Condition check

* Move RayJob/RayService common code to raycluster package

* Remove ByRayClusterSpec from names

* Add rayservice to integration and clean up code

Add example ConfigMap for RayJob autoscaling documentation (#9410)

Include the ray-job-autoscaling-code-sample.yaml ConfigMap in the
autoscaling example section of the RayJob docs (en and zh-CN), along
with kubectl commands to apply it. This mirrors the pattern used in
the non-autoscaling example section.

Bump golangci-lint to v2.10.1 (#9389)

Bump rajatjindal/krew-release-bot from 0.0.47 to 0.0.50 in the all group (#9418)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.47 to 0.0.50
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.47...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.50
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix dev mode e2e setup to skip prometheus config when feature is not selected (#9417)

Fix InsertText test cases in yaml-processor (#9409)

Fix: fix cohortName field for `v1beta2.ClusterQueue` (#9394)

* Fix ClusterQueue builder for v1beta2

* Update references in comments

* Update references in other files - automatic update

docs: document suspend behavior for raycluster/rayservice/rayjob (#8900)

Updated documentation for RayCluster, RayJob, and RayService to clarify that Kueue manages the `suspend` field and overrides it upon admission.

Signed-off-by: Abirdcfly <fp544037857@gmail.com>

Fix stale replica-role in scheduler logs after leader election (#9429)

Add cluster-queue-name and local-queue-name labels for pods coming from admitted workloads (#9348)

* Add queue labels to pod template for jobs

* Add queue labels to pods in existing tests

* Add queue pod labels to docs

* Add feature gate for queue pod labels and validation

* Revert testfile changes to avoid conflicts with pretask

* Add checks for new labels in e2e tests

* Add queue label checks to unit tests

* Fix incorrect table test name

Cleanup RayService controller code (#9430)

* Use 600m cpu for RayService e2e test

* Update suspend related doc for RayService

* Add rayservice to integrations in helm chart values file

* Update RayJob test wrapper

Fix discarded ctx from ctrl.LoggerInto causing missing replica-role in logs (#9445)

Fix missing roleTracker in NonTasUsageReconciler (#9433)

[Refactor] Add context to integ manager factory (#9458)

Fix race in KubeConfigFSWatcher tests by making Start() blocking (#9459)

[Docs][zh]sync tasks/run/deployment (#9442)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/plain_pods (#9443)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/leaderworkerset (#9444)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/statefulset (#9446)

Signed-off-by: xin.li <xin.li@daocloud.io>

upgrade to beta (#9450)

[flake] fix Admission Fair Sharing test (#9471)

[flake] fix Admission Fair Sharing test2 (#9476)

Narrow TAS ResourceFlavor spec immutability to topology-sensitive fields (#9427)

* Restrict the fields that are immutable in ResourceFlavorSpec when using TAS

* Remove nodeTaints from ResourceFlavor immutability check

* Fix formatting failures

* Fix documentation by removing unwanted comments

Fix a flavorFungibility preference bug (#9464)

* Reproduce a flavor fungibility preference bug (https://github.com/kubernetes-sigs/kueue/issues/9462)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Fix a flavorFungibility preference bug where explicit preference specifications are reversed behavior

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

[flake] fix e2e metrics test (#9485)

Asynchronous Inadmissible Workload Requeueing (#9232)

* Asynchronous Inadmissible Workload Requeueing

* address comments

* workqueue

Bump github.com/cloudflare/circl from 1.6.1 to 1.6.3 in /hack/tools (#9491)

Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.6.1 to 1.6.3.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.6.1...v1.6.3)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-version: 1.6.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump rollup from 4.43.0 to 4.59.0 in /cmd/kueueviz/frontend (#9496)

Bumps [rollup](https://github.com/rollup/rollup) from 4.43.0 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.43.0...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Localize topology (#9423)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync multikueue (#9436)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync concepts/_index (#9424)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]Localize elastic_workload (#9425)

Signed-off-by: xin.li <xin.li@daocloud.io>

Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~11h (#9493)

* Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~5.69h

Bump the bucket count from 14 to 15 so the max boundary becomes
20480s (~5.69h).

* Bump to 16 buckets

feat: update metrics for local queue kep to beta (#9370)

[Fair Sharing] Prefer nominal-quota workloads in admission ordering (#9484)

* Give priority to workloads that can fit within quota during fair sharing

* Add e2e tests. Create a feature gate

* Change feature gate to beta and get make verify to work

Add windsonsea and my-git9 to zh-CN docs approver (#9497)

Signed-off-by: xin.li <xin.li@daocloud.io>

Bump actions/setup-go from 6.2.0 to 6.3.0 in the all group (#9509)

Bumps the all group with 1 update: [actions/setup-go](https://github.com/actions/setup-go).

Updates `actions/setup-go` from 6.2.0 to 6.3.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5...4b73464bb391d4059bd26b0524d20df3927bd417)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Add tasks/run/using_hami (#9505)

Signed-off-by: xin.li <xin.li@daocloud.io>

inadmissible workloads - delete already processed logic (#9513)

Update RayService doc due to recent top level job change (#9460)

* Update RayService doc

* Extra version change

* Remove restart instruction

* Revert "Remove restart instruction"

This reverts commit 61594c3064b9e769a0f6c12d0625e24343e7d935.

log inadmissible workload requeue count (#9512)

move certs test (#9521)

[flake] increase batch period for requeue inadmissible test (#9531)

Fix StatefulSet MultiKueue adapter selection by creating workload in STS reconciler (#9344)

[website][zh] translation of YAML annotations for using_hami (#9517)

Signed-off-by: xin.li <xin.li@daocloud.io>

[website][zh]sync run/kubeflow/mpijobs (#9518)

Signed-off-by: xin.li <xin.li@daocloud.io>

Clean up workaround for the MPI Operator installation in E2E (#9546)

Remove the yq workaround that dropped empty rules for aggregated
ClusterRoles. The new MPI Operator version includes the fix.

Ref: https://github.com/kubernetes-sigs/kueue/issues/9375

[flake] fix StatefulSet e2e test when manageJobsWithoutQueueName=true (#9542)

fix perf test flakiness caused by informer relist (#9543)

The Create predicate assumed Create events always mean freshly created,
non-admitted workloads, so it returned false for all of them.  This
breaks during informer relist: if the watch closes and the client
relists, workloads admitted during the gap appear as Create events and
were silently dropped, so Reconcile() was never called and they were
never marked Finished.

Fix the predicate to return true only for admitted, unfinished workloads,
mirroring the Update path.  Add a unit test covering all four cases.

fix(scheduler): relax strict admission attempt expectations in flaky tests (#9554)

* fix(scheduler): relax strict admission attempt expectations in flaky tests

* fix(scheduler): keep scope to scheduler_test for #9526

Add subpage in observability about resource usage monitoring (#9461)

* Add observability webpage about resource usage monitroing

* Refine the site

* Refine the resource monitoring docs

* Add kubectl top result to resource usage docs

Bump the kubernetes group across 3 directories with 11 updates (#9560)

Bumps the kubernetes group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.35.1` | `0.35.2` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.35.1` | `0.35.2` |
| [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) | `0.35.1` | `0.35.2` |
| [k8s.io/component-helpers](https://github.com/kubernetes/component-helpers) | `0.35.1` | `0.35.2` |
| [k8s.io/kubectl](https://github.com/kubernetes/kubectl) | `0.35.1` | `0.35.2` |

Bumps the kubernetes group with 1 update in the /cmd/experimental/kueue-populator directory: [k8s.io/api](https://github.com/kubernetes/api).
Bumps the kubernetes group with 1 update in the /cmd/kueueviz/backend directory: [k8s.io/api](https://github.com/kubernetes/api).

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiextensions-apiserver` from 0.35.1 to 0.35.2
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiserver` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/cli-runtime` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-base` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-base/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-helpers` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-helpers/compare/v0.35.1...v0.35.2)

Updates `k8s.io/kubectl` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/kubectl/compare/v0.35.1...v0.35.2)

Updates `k8s.io/metrics` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/metrics/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/code-generator` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/code-generator/compare/v0.35.1...v0.35.2)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/cli-runtime
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-base
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-helpers
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/kubectl
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/metrics
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/code-generator
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Update main with the latest v0.16.2 (#9574)

update changelog for v15 (#9578)

Bump the all group across 3 directories with 3 updates (#9558)

Bumps the all group with 1 update in the /cmd/kueueviz/frontend directory: [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).
Bumps the all group with 1 update in the /site directory: [autoprefixer](https://github.com/postcss/autoprefixer).
Bumps the all group with 1 update in the /test/e2e/kueueviz directory: [cypress](https://github.com/cypress-io/cypress).

Updates `react-router-dom` from 7.13.0 to 7.13.1
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.13.1/packages/react-router-dom)

Updates `autoprefixer` from 10.4.24 to 10.4.27
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.24...10.4.27)

Updates `cypress` from 15.10.0 to 15.11.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v15.10.0...v15.11.0)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: autoprefixer
  dependency-version: 10.4.27
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: cypress
  dependency-version: 15.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

test(cleanup): treat unknown kind cluster as successful deletion (#9577)

update release template post release 0.15.5/0.16.2 (#9579)

* update release template post release 0.15.5/0.16.2

* clarify

test(multikueue): increase TAS completion wait to VeryLongTimeout (#9572)

test(perf): relax baseline small admission threshold for flake (#9581)

[Fair Sharing] If workload fits in nominalQuota for a flavor, ignore DRS checks during preemption (#9494)

* Preempt in fair sharing if CQ within nominal. Add feature gate. Change reason to InCohortReclamation

Change to beta

Remove refactor

Revert some remnants of refactor. Make test changes clearer

* Add new feature flag

* Address review comments

Set TAS perf test thresholds (#9495)

Prevent duplicate preemption requests across scheduling cycles (#9437)

Use expectations.Store (same pattern as pod controller) to track
workloads with in-flight preemptions. The expectation is set before
calling Evict and rolled back on failure. It is cleared by the workload
controller when the eviction (or deletion) is observed.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump github.com/cert-manager/cert-manager from 1.19.3 to 1.19.4 (#9561)

Bumps [github.com/cert-manager/cert-manager](https://github.com/cert-manager/cert-manager) from 1.19.3 to 1.19.4.
- [Release notes](https://github.com/cert-manager/cert-manager/releases)
- [Changelog](https://github.com/cert-manager/cert-manager/blob/master/RELEASE.md)
- [Commits](https://github.com/cert-manager/cert-manager/compare/v1.19.3...v1.19.4)

---
updated-dependencies:
- dependency-name: github.com/cert-manager/cert-manager
  dependency-version: 1.19.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Refresh the PR template to add KEP label and areas (#9590)

Bump cypress/base from 24.13.1 to 24.14.0 in /hack/testing/cypress (#9557)

Bumps cypress/base from 24.13.1 to 24.14.0.

---
updated-dependencies:
- dependency-name: cypress/base
  dependency-version: 24.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Cleanup unused exported functions. (#9601)

Use NewPodSetReference() instead if PodSetReference(). (#9602)

Added a missing backslash in the  command for kueueviz (#9605)

Signed-off-by: michaelkotelnikov <michael.kot97@gmail.com>

Bump go.opentelemetry.io/otel/sdk from 1.38.0 to 1.40.0 in /hack/tools (#9607)

Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.40.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.40.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.40.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump minimatch in /test/e2e/kueueviz (#9613)

Bumps  and [minimatch](https://github.com/isaacs/minimatch). These dependencies needed to be updated together.

Updates `minimatch` from 7.4.6 to 7.4.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 7.4.9
  dependency-type: indirect
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools (#9614)

* Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools

Bumps [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) from 0.155.3 to 0.157.0.
- [Release notes](https://github.com/gohugoio/hugo/releases)
- [Commits](https://github.com/gohugoio/hugo/compare/v0.155.3...v0.157.0)

---
updated-dependencies:
- dependency-name: github.com/gohugoio/hugo
  dependency-version: 0.157.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Sync hugo version

* Fix after bump.

* Fix seo_schema.html.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix parsing of repo name and org in releasing scripts (#9617)

Fix the appwrapper e2e test (#9620)

test(tas): wait for TrainingRuntime visibility before creating TrainJob (#9571)

The e2e TAS TrainJob tests can flake when attempting to create a
TrainJob immediately after creating its referenced TrainingRuntime.
This happens because the Validation Webhook for TrainJobs relies on
an informer cache to verify the referenced TrainingRuntime exists.

If the Create request hits the webhook before the informer cache
synchronizes the new TrainingRuntime, the webhook rejects the TrainJob
creation with a "not found" error.

This commit introduces a local helper `createTrainJobWithRetry` that
wraps the TrainJob creation in an `Eventually` block, ignoring
transient "not found" or webhook errors until the cache is fully
synchronized and the creation succeeds.

e2e testing: use RequestAndLimit consistently (#9623)

* e2e testing: use RequestAndLimit consistently

* test

* fix

* fix lws

Refactor featuregate setup in tests to reduce possibility of flaky tests conflicts (#9600)

* Refactor feature gate setup in tests to use SetFeatureGateDuringTest for DynamicResourceAllocation, AdmissionFairSharing, and TASBalancedPlacement

* Remove unused feature gate setup in tests for AdmissionFairSharing and TASBalancedPlacement

* sync ##9603

* Remove unused feature gate setups in tests for AdmissionFairSharing and TopologyAwareScheduling

Skip PushOrUpdate for inflight workloads to prevent spurious scheduling cycles (#9598)

When a workload is popped by the scheduler (inflight), a concurrent
PushOrUpdate from the workload controller can push it onto the heap
while the scheduler also places it in the inadmissible set. This
causes an extra scheduling cycle.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump sigs.k8s.io/jobset from 0.11.0 to 0.11.1 (#9562)

Bumps [sigs.k8s.io/jobset](https://github.com/kubernetes-sigs/jobset) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/kubernetes-sigs/jobset/releases)
- [Changelog](https://github.com/kubernetes-sigs/jobset/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/jobset/compare/v0.11.0...v0.11.1)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/jobset
  dependency-version: 0.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Execute all FG validations at once #9355 (#9547)

- ValidateFeatureGates now returns field.ErrorList and collects all errors
- Update TestValidateFeatureGates to assert actual vs expected field errors
- Add test case for multiple FG validation errors returned at once

Add LockToDefault for PropagateBatchJobLabelsToWorkload GA feature gate (#9640)

Update kep.yaml files for v0.17 GA feature promotions (#9642)

* Update KEP 2936 (LocalQueueDefaulting) stage to stable for GA promotion

* Update KEP 1618 (ObjectRetentionPolicies) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, adds stable
milestone, and sets disable-supported to false.

* Update KEP 693 (MultiKueue) kep.yaml for MultiKueueBatchJobWithManagedBy GA

Updates latest-milestone to v0.17, adds stable milestone, and sets
disable-supported to false following MultiKueueBatchJobWithManagedBy
GA promotion.

* Update KEP 1834 (PropagateBatchJobLabelsToWorkload) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, and adds stable
milestone.

Bump rajatjindal/krew-release-bot in /hack/releasing/krew-release-bot (#9556)

Bumps [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot) from v0.0.46 to v0.0.50.
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.46...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: v0.0.50
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Use List to verify LWS state in reconciler tests (#9654)

* Use List to verify LWS state in reconciler tests

* Fix gofmt and gci formatting

Bump rajatjindal/krew-release-bot from 0.0.50 to 0.0.51 in the all group (#9648)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.50 to 0.0.51
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.50...v0.0.51)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.51
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add E2E test suite for MultiKueue with TAS (#9396)

* Add TAS asymmetric-quota tests to multikueue E2E suite

Add two new test cases to the existing multikueue TAS Describe
block in test/e2e/multikueue/tas_test.go, using asymmetric
worker quotas (worker1=2CPU, worker2=1CPU) to enable
deterministic routing assertions:

- Preferred topology routing: 1500m CPU job routes to worker1
- Required topology: 500m CPU job admitted on either worker

Extract waitForTopologyAssignment and
waitForDelayedTopologyRequestReady helpers to reduce
duplication across existing and new tests. Use
MakeDefaultOneLevelTopology and batchv1.JobNameLabel
for consistency.

* fix: hoist managerWl outside Eventually in waitForDelayedTopologyRequestReady

generalize MustCreateWithRetry and apply (#9653)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Fix LendingLimit feature-state version tag in cluster_queue.md (#9643)

The LendingLimit feature was promoted to GA in v0.17, not v0.18.
Update the feature-state version tag to reflect the correct version.

Multikueue dev setup for E2E test cluster: extend SA token expiration time to 7d (#9540)

* Set SA expiration time to 7d for e2e dev mode

* update worker-cluster.kind.yaml

* update worker-cluster.kind.yaml

* Revert "Merge branch 'cleanup/mk-dev-setup-sa-token-exp-e2e' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp-e2e"

This reverts commit e5b959ed01486ee051b64db134e38c3e2a57aea3, reversing
changes made to 33a4149b0f6c786273e5ccaa5d8ae23df6d37cff.

Add wayve.ai as an adopter (#9663)

* Add wayve.ai as an adopter

* Improved description

* Fix syntax issue

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig (#9604)

* Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* Adding messages pinpointing failures alogn failfast

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting log

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* untangling code

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Update RayService E2E test to check http endpoint inside the RayService (#9660)

* Update RayService E2E test to check http endpoint inside the RayService

* Use system generated port like 0:remotePort

Forcefully remove stuck pods in the failure recovery controller (#9651)

* Forcefully remove stuck pods in the failure recovery controller

* Add e2e test for `FailureRecoveryPolicy`

* Exclude buffer from the termination timeout

* Add e2e test for `FailureRecoveryPolicy` during foreground deletion

* Code review fixes

* Update the KEP with the new failure recovery logic

* Rename 'terminate' to 'delete'

* Fix e2e test

* Check the failure recovery condition to filter out more executions

* Add missing `gomega.Succeed()`

* Fix import formatting

* Fix e2e test timeouts

* Mention condition check in KEP

* Wait longer for job to be admitted in e2e test

* Use `ContainsFunc` in Pod utils

* Wrap the e2e tests with ginkgo.By

* Shorten the pod grace termination period

* Add `ginkgo.By` steps to `BeforeEach` and `AfterEach`

[KEP] Add a mechanism to consider preemption cost when finding preemption candidates (#8551)

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* priority-boost

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

Update KEP-6757 history to include changes after foreground propagated deletion fix (#9675)

* Mention the annotation name change in the KEP history

* Mention which versions use which annotation name

* Mention which versions retain the old behaviour

Small clarifications in scheduling code (#9674)

Fix inadmissible workload stuck after priority update (#9661)

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Watch workload deletions to trigger LWS reconciliation (#9631)

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Refactor of check filtering to reduce code duplication.

Test refactor.

Fix typo in README: 'Build-in' → 'Built-in' (#9683)

* Fix typo in README: 'Build-in' → 'Built-in'

* docs: fix abbreviation formatting: 'eg.' → 'e.g.'

TAS: support ResourceTransformations (#8963)

* Create integration test.

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

* TAS: support ResourceTransformations

---------

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

Fix shellcheck SC2086 ignore (#9646)

* make test-e2e not parsing GINKGO_ARGS properly #9477

* Fix shellcheck SC2086 ignore #9477

Promote HierarchicalCohorts to GA (#9618)

* Promote HierarchicalCohorts to GA

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Remove deprecated API references

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Fix generateName for StatefulSets by including UID in workload name (#9091)

* Fix generateName for StatefulSets by including UID in workload name

* Support StatefulSet workloads created without UID in name

* Propagate non-NotFound errors in findWorkloadName

feat: add multi-layer topology constraints for TAS (#9506)

* KEP update to reflect the latest impl.

* feat: add multi-layer topology constraints for TAS

Introduce the TASMultiLayerTopology feature gate (alpha) to support
up to 3 hierarchical slice layers in topology-aware scheduling.

- Add `PodsetSliceRequiredTopologyConstraints` field to
  `PodSetTopologyRequest` and the corresponding pod annotation
- Extend TAS flavor snapshot to handle multi-layer placement
- Add validation for the new field (mutual exclusivity with
  existing single-layer fields, layer ordering, size divisibility)
- Add v1beta1 <-> v1beta2 conversion support
- Add integration tests for multi-layer scheduling

* make generate && make verify

* fixup: address comments

Bump the all group across 1 directory with 3 updates (#9703)

Bumps the all group with 2 updates in the /cmd/kueueviz/frontend directory: [@mui/icons-material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material) and [serve](https://github.com/vercel/serve).

Updates `@mui/icons-material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-icons-material)

Updates `@mui/material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-material)

Updates `serve` from 14.2.5 to 14.2.6
- [Release notes](https://github.com/vercel/serve/releases)
- [Changelog](https://github.com/vercel/serve/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vercel/serve/compare/v14.2.5...v14.2.6)

---
updated-dependencies:
- dependency-name: "@mui/icons-material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: "@mui/material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: serve
  dependency-version: 14.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gin-gonic/gin in /cmd/kueueviz/backend (#9707)

Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/gin-gonic/gin/releases)
- [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gin-gonic/gin/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: github.com/gin-gonic/gin
  dependency-version: 1.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/kueue from 0.16.1 to 0.16.2 in /cmd/kueueviz/backend (#9709)

Bumps [sigs.k8s.io/kueue](https://github.com/kubernetes-sigs/kueue) from 0.16.1 to 0.16.2.
- [Release notes](https://github.com/kubernetes-sigs/kueue/releases)
- [Changelog](https://github.com/kubernetes-sigs/kueue/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/kueue/compare/v0.16.1...v0.16.2)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/kueue
  dependency-version: 0.16.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3 (#9704)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime in /cmd/kueueviz/backend (#9708)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Remove duplicates of using ContextWithLog(t). (#9717)

KEP: add kueueviz auth (#8971)

* KEP: add kueueviz auth

Signed-off-by: samzong <samzong.lu@gmail.com>

* update KEP details

Signed-off-by: samzong <samzong.lu@gmail.com>

* KEP-5993: adopt Alpha-first graduation and refine design

Signed-off-by: samzong <samzong.lu@gmail.com>

* remove featuregateway in design

Signed-off-by: samzong <samzong.lu@gmail.com>

---------

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: add token-based authentication for backend and frontend (#9684)

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: fetch Cohort CRD directly, instead of deriving from ClusterQueues (#9719)

Signed-off-by: samzong <samzong.lu@gmail.com>

Propagate contextual logger to workload.Info.Update (#9723)

Add logr.Logger parameter to workload.Info.Update() so callers can
pass a contextualized logger for V(5) debug logging. This keeps
workload.Info as a pure data struct without embedding runtime state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flaky test for sticky workload (#9718)

Add KEP to support `QuotaCheckStrategy` (#8396)

This commit details the changes required to support a new
configuration field, `QuotaCheckStrategy`.

Self-nominate kshalot as reviewer (#9692)

Add KEP-7066: Custom metadata labels for Kueue metrics (#9225)

* Add KEP-7066: Custom metadata labels for Kueue metrics

* Refine KEP-7066 design details and validation rules

* Add explicit source key mapping to KEP-7066 configuration

* Expand KEP-7066 to cover Cohort metrics

* Refine KEP-7066 structure and validation rules

Skip equivalent inadmissible workloads in BestEffortFIFO scheduling (#9698)

When the scheduler evaluates a workload and gets NoFit from FlavorAssigner,
bulk-move all heap workloads with the same scheduling hash to inadmissible.
This reduces scheduling cost from O(workloads) to O(equivalence classes),
allowing the scheduler to reach schedulable workloads deep in the queue.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

add handler in leader workset reconiler (#9740)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Bump ShortConsistentDuration. (#9749)

Provide a metric for cohort nominal quota (#9132)

* Add CohortNominalQuota metric

* Rework after code review

Propagate contextual logger to scheduling hash computation via UpdateSchedulingHash (#9731)

Add UpdateSchedulingHash(log) method to workload.Info so production
callers can compute the scheduling hash with a contextual logger
after NewInfo construction. NewInfo signature stays unchanged.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Cleanup Consistently. (#9756)

Scheduling: reduce the maximal backoff time from 100ms to 10ms (#9697)

* Reduce the max backoff time from 100ms to 10ms

* simplify the code to drop configurable maxBackoff

* add comments to the consts

[MinimalKueue] Add HeapProfile(). (#9759)

Multikueue dev setup: extend SA token expiration time (#9516)

* Update SA setup for MultiKueue dev setup and related doc

* Set SA expiration time to 7d for e2e dev mode

* Set SA expiration time to 7d for e2e dev mode

* Revert "Set SA expiration time to 7d for e2e dev mode"

This reverts commit e9cba59eaa6ead5488d80287f3e40078efaa4cfa.

* Undo Merge branch 'cleanup/mk-dev-setup-sa-token-exp' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp

feat: enhance error message for multi-layer topology constraints (#9739)

* feat: enhance error message for multi-layer topology constraints

Add detailed noFit messages for multi-layer TAS topology that report
per-level slice fit counts (e.g., "1/2 slice(s) fit on level block;
3/4 slice(s) fit on rack; 6/8 slice(s) fit on hostname").

* fixup: add UT for enough hostname slices but insufficient rack slices

kueueviz: support hierarchical cohorts with tree view (#9725)

Signed-off-by: samzong <samzong.lu@gmail.com>

feat(kueueviz/backend): drop polling and switch to informers (#8707)

Signed-off-by: Josef Kolář <josef.kolar@firma.seznam.cz>

Add E2E_SKIP_REINSTALL flag that working in E2E_MODE=dev mode, Add KUEUE_DEPLOYMENT_NAME const for controller manager deployment string (#9753)

Optimize gomega.Eventually() for populator. (#9777)

Decouple borrowing state from DRS ratio value (#9738)

* Add IsBorrowing function in DRS to be explicit about borrowing rather than assuming 0 DRS value means borrowing.

* Address review comments

Spell fix.

TAS: Improve scheduling performance by caching nodes (#9712)

* TAS: Improve scheduling performance by caching nodes

* Rename AddOrUpdateNode() to SyncNode().

Self-nominate sohankunkerkar as reviewer (#9776)

Optimize ContextWithLog() to allow use testing.TB. (#9780)

Update pkg/workload/workload.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Added comments to better explain the logic of "AdmissionChecksForWorkload" function.

Spell fix.

Tests update.

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Move test for clarity.

connection util update

Test fix.

Update cohort metric name (#9787)

Fix NodeHotSwap for multi-layer TAS topology constraints (#9733)

This fixes two issues with NodeHotSwap replacement in multi-layer topology:

1. Domain Selection (requiredReplacementDomain): When multiple slice
   constraints are configured (e.g., [{rack: 8}, {switch: 4}, {hostname: 2}]),
   the code was using only the outermost constraint to find the replacement
   domain. This could place replacements in the wrong sub-domain.

   Fix: Iterate from innermost to outermost constraint and use the first
   (innermost) broken constraint's domain to confine the search.

2. Slice Size (findReplacementAssignment): After clearing
   PodsetSliceRequiredTopologyConstraints, setting PodSetSliceSize alone
   was a dead write because getSliceSizeWithSinglePodAsDefault() requires
   PodSetSliceRequiredTopology to be set. This caused sliceSize=1, scattering
   replacement pods across hosts and violating hostname grouping constraints.

   Fix: Find the innermost satisfied constraint and set both
   PodSetSliceRequiredTopology and PodSetSliceSize to preserve leaf-level
   grouping.

Added test cases:
- 3-layer topology: validates innermost broken domain selection
- 2-layer topology: validates sliceSize prevents scattered placement

chore: Use slices instead of sort (#9781)

Fix missing replica_role=leader metrics after HA role transition (#9487)

test: use Job instead of JobSet in TAS rank ordering case (#9796)

TAS: improve performance of the addNode function. (#9791)

Use gomega.Eventually(func(g gomega.Gomega) pattern. (#9800)

* Use gomega.Eventually(func(g gomega.Gomega) pattern.

* Use wait.Group.

* Ignore conflict error.

feat(visibility): allow visibility server to use custom kubeconfig path (#9619)

* feat(visibility): allow visibility server to use custom kubeconfig path

* docs(visibility): clarify kubeConfig and kubeConfigPath usage in visibility server

* refactor(visibility): streamline kubeConfig handling in visibility server

* refactor(visibility): simplify kubeConfig path retrieval in visibility server

* refactor(visibility): remove redundant comments regarding kubeConfig in visibility server setup

* test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag

* Revert "test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag"

This reverts commit a4add98a15f4a581dd70d0aa57b87d7059f3ba85.

* feat(visibility): enable visibility server to utilize custom kubeconfig path

* test(visibility): add e2e tests for visibility server using custom kubeconfig with RBAC

* refactor(visibility): replace waitForDeployment with WaitForKueueAvailabilityNoRestartCountCheck in kubeconfig tests

* test(visibility): enhance clarity in kubeconfig test by adding descriptive step

* test(visibility): enhance RBAC tests for visibility server with custom kubeconfig

* fix(visibility): remove unused visibility import and ensure visibility scheme is added in init

* refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access

* Revert "refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access"

This reverts commit c11f57ac5d6c087ce94a7ce20e8c342e4c707b84.

* refactor(visibility): simplify kubeconfig test by removing unused visibility import and updating client usage

* fix(visibility): update cloneControllerRBAC to skip additional roles for SubjectAccessReview permissions

* Fix comments

* chore: remove trailing whitespace in `visibility_kubeconfig_test.go`

* Add TODO for internal server error

* refactor: replace `client.IgnoreAlreadyExists` with `util.MustCreate` for object creation in e2e tests.

* Remove CQ from test

* feat: introduce kubeconfig utility to resolve config and path, and pass the path to the visibility server for authentication and authorization configuration.

* refactor: extract k…
Singularity23x0 added a commit to Singularity23x0/kueue that referenced this pull request Apr 8, 2026
…flavor assigned (kubernetes-sigs#9359)

* Apply admission checks covering all CQ resources to workloads before
flavor assigned.
Adds tests to track the change.

Test setup fix.

Test setup and teardown fix.

Fit removed.

Adds fix with tests (it and unit).

fix incorrect pod placement during node replacement (#9211)

fix: retry kind cluster deletion to work around Docker race condition (#9261)

* fix: retry kind cluster deletion to work around Docker race condition

Add retry logic with exponential backoff to cluster_cleanup in
e2e-common.sh. Under CI (Docker-in-Docker on Linux with high IO
contention), 'kind delete cluster' can fail because Docker's internal
container kill has a hardcoded 2-second timeout that expires before the
container acknowledges the exit event (moby/moby#51028, moby/moby#51845).

Between retries, force-stop any remaining containers using the
io.x-k8s.kind.cluster label so that the next kind delete attempt starts
from a clean state.

Fixes kubernetes-sigs/kueue#8908

* fix: simplify kind cluster cleanup retries

Address review feedback by retrying only kind delete cluster with a shorter exponential backoff (1s initial delay, 5 attempts). Remove manual docker kill/rm cleanup to keep the bash logic simple, and document the upstream Docker issues as the reason for the temporary workaround.

Add scheduler tests for hierarchical cohort lendingLimit (#9136)

Add two test cases to verify lendingLimit behavior when borrowing
resources across hierarchical cohort structures:

- hierarchical cohort respects lending limit when borrowing
- hierarchical cohort allows borrowing up to lending limit

Graduate SanitizePodSets feature gate to GA (#9260)

Set SanitizePodSets to GA with LockToDefault: true in v0.17.
Remove the feature gate check from SanitizePodSet(), the disabled
feature gate test case, and update documentation.

[Refactor] Move all metrics ops to metrics.go in cache.queue (#9295)

* [Refactor] Move all metrics ops to metrics.go in cache.queue

* make names consistent

Graduate LendingLimit feature gate to GA (#9258)

Promote LendingLimit to GA at v0.18 with LockToDefault: true.
Remove all feature gate checks from production code and clean up
test cases that verified behavior when the feature was disabled.

Align the Kueue KEP template with the K8s KEP template (#9276)

Optimize UpdateKueueConfiguration. (#9275)

Enable TAS with ElasticJobsViaWorkloadSlices feature (#8580)

This change enables Topology-Aware Scheduling (TAS) to work correctly
with the ElasticJobsViaWorkloadSlices feature, which allows jobs to
dynamically scale via workload slices.
When ElasticJobsViaWorkloadSlices is enabled and a workload slice is
being replaced, the previous topology assignment is preserved for
existing pods, ensuring pods across slices are found correctly.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix race in RemoveRemoteObjects where remote LWS is not deleted (#9201)

When MultiKueueGC deletes the remote workload before the reconciler
processes the deletion, RemoveRemoteObjects would early-return on
remWl == nil without deleting the remote controller object (e.g., LWS).

Move DeleteRemoteObject before the nil check to ensure the remote
controller object is always deleted regardless of remote workload state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flake in scale-down logic for LeaderWorkerSet (#9135)

* Fix flake in scale-down logic for LeaderWorkerSet

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Add tests to prove the need of UpdatedReplicas check during rolling updates

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

[Refactor] queue.Manager Factory for integ tests (#9224)

Set certificate authority instead of insecure options in dev setup (#9312)

mark MultiKueueAllowInsecureKubeconfig as deprecated in feature gate (#9297)

Temporarily disable the TAS+ElasticWorkloads test (#9317)

Add podSecurityContext and containerSecurityContext to KueueViz Helm … (#9311)

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

Automate adding kind/* labels to cherry-pick PRs #9222 (#9290)

[Refactor] queue.Manager Factory for unit tests (#9321)

Increase the timeout for waiting for the Deployment update to start and check if ObservedGeneration changed. (#9315)

* Increase the timeout for waiting for the Deployment update to start.

* Check if ObservedGeneration changed in Deployment Status.

* Check if generation equal ObservedGeneration.

Upgrade MPI Operator version to v0.8.0 and enable TAS E2E tests (#9330)

* Update MPI Operator version to v0.8.0

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Enable MPIJob TAS E2E rank-ordering tests

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

promote local queue defaulting to ga (#9299)

Align CERTMANAGER configs. (#9332)

doc: Update the minimum MPI Operator version (#9335)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

KEP-8303: MultiKueue Orchestrated Preemption (#8985)

* Add first draft of KEP-8303: MultiKueue Synchronized Preemptions

* Add missing KEP number

* Reword main KEP goal

* Update KEP reviewers

* Expand the KEP content to include more detailed semantics of the proposal

* Remove wrong non-goal

* Add new non-goal

* Expand the beta API proposal with strictness of the gate

* Update the beta API with enum instead of boolean

* Add structure to the values of the proposed annotation

* Update the scheduler explanation section

* Explicitly specify the semantics of `PreemptionGateTimeout`

* Move dynamic timeout default to alternatives

* Update the comparison table between preemption annotations

* Fix leftover mentions of old design

* Finalize the API design: extend Workload API in alpha

* Rename the feature gate

* Update alternatives

* Update the proposal with a new `Condition`

* Update the creation date of the KEP

* Apply suggestions from code review

* Add missing step to the MK controller description

* Add early exit to the MK controller logic

* Rename open/closed to active/inactive

* Fix typo in API definition

* Fix grammar - 'disactivate' -> 'deactivate'

* Add paragraph about setting spec

* Fix typo 'born' -> 'blocked'

* Remove filtering out workloads with reserved quota for simplicity

* Mention having to check both the spec and status of workload

* Disambiguate active preemption gate

* Use `LastTriggeredTime` instead of `Condition`

* Remove dubious advantage of spec/status split

* Update the controller algorithm with early exit

* Rename 'synchronization' to 'orchestration'

* Add 'presence as active' alternative

* Expand the scheduler impact description

* Update ToC

* Add table explaining flavor selection

* Fix typos in the content

* Add more context to the requeueing logic

* Remove paragraph about `cannot-preempt` behavior similarity

* Fix alternatives section nesting

* Apply review comments

* Make `LastTriggeredTime` optional

* Remove confusing step from controller implementation

* Explicitly mention the controller updating the status of preemption gates

* Address review comments

* Add missing comments to proposed API

* Revert back to using a new condition for signaling

* Fix alternative nesting

* Rename active/inactive to open/closed

* Add alternative to place timeout in `MultiKueueConfig`

* Reword condition description comment

* Mention eviction atomicity

* Fix wording on the condition extension alternative

FIX: Drop default podSecurityContext and containerSecurityContext to KueueViz frontend (#9339)

Reduce the TAS performance test results variance (#9238)

* Reduce the TAS performance test results variance

The average admission time reported in TAS performance test is too
unstable:
60 workloads (large-balanced-rack) → 37.1% CV
90 workloads (medium-balanced-rack) → 34.7% CV
120 workloads (medium-preferred-block) → 32.3% CV
180 workloads (medium/small-required/preferred-rack) → ~9% CV
300 workloads (small-required-rack) → 5.3% CV
where CV (Coefficient of Variance) = variance / average.

Specifying thresholds for the admission time now would make the
TAS performance test results flaky.

This commit attempts to reduce the variance down to <10% by increasing
the workloads count and making the Law of Large Numbers work for us.

* Match tas performance test counts with baseline

One difference remaining is that TAS workloads have multiple pods in
them.

All 3 workload sets have different tas constraints to test the
performance impact of all of them.

* Add more workload set combinations

Keep the workload count the same, but test all the combinations of
different workload sizes with all the possible TAS constraints.

Fix ExpectNewWorkloadSlice to retry until workload is found (#9331)

The function was supposed to wait until a new workload appeared,
but it returned immediately after checking the list even if nothing
was found yet. This caused the test to fail randomly when the controller
was slower than expected. Keep retrying until the workload is actually
found, and clear the result before each retry to avoid returning stale data.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Update _index.md (#9351)

Fix feature-gates ConfigMap example.

promote ObjectRetentionPolicy to GA (#9300)

Test cleanup fix.

Included coverage of the "admission with no flavors" case in workload controller.

Included coverage of the "admission with no flavors" case in workload controller.

Import fix.

Test setup correction.

Moved workload admission definitions back into the bodies of the relevant tests.

Adds logging.

Foramtting.

Temporary - increase flaky e2e test verbosity.

e2e mk deployment test update - safeguard against flakyness.

test restructure

LOg message cleanup.

Logs cleanup.

Unnecesary util fiunc cleanup.

Optimized migration script to allow migration of namespaced resources by namespace (#9340)

* Optimized migration script to allow migration of namespaced resources by namespace.

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

---------

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

Automate adding kind/* labels to cherry-pick PRs #9222 (#9362)

* Follow-up

fix: quota double-counting for unchanged podSets in Workload Slices (#9322)

* Fix quota double-counting for unchanged podSets in workload slicing

* Add e2e tests for elastic workloads

* Remove downscale checks as these aren't managed by flavor assignment logic

* fix: integ test and podSet field being immutable (for upscales)

* address comments

* keep empty quota

* update assignment usage comment

Handle NoExecute taint as an unhealthy node (#8964)

* TAS Replace Node On Taints implementation

* refactor node failure controller

* use job instead of jobset

* cleanup

TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaluted (#8685)

* TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaludated

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* decouple E2E test from existing one

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Simplify the number of PodSet detection

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

Extend resource transformation integration tests. (#9356)

[Refactor] Terminate Workloads Sequentially in Integration Test (#9346)

Fix e2e certmanager kustomization missing vars (#9372)

Use v1beta1 as prefered API resource version. (#9367)

MultiKueue + TAS setup script: bump Kueue to 0.16 (#9308)

* MultiKueue + TAS setup script: bump Kueue to 0.16

* Address comments

Bump systeminformation from 5.27.14 to 5.31.1 in /test/e2e/kueueviz (#9373)

Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 5.27.14 to 5.31.1.
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v5.27.14...v5.31.1)

---
updated-dependencies:
- dependency-name: systeminformation
  dependency-version: 5.31.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add common code into raycluster/common.go (#9376)

* Add common code into raycluster/common.go

* Remove ByRayClusterSpec from names

* Update usage of common code

Add Prometheus e2e tests (#9031)

e2e testing: load images into kind worker nodes in parallel #9052 (#9294)

Remove deprecated TASProfileLeastFreeCapacity feature gate (#9298)

* Remove deprecated TASProfileLeastFreeCapacity feature gate

The TASProfileLeastFreeCapacity feature gate was deprecated in v0.11,
superseded by TASProfileMixed which uses LeastFreeCapacity only for
unconstrained requests and BestFit for required/preferred. This removes
the gate, simplifies validation logic, and drops all associated tests.

* add back validation code in case we add more tas profiles

KEP-2724: Add multi-level topology aware scheduling design (#9243)

* KEP-2724: Add multi-level topology aware scheduling design

Add the design for multi-level TAS, which extends two-level
scheduling to support N slice layers across deeper topology
hierarchies (e.g., datacenter → block → rack → host).

* fixup: fix comments

Self-nominate olekzabl as reviewer (#9366)

Optimize checkFlavorForPodSets(). (#9390)

Refactor string literals to common consts in raycluster, pod, job controller reconciler tests (#9393)

Optimize migrate-to-v1beta2.sh to allow downgrade. (#9383)

* Optimize migrate-to-v1beta2.sh to allow downgrade.

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

---------

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

Fix prometheus operator setup in e2e-k8s-main-was target (#9403)

Fix flaky workload retention test after manager restart (#9384)

Adds a controller-readiness barrier after restartManager() to ensure
controllers are processing events before deleting the workload.
Without this, gauge metric assertions passed from stale prometheus
state, allowing the delete to race ahead of controller startup.

using replacements instead of vars (#9239)

* using replacements instead of vars

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* commenting out optional changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* adding certmanager message back

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* removing accidentally committed dependency from project

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* additional formatting

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting fixes

* Revert e2e certmanager kustomization to keep PR focused

* formatting yaml, removing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* remove trailing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Fix hack/tools module path to match directory structure (#9408)

KubeRay: Add RayService controller as top level job (#9102)

* Add RayService controller as top level job

* Update helm chart yaml files

* Use build and update logic for RayService PodSets method

* Fix lint issue

* Update processing-plan.yaml

* Clean up rayservice webhook and multikueue adapter and update tests

* Use hardcode Running message in RayService.Finished

* Remove pod debugging log in e2e test

* Remove rayservice multikueue adapter

* Replace Status.ServiceStatus with Condition check

* Move RayJob/RayService common code to raycluster package

* Remove ByRayClusterSpec from names

* Add rayservice to integration and clean up code

Add example ConfigMap for RayJob autoscaling documentation (#9410)

Include the ray-job-autoscaling-code-sample.yaml ConfigMap in the
autoscaling example section of the RayJob docs (en and zh-CN), along
with kubectl commands to apply it. This mirrors the pattern used in
the non-autoscaling example section.

Bump golangci-lint to v2.10.1 (#9389)

Bump rajatjindal/krew-release-bot from 0.0.47 to 0.0.50 in the all group (#9418)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.47 to 0.0.50
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.47...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.50
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix dev mode e2e setup to skip prometheus config when feature is not selected (#9417)

Fix InsertText test cases in yaml-processor (#9409)

Fix: fix cohortName field for `v1beta2.ClusterQueue` (#9394)

* Fix ClusterQueue builder for v1beta2

* Update references in comments

* Update references in other files - automatic update

docs: document suspend behavior for raycluster/rayservice/rayjob (#8900)

Updated documentation for RayCluster, RayJob, and RayService to clarify that Kueue manages the `suspend` field and overrides it upon admission.

Signed-off-by: Abirdcfly <fp544037857@gmail.com>

Fix stale replica-role in scheduler logs after leader election (#9429)

Add cluster-queue-name and local-queue-name labels for pods coming from admitted workloads (#9348)

* Add queue labels to pod template for jobs

* Add queue labels to pods in existing tests

* Add queue pod labels to docs

* Add feature gate for queue pod labels and validation

* Revert testfile changes to avoid conflicts with pretask

* Add checks for new labels in e2e tests

* Add queue label checks to unit tests

* Fix incorrect table test name

Cleanup RayService controller code (#9430)

* Use 600m cpu for RayService e2e test

* Update suspend related doc for RayService

* Add rayservice to integrations in helm chart values file

* Update RayJob test wrapper

Fix discarded ctx from ctrl.LoggerInto causing missing replica-role in logs (#9445)

Fix missing roleTracker in NonTasUsageReconciler (#9433)

[Refactor] Add context to integ manager factory (#9458)

Fix race in KubeConfigFSWatcher tests by making Start() blocking (#9459)

[Docs][zh]sync tasks/run/deployment (#9442)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/plain_pods (#9443)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/leaderworkerset (#9444)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/statefulset (#9446)

Signed-off-by: xin.li <xin.li@daocloud.io>

upgrade to beta (#9450)

[flake] fix Admission Fair Sharing test (#9471)

[flake] fix Admission Fair Sharing test2 (#9476)

Narrow TAS ResourceFlavor spec immutability to topology-sensitive fields (#9427)

* Restrict the fields that are immutable in ResourceFlavorSpec when using TAS

* Remove nodeTaints from ResourceFlavor immutability check

* Fix formatting failures

* Fix documentation by removing unwanted comments

Fix a flavorFungibility preference bug (#9464)

* Reproduce a flavor fungibility preference bug (https://github.com/kubernetes-sigs/kueue/issues/9462)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Fix a flavorFungibility preference bug where explicit preference specifications are reversed behavior

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

[flake] fix e2e metrics test (#9485)

Asynchronous Inadmissible Workload Requeueing (#9232)

* Asynchronous Inadmissible Workload Requeueing

* address comments

* workqueue

Bump github.com/cloudflare/circl from 1.6.1 to 1.6.3 in /hack/tools (#9491)

Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.6.1 to 1.6.3.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.6.1...v1.6.3)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-version: 1.6.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump rollup from 4.43.0 to 4.59.0 in /cmd/kueueviz/frontend (#9496)

Bumps [rollup](https://github.com/rollup/rollup) from 4.43.0 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.43.0...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Localize topology (#9423)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync multikueue (#9436)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync concepts/_index (#9424)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]Localize elastic_workload (#9425)

Signed-off-by: xin.li <xin.li@daocloud.io>

Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~11h (#9493)

* Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~5.69h

Bump the bucket count from 14 to 15 so the max boundary becomes
20480s (~5.69h).

* Bump to 16 buckets

feat: update metrics for local queue kep to beta (#9370)

[Fair Sharing] Prefer nominal-quota workloads in admission ordering (#9484)

* Give priority to workloads that can fit within quota during fair sharing

* Add e2e tests. Create a feature gate

* Change feature gate to beta and get make verify to work

Add windsonsea and my-git9 to zh-CN docs approver (#9497)

Signed-off-by: xin.li <xin.li@daocloud.io>

Bump actions/setup-go from 6.2.0 to 6.3.0 in the all group (#9509)

Bumps the all group with 1 update: [actions/setup-go](https://github.com/actions/setup-go).

Updates `actions/setup-go` from 6.2.0 to 6.3.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5...4b73464bb391d4059bd26b0524d20df3927bd417)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Add tasks/run/using_hami (#9505)

Signed-off-by: xin.li <xin.li@daocloud.io>

inadmissible workloads - delete already processed logic (#9513)

Update RayService doc due to recent top level job change (#9460)

* Update RayService doc

* Extra version change

* Remove restart instruction

* Revert "Remove restart instruction"

This reverts commit 61594c3064b9e769a0f6c12d0625e24343e7d935.

log inadmissible workload requeue count (#9512)

move certs test (#9521)

[flake] increase batch period for requeue inadmissible test (#9531)

Fix StatefulSet MultiKueue adapter selection by creating workload in STS reconciler (#9344)

[website][zh] translation of YAML annotations for using_hami (#9517)

Signed-off-by: xin.li <xin.li@daocloud.io>

[website][zh]sync run/kubeflow/mpijobs (#9518)

Signed-off-by: xin.li <xin.li@daocloud.io>

Clean up workaround for the MPI Operator installation in E2E (#9546)

Remove the yq workaround that dropped empty rules for aggregated
ClusterRoles. The new MPI Operator version includes the fix.

Ref: https://github.com/kubernetes-sigs/kueue/issues/9375

[flake] fix StatefulSet e2e test when manageJobsWithoutQueueName=true (#9542)

fix perf test flakiness caused by informer relist (#9543)

The Create predicate assumed Create events always mean freshly created,
non-admitted workloads, so it returned false for all of them.  This
breaks during informer relist: if the watch closes and the client
relists, workloads admitted during the gap appear as Create events and
were silently dropped, so Reconcile() was never called and they were
never marked Finished.

Fix the predicate to return true only for admitted, unfinished workloads,
mirroring the Update path.  Add a unit test covering all four cases.

fix(scheduler): relax strict admission attempt expectations in flaky tests (#9554)

* fix(scheduler): relax strict admission attempt expectations in flaky tests

* fix(scheduler): keep scope to scheduler_test for #9526

Add subpage in observability about resource usage monitoring (#9461)

* Add observability webpage about resource usage monitroing

* Refine the site

* Refine the resource monitoring docs

* Add kubectl top result to resource usage docs

Bump the kubernetes group across 3 directories with 11 updates (#9560)

Bumps the kubernetes group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.35.1` | `0.35.2` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.35.1` | `0.35.2` |
| [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) | `0.35.1` | `0.35.2` |
| [k8s.io/component-helpers](https://github.com/kubernetes/component-helpers) | `0.35.1` | `0.35.2` |
| [k8s.io/kubectl](https://github.com/kubernetes/kubectl) | `0.35.1` | `0.35.2` |

Bumps the kubernetes group with 1 update in the /cmd/experimental/kueue-populator directory: [k8s.io/api](https://github.com/kubernetes/api).
Bumps the kubernetes group with 1 update in the /cmd/kueueviz/backend directory: [k8s.io/api](https://github.com/kubernetes/api).

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiextensions-apiserver` from 0.35.1 to 0.35.2
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiserver` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/cli-runtime` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-base` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-base/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-helpers` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-helpers/compare/v0.35.1...v0.35.2)

Updates `k8s.io/kubectl` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/kubectl/compare/v0.35.1...v0.35.2)

Updates `k8s.io/metrics` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/metrics/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/code-generator` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/code-generator/compare/v0.35.1...v0.35.2)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/cli-runtime
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-base
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-helpers
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/kubectl
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/metrics
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/code-generator
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Update main with the latest v0.16.2 (#9574)

update changelog for v15 (#9578)

Bump the all group across 3 directories with 3 updates (#9558)

Bumps the all group with 1 update in the /cmd/kueueviz/frontend directory: [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).
Bumps the all group with 1 update in the /site directory: [autoprefixer](https://github.com/postcss/autoprefixer).
Bumps the all group with 1 update in the /test/e2e/kueueviz directory: [cypress](https://github.com/cypress-io/cypress).

Updates `react-router-dom` from 7.13.0 to 7.13.1
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.13.1/packages/react-router-dom)

Updates `autoprefixer` from 10.4.24 to 10.4.27
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.24...10.4.27)

Updates `cypress` from 15.10.0 to 15.11.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v15.10.0...v15.11.0)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: autoprefixer
  dependency-version: 10.4.27
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: cypress
  dependency-version: 15.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

test(cleanup): treat unknown kind cluster as successful deletion (#9577)

update release template post release 0.15.5/0.16.2 (#9579)

* update release template post release 0.15.5/0.16.2

* clarify

test(multikueue): increase TAS completion wait to VeryLongTimeout (#9572)

test(perf): relax baseline small admission threshold for flake (#9581)

[Fair Sharing] If workload fits in nominalQuota for a flavor, ignore DRS checks during preemption (#9494)

* Preempt in fair sharing if CQ within nominal. Add feature gate. Change reason to InCohortReclamation

Change to beta

Remove refactor

Revert some remnants of refactor. Make test changes clearer

* Add new feature flag

* Address review comments

Set TAS perf test thresholds (#9495)

Prevent duplicate preemption requests across scheduling cycles (#9437)

Use expectations.Store (same pattern as pod controller) to track
workloads with in-flight preemptions. The expectation is set before
calling Evict and rolled back on failure. It is cleared by the workload
controller when the eviction (or deletion) is observed.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump github.com/cert-manager/cert-manager from 1.19.3 to 1.19.4 (#9561)

Bumps [github.com/cert-manager/cert-manager](https://github.com/cert-manager/cert-manager) from 1.19.3 to 1.19.4.
- [Release notes](https://github.com/cert-manager/cert-manager/releases)
- [Changelog](https://github.com/cert-manager/cert-manager/blob/master/RELEASE.md)
- [Commits](https://github.com/cert-manager/cert-manager/compare/v1.19.3...v1.19.4)

---
updated-dependencies:
- dependency-name: github.com/cert-manager/cert-manager
  dependency-version: 1.19.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Refresh the PR template to add KEP label and areas (#9590)

Bump cypress/base from 24.13.1 to 24.14.0 in /hack/testing/cypress (#9557)

Bumps cypress/base from 24.13.1 to 24.14.0.

---
updated-dependencies:
- dependency-name: cypress/base
  dependency-version: 24.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Cleanup unused exported functions. (#9601)

Use NewPodSetReference() instead if PodSetReference(). (#9602)

Added a missing backslash in the  command for kueueviz (#9605)

Signed-off-by: michaelkotelnikov <michael.kot97@gmail.com>

Bump go.opentelemetry.io/otel/sdk from 1.38.0 to 1.40.0 in /hack/tools (#9607)

Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.40.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.40.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.40.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump minimatch in /test/e2e/kueueviz (#9613)

Bumps  and [minimatch](https://github.com/isaacs/minimatch). These dependencies needed to be updated together.

Updates `minimatch` from 7.4.6 to 7.4.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 7.4.9
  dependency-type: indirect
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools (#9614)

* Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools

Bumps [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) from 0.155.3 to 0.157.0.
- [Release notes](https://github.com/gohugoio/hugo/releases)
- [Commits](https://github.com/gohugoio/hugo/compare/v0.155.3...v0.157.0)

---
updated-dependencies:
- dependency-name: github.com/gohugoio/hugo
  dependency-version: 0.157.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Sync hugo version

* Fix after bump.

* Fix seo_schema.html.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix parsing of repo name and org in releasing scripts (#9617)

Fix the appwrapper e2e test (#9620)

test(tas): wait for TrainingRuntime visibility before creating TrainJob (#9571)

The e2e TAS TrainJob tests can flake when attempting to create a
TrainJob immediately after creating its referenced TrainingRuntime.
This happens because the Validation Webhook for TrainJobs relies on
an informer cache to verify the referenced TrainingRuntime exists.

If the Create request hits the webhook before the informer cache
synchronizes the new TrainingRuntime, the webhook rejects the TrainJob
creation with a "not found" error.

This commit introduces a local helper `createTrainJobWithRetry` that
wraps the TrainJob creation in an `Eventually` block, ignoring
transient "not found" or webhook errors until the cache is fully
synchronized and the creation succeeds.

e2e testing: use RequestAndLimit consistently (#9623)

* e2e testing: use RequestAndLimit consistently

* test

* fix

* fix lws

Refactor featuregate setup in tests to reduce possibility of flaky tests conflicts (#9600)

* Refactor feature gate setup in tests to use SetFeatureGateDuringTest for DynamicResourceAllocation, AdmissionFairSharing, and TASBalancedPlacement

* Remove unused feature gate setup in tests for AdmissionFairSharing and TASBalancedPlacement

* sync ##9603

* Remove unused feature gate setups in tests for AdmissionFairSharing and TopologyAwareScheduling

Skip PushOrUpdate for inflight workloads to prevent spurious scheduling cycles (#9598)

When a workload is popped by the scheduler (inflight), a concurrent
PushOrUpdate from the workload controller can push it onto the heap
while the scheduler also places it in the inadmissible set. This
causes an extra scheduling cycle.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump sigs.k8s.io/jobset from 0.11.0 to 0.11.1 (#9562)

Bumps [sigs.k8s.io/jobset](https://github.com/kubernetes-sigs/jobset) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/kubernetes-sigs/jobset/releases)
- [Changelog](https://github.com/kubernetes-sigs/jobset/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/jobset/compare/v0.11.0...v0.11.1)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/jobset
  dependency-version: 0.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Execute all FG validations at once #9355 (#9547)

- ValidateFeatureGates now returns field.ErrorList and collects all errors
- Update TestValidateFeatureGates to assert actual vs expected field errors
- Add test case for multiple FG validation errors returned at once

Add LockToDefault for PropagateBatchJobLabelsToWorkload GA feature gate (#9640)

Update kep.yaml files for v0.17 GA feature promotions (#9642)

* Update KEP 2936 (LocalQueueDefaulting) stage to stable for GA promotion

* Update KEP 1618 (ObjectRetentionPolicies) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, adds stable
milestone, and sets disable-supported to false.

* Update KEP 693 (MultiKueue) kep.yaml for MultiKueueBatchJobWithManagedBy GA

Updates latest-milestone to v0.17, adds stable milestone, and sets
disable-supported to false following MultiKueueBatchJobWithManagedBy
GA promotion.

* Update KEP 1834 (PropagateBatchJobLabelsToWorkload) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, and adds stable
milestone.

Bump rajatjindal/krew-release-bot in /hack/releasing/krew-release-bot (#9556)

Bumps [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot) from v0.0.46 to v0.0.50.
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.46...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: v0.0.50
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Use List to verify LWS state in reconciler tests (#9654)

* Use List to verify LWS state in reconciler tests

* Fix gofmt and gci formatting

Bump rajatjindal/krew-release-bot from 0.0.50 to 0.0.51 in the all group (#9648)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.50 to 0.0.51
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.50...v0.0.51)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.51
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add E2E test suite for MultiKueue with TAS (#9396)

* Add TAS asymmetric-quota tests to multikueue E2E suite

Add two new test cases to the existing multikueue TAS Describe
block in test/e2e/multikueue/tas_test.go, using asymmetric
worker quotas (worker1=2CPU, worker2=1CPU) to enable
deterministic routing assertions:

- Preferred topology routing: 1500m CPU job routes to worker1
- Required topology: 500m CPU job admitted on either worker

Extract waitForTopologyAssignment and
waitForDelayedTopologyRequestReady helpers to reduce
duplication across existing and new tests. Use
MakeDefaultOneLevelTopology and batchv1.JobNameLabel
for consistency.

* fix: hoist managerWl outside Eventually in waitForDelayedTopologyRequestReady

generalize MustCreateWithRetry and apply (#9653)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Fix LendingLimit feature-state version tag in cluster_queue.md (#9643)

The LendingLimit feature was promoted to GA in v0.17, not v0.18.
Update the feature-state version tag to reflect the correct version.

Multikueue dev setup for E2E test cluster: extend SA token expiration time to 7d (#9540)

* Set SA expiration time to 7d for e2e dev mode

* update worker-cluster.kind.yaml

* update worker-cluster.kind.yaml

* Revert "Merge branch 'cleanup/mk-dev-setup-sa-token-exp-e2e' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp-e2e"

This reverts commit e5b959ed01486ee051b64db134e38c3e2a57aea3, reversing
changes made to 33a4149b0f6c786273e5ccaa5d8ae23df6d37cff.

Add wayve.ai as an adopter (#9663)

* Add wayve.ai as an adopter

* Improved description

* Fix syntax issue

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig (#9604)

* Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* Adding messages pinpointing failures alogn failfast

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting log

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* untangling code

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Update RayService E2E test to check http endpoint inside the RayService (#9660)

* Update RayService E2E test to check http endpoint inside the RayService

* Use system generated port like 0:remotePort

Forcefully remove stuck pods in the failure recovery controller (#9651)

* Forcefully remove stuck pods in the failure recovery controller

* Add e2e test for `FailureRecoveryPolicy`

* Exclude buffer from the termination timeout

* Add e2e test for `FailureRecoveryPolicy` during foreground deletion

* Code review fixes

* Update the KEP with the new failure recovery logic

* Rename 'terminate' to 'delete'

* Fix e2e test

* Check the failure recovery condition to filter out more executions

* Add missing `gomega.Succeed()`

* Fix import formatting

* Fix e2e test timeouts

* Mention condition check in KEP

* Wait longer for job to be admitted in e2e test

* Use `ContainsFunc` in Pod utils

* Wrap the e2e tests with ginkgo.By

* Shorten the pod grace termination period

* Add `ginkgo.By` steps to `BeforeEach` and `AfterEach`

[KEP] Add a mechanism to consider preemption cost when finding preemption candidates (#8551)

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* priority-boost

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

Update KEP-6757 history to include changes after foreground propagated deletion fix (#9675)

* Mention the annotation name change in the KEP history

* Mention which versions use which annotation name

* Mention which versions retain the old behaviour

Small clarifications in scheduling code (#9674)

Fix inadmissible workload stuck after priority update (#9661)

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Watch workload deletions to trigger LWS reconciliation (#9631)

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Refactor of check filtering to reduce code duplication.

Test refactor.

Fix typo in README: 'Build-in' → 'Built-in' (#9683)

* Fix typo in README: 'Build-in' → 'Built-in'

* docs: fix abbreviation formatting: 'eg.' → 'e.g.'

TAS: support ResourceTransformations (#8963)

* Create integration test.

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

* TAS: support ResourceTransformations

---------

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

Fix shellcheck SC2086 ignore (#9646)

* make test-e2e not parsing GINKGO_ARGS properly #9477

* Fix shellcheck SC2086 ignore #9477

Promote HierarchicalCohorts to GA (#9618)

* Promote HierarchicalCohorts to GA

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Remove deprecated API references

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Fix generateName for StatefulSets by including UID in workload name (#9091)

* Fix generateName for StatefulSets by including UID in workload name

* Support StatefulSet workloads created without UID in name

* Propagate non-NotFound errors in findWorkloadName

feat: add multi-layer topology constraints for TAS (#9506)

* KEP update to reflect the latest impl.

* feat: add multi-layer topology constraints for TAS

Introduce the TASMultiLayerTopology feature gate (alpha) to support
up to 3 hierarchical slice layers in topology-aware scheduling.

- Add `PodsetSliceRequiredTopologyConstraints` field to
  `PodSetTopologyRequest` and the corresponding pod annotation
- Extend TAS flavor snapshot to handle multi-layer placement
- Add validation for the new field (mutual exclusivity with
  existing single-layer fields, layer ordering, size divisibility)
- Add v1beta1 <-> v1beta2 conversion support
- Add integration tests for multi-layer scheduling

* make generate && make verify

* fixup: address comments

Bump the all group across 1 directory with 3 updates (#9703)

Bumps the all group with 2 updates in the /cmd/kueueviz/frontend directory: [@mui/icons-material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material) and [serve](https://github.com/vercel/serve).

Updates `@mui/icons-material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-icons-material)

Updates `@mui/material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-material)

Updates `serve` from 14.2.5 to 14.2.6
- [Release notes](https://github.com/vercel/serve/releases)
- [Changelog](https://github.com/vercel/serve/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vercel/serve/compare/v14.2.5...v14.2.6)

---
updated-dependencies:
- dependency-name: "@mui/icons-material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: "@mui/material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: serve
  dependency-version: 14.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gin-gonic/gin in /cmd/kueueviz/backend (#9707)

Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/gin-gonic/gin/releases)
- [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gin-gonic/gin/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: github.com/gin-gonic/gin
  dependency-version: 1.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/kueue from 0.16.1 to 0.16.2 in /cmd/kueueviz/backend (#9709)

Bumps [sigs.k8s.io/kueue](https://github.com/kubernetes-sigs/kueue) from 0.16.1 to 0.16.2.
- [Release notes](https://github.com/kubernetes-sigs/kueue/releases)
- [Changelog](https://github.com/kubernetes-sigs/kueue/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/kueue/compare/v0.16.1...v0.16.2)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/kueue
  dependency-version: 0.16.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3 (#9704)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime in /cmd/kueueviz/backend (#9708)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Remove duplicates of using ContextWithLog(t). (#9717)

KEP: add kueueviz auth (#8971)

* KEP: add kueueviz auth

Signed-off-by: samzong <samzong.lu@gmail.com>

* update KEP details

Signed-off-by: samzong <samzong.lu@gmail.com>

* KEP-5993: adopt Alpha-first graduation and refine design

Signed-off-by: samzong <samzong.lu@gmail.com>

* remove featuregateway in design

Signed-off-by: samzong <samzong.lu@gmail.com>

---------

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: add token-based authentication for backend and frontend (#9684)

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: fetch Cohort CRD directly, instead of deriving from ClusterQueues (#9719)

Signed-off-by: samzong <samzong.lu@gmail.com>

Propagate contextual logger to workload.Info.Update (#9723)

Add logr.Logger parameter to workload.Info.Update() so callers can
pass a contextualized logger for V(5) debug logging. This keeps
workload.Info as a pure data struct without embedding runtime state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flaky test for sticky workload (#9718)

Add KEP to support `QuotaCheckStrategy` (#8396)

This commit details the changes required to support a new
configuration field, `QuotaCheckStrategy`.

Self-nominate kshalot as reviewer (#9692)

Add KEP-7066: Custom metadata labels for Kueue metrics (#9225)

* Add KEP-7066: Custom metadata labels for Kueue metrics

* Refine KEP-7066 design details and validation rules

* Add explicit source key mapping to KEP-7066 configuration

* Expand KEP-7066 to cover Cohort metrics

* Refine KEP-7066 structure and validation rules

Skip equivalent inadmissible workloads in BestEffortFIFO scheduling (#9698)

When the scheduler evaluates a workload and gets NoFit from FlavorAssigner,
bulk-move all heap workloads with the same scheduling hash to inadmissible.
This reduces scheduling cost from O(workloads) to O(equivalence classes),
allowing the scheduler to reach schedulable workloads deep in the queue.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

add handler in leader workset reconiler (#9740)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Bump ShortConsistentDuration. (#9749)

Provide a metric for cohort nominal quota (#9132)

* Add CohortNominalQuota metric

* Rework after code review

Propagate contextual logger to scheduling hash computation via UpdateSchedulingHash (#9731)

Add UpdateSchedulingHash(log) method to workload.Info so production
callers can compute the scheduling hash with a contextual logger
after NewInfo construction. NewInfo signature stays unchanged.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Cleanup Consistently. (#9756)

Scheduling: reduce the maximal backoff time from 100ms to 10ms (#9697)

* Reduce the max backoff time from 100ms to 10ms

* simplify the code to drop configurable maxBackoff

* add comments to the consts

[MinimalKueue] Add HeapProfile(). (#9759)

Multikueue dev setup: extend SA token expiration time (#9516)

* Update SA setup for MultiKueue dev setup and related doc

* Set SA expiration time to 7d for e2e dev mode

* Set SA expiration time to 7d for e2e dev mode

* Revert "Set SA expiration time to 7d for e2e dev mode"

This reverts commit e9cba59eaa6ead5488d80287f3e40078efaa4cfa.

* Undo Merge branch 'cleanup/mk-dev-setup-sa-token-exp' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp

feat: enhance error message for multi-layer topology constraints (#9739)

* feat: enhance error message for multi-layer topology constraints

Add detailed noFit messages for multi-layer TAS topology that report
per-level slice fit counts (e.g., "1/2 slice(s) fit on level block;
3/4 slice(s) fit on rack; 6/8 slice(s) fit on hostname").

* fixup: add UT for enough hostname slices but insufficient rack slices

kueueviz: support hierarchical cohorts with tree view (#9725)

Signed-off-by: samzong <samzong.lu@gmail.com>

feat(kueueviz/backend): drop polling and switch to informers (#8707)

Signed-off-by: Josef Kolář <josef.kolar@firma.seznam.cz>

Add E2E_SKIP_REINSTALL flag that working in E2E_MODE=dev mode, Add KUEUE_DEPLOYMENT_NAME const for controller manager deployment string (#9753)

Optimize gomega.Eventually() for populator. (#9777)

Decouple borrowing state from DRS ratio value (#9738)

* Add IsBorrowing function in DRS to be explicit about borrowing rather than assuming 0 DRS value means borrowing.

* Address review comments

Spell fix.

TAS: Improve scheduling performance by caching nodes (#9712)

* TAS: Improve scheduling performance by caching nodes

* Rename AddOrUpdateNode() to SyncNode().

Self-nominate sohankunkerkar as reviewer (#9776)

Optimize ContextWithLog() to allow use testing.TB. (#9780)

Update pkg/workload/workload.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Added comments to better explain the logic of "AdmissionChecksForWorkload" function.

Spell fix.

Tests update.

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Move test for clarity.

connection util update

Test fix.

Update cohort metric name (#9787)

Fix NodeHotSwap for multi-layer TAS topology constraints (#9733)

This fixes two issues with NodeHotSwap replacement in multi-layer topology:

1. Domain Selection (requiredReplacementDomain): When multiple slice
   constraints are configured (e.g., [{rack: 8}, {switch: 4}, {hostname: 2}]),
   the code was using only the outermost constraint to find the replacement
   domain. This could place replacements in the wrong sub-domain.

   Fix: Iterate from innermost to outermost constraint and use the first
   (innermost) broken constraint's domain to confine the search.

2. Slice Size (findReplacementAssignment): After clearing
   PodsetSliceRequiredTopologyConstraints, setting PodSetSliceSize alone
   was a dead write because getSliceSizeWithSinglePodAsDefault() requires
   PodSetSliceRequiredTopology to be set. This caused sliceSize=1, scattering
   replacement pods across hosts and violating hostname grouping constraints.

   Fix: Find the innermost satisfied constraint and set both
   PodSetSliceRequiredTopology and PodSetSliceSize to preserve leaf-level
   grouping.

Added test cases:
- 3-layer topology: validates innermost broken domain selection
- 2-layer topology: validates sliceSize prevents scattered placement

chore: Use slices instead of sort (#9781)

Fix missing replica_role=leader metrics after HA role transition (#9487)

test: use Job instead of JobSet in TAS rank ordering case (#9796)

TAS: improve performance of the addNode function. (#9791)

Use gomega.Eventually(func(g gomega.Gomega) pattern. (#9800)

* Use gomega.Eventually(func(g gomega.Gomega) pattern.

* Use wait.Group.

* Ignore conflict error.

feat(visibility): allow visibility server to use custom kubeconfig path (#9619)

* feat(visibility): allow visibility server to use custom kubeconfig path

* docs(visibility): clarify kubeConfig and kubeConfigPath usage in visibility server

* refactor(visibility): streamline kubeConfig handling in visibility server

* refactor(visibility): simplify kubeConfig path retrieval in visibility server

* refactor(visibility): remove redundant comments regarding kubeConfig in visibility server setup

* test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag

* Revert "test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag"

This reverts commit a4add98a15f4a581dd70d0aa57b87d7059f3ba85.

* feat(visibility): enable visibility server to utilize custom kubeconfig path

* test(visibility): add e2e tests for visibility server using custom kubeconfig with RBAC

* refactor(visibility): replace waitForDeployment with WaitForKueueAvailabilityNoRestartCountCheck in kubeconfig tests

* test(visibility): enhance clarity in kubeconfig test by adding descriptive step

* test(visibility): enhance RBAC tests for visibility server with custom kubeconfig

* fix(visibility): remove unused visibility import and ensure visibility scheme is added in init

* refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access

* Revert "refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access"

This reverts commit c11f57ac5d6c087ce94a7ce20e8c342e4c707b84.

* refactor(visibility): simplify kubeconfig test by removing unused visibility import and updating client usage

* fix(visibility): update cloneControllerRBAC to skip additional roles for SubjectAccessReview permissions

* Fix comments

* chore: remove trailing whitespace in `visibility_kubeconfig_test.go`

* Add TODO for internal server error

* refactor: replace `client.IgnoreAlreadyExists` with `util.MustCreate` for object creation in e2e tests.

* Remove CQ from test

* feat: introduce kubeconfig utility to resolve config and path, and pass the path to the visibility server for authentication and authorization configuration.

* refactor: extract k…
Singularity23x0 added a commit to Singularity23x0/kueue that referenced this pull request Apr 8, 2026
…flavor assigned (kubernetes-sigs#9359)

* Apply admission checks covering all CQ resources to workloads before
flavor assigned.
Adds tests to track the change.

Test setup fix.

Test setup and teardown fix.

Fit removed.

Adds fix with tests (it and unit).

fix incorrect pod placement during node replacement (#9211)

fix: retry kind cluster deletion to work around Docker race condition (#9261)

* fix: retry kind cluster deletion to work around Docker race condition

Add retry logic with exponential backoff to cluster_cleanup in
e2e-common.sh. Under CI (Docker-in-Docker on Linux with high IO
contention), 'kind delete cluster' can fail because Docker's internal
container kill has a hardcoded 2-second timeout that expires before the
container acknowledges the exit event (moby/moby#51028, moby/moby#51845).

Between retries, force-stop any remaining containers using the
io.x-k8s.kind.cluster label so that the next kind delete attempt starts
from a clean state.

Fixes kubernetes-sigs/kueue#8908

* fix: simplify kind cluster cleanup retries

Address review feedback by retrying only kind delete cluster with a shorter exponential backoff (1s initial delay, 5 attempts). Remove manual docker kill/rm cleanup to keep the bash logic simple, and document the upstream Docker issues as the reason for the temporary workaround.

Add scheduler tests for hierarchical cohort lendingLimit (#9136)

Add two test cases to verify lendingLimit behavior when borrowing
resources across hierarchical cohort structures:

- hierarchical cohort respects lending limit when borrowing
- hierarchical cohort allows borrowing up to lending limit

Graduate SanitizePodSets feature gate to GA (#9260)

Set SanitizePodSets to GA with LockToDefault: true in v0.17.
Remove the feature gate check from SanitizePodSet(), the disabled
feature gate test case, and update documentation.

[Refactor] Move all metrics ops to metrics.go in cache.queue (#9295)

* [Refactor] Move all metrics ops to metrics.go in cache.queue

* make names consistent

Graduate LendingLimit feature gate to GA (#9258)

Promote LendingLimit to GA at v0.18 with LockToDefault: true.
Remove all feature gate checks from production code and clean up
test cases that verified behavior when the feature was disabled.

Align the Kueue KEP template with the K8s KEP template (#9276)

Optimize UpdateKueueConfiguration. (#9275)

Enable TAS with ElasticJobsViaWorkloadSlices feature (#8580)

This change enables Topology-Aware Scheduling (TAS) to work correctly
with the ElasticJobsViaWorkloadSlices feature, which allows jobs to
dynamically scale via workload slices.
When ElasticJobsViaWorkloadSlices is enabled and a workload slice is
being replaced, the previous topology assignment is preserved for
existing pods, ensuring pods across slices are found correctly.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix race in RemoveRemoteObjects where remote LWS is not deleted (#9201)

When MultiKueueGC deletes the remote workload before the reconciler
processes the deletion, RemoveRemoteObjects would early-return on
remWl == nil without deleting the remote controller object (e.g., LWS).

Move DeleteRemoteObject before the nil check to ensure the remote
controller object is always deleted regardless of remote workload state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flake in scale-down logic for LeaderWorkerSet (#9135)

* Fix flake in scale-down logic for LeaderWorkerSet

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Add tests to prove the need of UpdatedReplicas check during rolling updates

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

[Refactor] queue.Manager Factory for integ tests (#9224)

Set certificate authority instead of insecure options in dev setup (#9312)

mark MultiKueueAllowInsecureKubeconfig as deprecated in feature gate (#9297)

Temporarily disable the TAS+ElasticWorkloads test (#9317)

Add podSecurityContext and containerSecurityContext to KueueViz Helm … (#9311)

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

Automate adding kind/* labels to cherry-pick PRs #9222 (#9290)

[Refactor] queue.Manager Factory for unit tests (#9321)

Increase the timeout for waiting for the Deployment update to start and check if ObservedGeneration changed. (#9315)

* Increase the timeout for waiting for the Deployment update to start.

* Check if ObservedGeneration changed in Deployment Status.

* Check if generation equal ObservedGeneration.

Upgrade MPI Operator version to v0.8.0 and enable TAS E2E tests (#9330)

* Update MPI Operator version to v0.8.0

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Enable MPIJob TAS E2E rank-ordering tests

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

promote local queue defaulting to ga (#9299)

Align CERTMANAGER configs. (#9332)

doc: Update the minimum MPI Operator version (#9335)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

KEP-8303: MultiKueue Orchestrated Preemption (#8985)

* Add first draft of KEP-8303: MultiKueue Synchronized Preemptions

* Add missing KEP number

* Reword main KEP goal

* Update KEP reviewers

* Expand the KEP content to include more detailed semantics of the proposal

* Remove wrong non-goal

* Add new non-goal

* Expand the beta API proposal with strictness of the gate

* Update the beta API with enum instead of boolean

* Add structure to the values of the proposed annotation

* Update the scheduler explanation section

* Explicitly specify the semantics of `PreemptionGateTimeout`

* Move dynamic timeout default to alternatives

* Update the comparison table between preemption annotations

* Fix leftover mentions of old design

* Finalize the API design: extend Workload API in alpha

* Rename the feature gate

* Update alternatives

* Update the proposal with a new `Condition`

* Update the creation date of the KEP

* Apply suggestions from code review

* Add missing step to the MK controller description

* Add early exit to the MK controller logic

* Rename open/closed to active/inactive

* Fix typo in API definition

* Fix grammar - 'disactivate' -> 'deactivate'

* Add paragraph about setting spec

* Fix typo 'born' -> 'blocked'

* Remove filtering out workloads with reserved quota for simplicity

* Mention having to check both the spec and status of workload

* Disambiguate active preemption gate

* Use `LastTriggeredTime` instead of `Condition`

* Remove dubious advantage of spec/status split

* Update the controller algorithm with early exit

* Rename 'synchronization' to 'orchestration'

* Add 'presence as active' alternative

* Expand the scheduler impact description

* Update ToC

* Add table explaining flavor selection

* Fix typos in the content

* Add more context to the requeueing logic

* Remove paragraph about `cannot-preempt` behavior similarity

* Fix alternatives section nesting

* Apply review comments

* Make `LastTriggeredTime` optional

* Remove confusing step from controller implementation

* Explicitly mention the controller updating the status of preemption gates

* Address review comments

* Add missing comments to proposed API

* Revert back to using a new condition for signaling

* Fix alternative nesting

* Rename active/inactive to open/closed

* Add alternative to place timeout in `MultiKueueConfig`

* Reword condition description comment

* Mention eviction atomicity

* Fix wording on the condition extension alternative

FIX: Drop default podSecurityContext and containerSecurityContext to KueueViz frontend (#9339)

Reduce the TAS performance test results variance (#9238)

* Reduce the TAS performance test results variance

The average admission time reported in TAS performance test is too
unstable:
60 workloads (large-balanced-rack) → 37.1% CV
90 workloads (medium-balanced-rack) → 34.7% CV
120 workloads (medium-preferred-block) → 32.3% CV
180 workloads (medium/small-required/preferred-rack) → ~9% CV
300 workloads (small-required-rack) → 5.3% CV
where CV (Coefficient of Variance) = variance / average.

Specifying thresholds for the admission time now would make the
TAS performance test results flaky.

This commit attempts to reduce the variance down to <10% by increasing
the workloads count and making the Law of Large Numbers work for us.

* Match tas performance test counts with baseline

One difference remaining is that TAS workloads have multiple pods in
them.

All 3 workload sets have different tas constraints to test the
performance impact of all of them.

* Add more workload set combinations

Keep the workload count the same, but test all the combinations of
different workload sizes with all the possible TAS constraints.

Fix ExpectNewWorkloadSlice to retry until workload is found (#9331)

The function was supposed to wait until a new workload appeared,
but it returned immediately after checking the list even if nothing
was found yet. This caused the test to fail randomly when the controller
was slower than expected. Keep retrying until the workload is actually
found, and clear the result before each retry to avoid returning stale data.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Update _index.md (#9351)

Fix feature-gates ConfigMap example.

promote ObjectRetentionPolicy to GA (#9300)

Test cleanup fix.

Included coverage of the "admission with no flavors" case in workload controller.

Included coverage of the "admission with no flavors" case in workload controller.

Import fix.

Test setup correction.

Moved workload admission definitions back into the bodies of the relevant tests.

Adds logging.

Foramtting.

Temporary - increase flaky e2e test verbosity.

e2e mk deployment test update - safeguard against flakyness.

test restructure

LOg message cleanup.

Logs cleanup.

Unnecesary util fiunc cleanup.

Optimized migration script to allow migration of namespaced resources by namespace (#9340)

* Optimized migration script to allow migration of namespaced resources by namespace.

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

---------

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

Automate adding kind/* labels to cherry-pick PRs #9222 (#9362)

* Follow-up

fix: quota double-counting for unchanged podSets in Workload Slices (#9322)

* Fix quota double-counting for unchanged podSets in workload slicing

* Add e2e tests for elastic workloads

* Remove downscale checks as these aren't managed by flavor assignment logic

* fix: integ test and podSet field being immutable (for upscales)

* address comments

* keep empty quota

* update assignment usage comment

Handle NoExecute taint as an unhealthy node (#8964)

* TAS Replace Node On Taints implementation

* refactor node failure controller

* use job instead of jobset

* cleanup

TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaluted (#8685)

* TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaludated

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* decouple E2E test from existing one

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Simplify the number of PodSet detection

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

Extend resource transformation integration tests. (#9356)

[Refactor] Terminate Workloads Sequentially in Integration Test (#9346)

Fix e2e certmanager kustomization missing vars (#9372)

Use v1beta1 as prefered API resource version. (#9367)

MultiKueue + TAS setup script: bump Kueue to 0.16 (#9308)

* MultiKueue + TAS setup script: bump Kueue to 0.16

* Address comments

Bump systeminformation from 5.27.14 to 5.31.1 in /test/e2e/kueueviz (#9373)

Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 5.27.14 to 5.31.1.
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v5.27.14...v5.31.1)

---
updated-dependencies:
- dependency-name: systeminformation
  dependency-version: 5.31.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add common code into raycluster/common.go (#9376)

* Add common code into raycluster/common.go

* Remove ByRayClusterSpec from names

* Update usage of common code

Add Prometheus e2e tests (#9031)

e2e testing: load images into kind worker nodes in parallel #9052 (#9294)

Remove deprecated TASProfileLeastFreeCapacity feature gate (#9298)

* Remove deprecated TASProfileLeastFreeCapacity feature gate

The TASProfileLeastFreeCapacity feature gate was deprecated in v0.11,
superseded by TASProfileMixed which uses LeastFreeCapacity only for
unconstrained requests and BestFit for required/preferred. This removes
the gate, simplifies validation logic, and drops all associated tests.

* add back validation code in case we add more tas profiles

KEP-2724: Add multi-level topology aware scheduling design (#9243)

* KEP-2724: Add multi-level topology aware scheduling design

Add the design for multi-level TAS, which extends two-level
scheduling to support N slice layers across deeper topology
hierarchies (e.g., datacenter → block → rack → host).

* fixup: fix comments

Self-nominate olekzabl as reviewer (#9366)

Optimize checkFlavorForPodSets(). (#9390)

Refactor string literals to common consts in raycluster, pod, job controller reconciler tests (#9393)

Optimize migrate-to-v1beta2.sh to allow downgrade. (#9383)

* Optimize migrate-to-v1beta2.sh to allow downgrade.

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

---------

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

Fix prometheus operator setup in e2e-k8s-main-was target (#9403)

Fix flaky workload retention test after manager restart (#9384)

Adds a controller-readiness barrier after restartManager() to ensure
controllers are processing events before deleting the workload.
Without this, gauge metric assertions passed from stale prometheus
state, allowing the delete to race ahead of controller startup.

using replacements instead of vars (#9239)

* using replacements instead of vars

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* commenting out optional changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* adding certmanager message back

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* removing accidentally committed dependency from project

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* additional formatting

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting fixes

* Revert e2e certmanager kustomization to keep PR focused

* formatting yaml, removing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* remove trailing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Fix hack/tools module path to match directory structure (#9408)

KubeRay: Add RayService controller as top level job (#9102)

* Add RayService controller as top level job

* Update helm chart yaml files

* Use build and update logic for RayService PodSets method

* Fix lint issue

* Update processing-plan.yaml

* Clean up rayservice webhook and multikueue adapter and update tests

* Use hardcode Running message in RayService.Finished

* Remove pod debugging log in e2e test

* Remove rayservice multikueue adapter

* Replace Status.ServiceStatus with Condition check

* Move RayJob/RayService common code to raycluster package

* Remove ByRayClusterSpec from names

* Add rayservice to integration and clean up code

Add example ConfigMap for RayJob autoscaling documentation (#9410)

Include the ray-job-autoscaling-code-sample.yaml ConfigMap in the
autoscaling example section of the RayJob docs (en and zh-CN), along
with kubectl commands to apply it. This mirrors the pattern used in
the non-autoscaling example section.

Bump golangci-lint to v2.10.1 (#9389)

Bump rajatjindal/krew-release-bot from 0.0.47 to 0.0.50 in the all group (#9418)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.47 to 0.0.50
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.47...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.50
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix dev mode e2e setup to skip prometheus config when feature is not selected (#9417)

Fix InsertText test cases in yaml-processor (#9409)

Fix: fix cohortName field for `v1beta2.ClusterQueue` (#9394)

* Fix ClusterQueue builder for v1beta2

* Update references in comments

* Update references in other files - automatic update

docs: document suspend behavior for raycluster/rayservice/rayjob (#8900)

Updated documentation for RayCluster, RayJob, and RayService to clarify that Kueue manages the `suspend` field and overrides it upon admission.

Signed-off-by: Abirdcfly <fp544037857@gmail.com>

Fix stale replica-role in scheduler logs after leader election (#9429)

Add cluster-queue-name and local-queue-name labels for pods coming from admitted workloads (#9348)

* Add queue labels to pod template for jobs

* Add queue labels to pods in existing tests

* Add queue pod labels to docs

* Add feature gate for queue pod labels and validation

* Revert testfile changes to avoid conflicts with pretask

* Add checks for new labels in e2e tests

* Add queue label checks to unit tests

* Fix incorrect table test name

Cleanup RayService controller code (#9430)

* Use 600m cpu for RayService e2e test

* Update suspend related doc for RayService

* Add rayservice to integrations in helm chart values file

* Update RayJob test wrapper

Fix discarded ctx from ctrl.LoggerInto causing missing replica-role in logs (#9445)

Fix missing roleTracker in NonTasUsageReconciler (#9433)

[Refactor] Add context to integ manager factory (#9458)

Fix race in KubeConfigFSWatcher tests by making Start() blocking (#9459)

[Docs][zh]sync tasks/run/deployment (#9442)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/plain_pods (#9443)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/leaderworkerset (#9444)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/statefulset (#9446)

Signed-off-by: xin.li <xin.li@daocloud.io>

upgrade to beta (#9450)

[flake] fix Admission Fair Sharing test (#9471)

[flake] fix Admission Fair Sharing test2 (#9476)

Narrow TAS ResourceFlavor spec immutability to topology-sensitive fields (#9427)

* Restrict the fields that are immutable in ResourceFlavorSpec when using TAS

* Remove nodeTaints from ResourceFlavor immutability check

* Fix formatting failures

* Fix documentation by removing unwanted comments

Fix a flavorFungibility preference bug (#9464)

* Reproduce a flavor fungibility preference bug (https://github.com/kubernetes-sigs/kueue/issues/9462)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Fix a flavorFungibility preference bug where explicit preference specifications are reversed behavior

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

[flake] fix e2e metrics test (#9485)

Asynchronous Inadmissible Workload Requeueing (#9232)

* Asynchronous Inadmissible Workload Requeueing

* address comments

* workqueue

Bump github.com/cloudflare/circl from 1.6.1 to 1.6.3 in /hack/tools (#9491)

Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.6.1 to 1.6.3.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.6.1...v1.6.3)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-version: 1.6.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump rollup from 4.43.0 to 4.59.0 in /cmd/kueueviz/frontend (#9496)

Bumps [rollup](https://github.com/rollup/rollup) from 4.43.0 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.43.0...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Localize topology (#9423)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync multikueue (#9436)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync concepts/_index (#9424)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]Localize elastic_workload (#9425)

Signed-off-by: xin.li <xin.li@daocloud.io>

Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~11h (#9493)

* Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~5.69h

Bump the bucket count from 14 to 15 so the max boundary becomes
20480s (~5.69h).

* Bump to 16 buckets

feat: update metrics for local queue kep to beta (#9370)

[Fair Sharing] Prefer nominal-quota workloads in admission ordering (#9484)

* Give priority to workloads that can fit within quota during fair sharing

* Add e2e tests. Create a feature gate

* Change feature gate to beta and get make verify to work

Add windsonsea and my-git9 to zh-CN docs approver (#9497)

Signed-off-by: xin.li <xin.li@daocloud.io>

Bump actions/setup-go from 6.2.0 to 6.3.0 in the all group (#9509)

Bumps the all group with 1 update: [actions/setup-go](https://github.com/actions/setup-go).

Updates `actions/setup-go` from 6.2.0 to 6.3.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5...4b73464bb391d4059bd26b0524d20df3927bd417)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Add tasks/run/using_hami (#9505)

Signed-off-by: xin.li <xin.li@daocloud.io>

inadmissible workloads - delete already processed logic (#9513)

Update RayService doc due to recent top level job change (#9460)

* Update RayService doc

* Extra version change

* Remove restart instruction

* Revert "Remove restart instruction"

This reverts commit 61594c3064b9e769a0f6c12d0625e24343e7d935.

log inadmissible workload requeue count (#9512)

move certs test (#9521)

[flake] increase batch period for requeue inadmissible test (#9531)

Fix StatefulSet MultiKueue adapter selection by creating workload in STS reconciler (#9344)

[website][zh] translation of YAML annotations for using_hami (#9517)

Signed-off-by: xin.li <xin.li@daocloud.io>

[website][zh]sync run/kubeflow/mpijobs (#9518)

Signed-off-by: xin.li <xin.li@daocloud.io>

Clean up workaround for the MPI Operator installation in E2E (#9546)

Remove the yq workaround that dropped empty rules for aggregated
ClusterRoles. The new MPI Operator version includes the fix.

Ref: https://github.com/kubernetes-sigs/kueue/issues/9375

[flake] fix StatefulSet e2e test when manageJobsWithoutQueueName=true (#9542)

fix perf test flakiness caused by informer relist (#9543)

The Create predicate assumed Create events always mean freshly created,
non-admitted workloads, so it returned false for all of them.  This
breaks during informer relist: if the watch closes and the client
relists, workloads admitted during the gap appear as Create events and
were silently dropped, so Reconcile() was never called and they were
never marked Finished.

Fix the predicate to return true only for admitted, unfinished workloads,
mirroring the Update path.  Add a unit test covering all four cases.

fix(scheduler): relax strict admission attempt expectations in flaky tests (#9554)

* fix(scheduler): relax strict admission attempt expectations in flaky tests

* fix(scheduler): keep scope to scheduler_test for #9526

Add subpage in observability about resource usage monitoring (#9461)

* Add observability webpage about resource usage monitroing

* Refine the site

* Refine the resource monitoring docs

* Add kubectl top result to resource usage docs

Bump the kubernetes group across 3 directories with 11 updates (#9560)

Bumps the kubernetes group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.35.1` | `0.35.2` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.35.1` | `0.35.2` |
| [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) | `0.35.1` | `0.35.2` |
| [k8s.io/component-helpers](https://github.com/kubernetes/component-helpers) | `0.35.1` | `0.35.2` |
| [k8s.io/kubectl](https://github.com/kubernetes/kubectl) | `0.35.1` | `0.35.2` |

Bumps the kubernetes group with 1 update in the /cmd/experimental/kueue-populator directory: [k8s.io/api](https://github.com/kubernetes/api).
Bumps the kubernetes group with 1 update in the /cmd/kueueviz/backend directory: [k8s.io/api](https://github.com/kubernetes/api).

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiextensions-apiserver` from 0.35.1 to 0.35.2
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiserver` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/cli-runtime` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-base` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-base/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-helpers` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-helpers/compare/v0.35.1...v0.35.2)

Updates `k8s.io/kubectl` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/kubectl/compare/v0.35.1...v0.35.2)

Updates `k8s.io/metrics` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/metrics/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/code-generator` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/code-generator/compare/v0.35.1...v0.35.2)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/cli-runtime
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-base
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-helpers
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/kubectl
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/metrics
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/code-generator
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Update main with the latest v0.16.2 (#9574)

update changelog for v15 (#9578)

Bump the all group across 3 directories with 3 updates (#9558)

Bumps the all group with 1 update in the /cmd/kueueviz/frontend directory: [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).
Bumps the all group with 1 update in the /site directory: [autoprefixer](https://github.com/postcss/autoprefixer).
Bumps the all group with 1 update in the /test/e2e/kueueviz directory: [cypress](https://github.com/cypress-io/cypress).

Updates `react-router-dom` from 7.13.0 to 7.13.1
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.13.1/packages/react-router-dom)

Updates `autoprefixer` from 10.4.24 to 10.4.27
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.24...10.4.27)

Updates `cypress` from 15.10.0 to 15.11.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v15.10.0...v15.11.0)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: autoprefixer
  dependency-version: 10.4.27
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: cypress
  dependency-version: 15.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

test(cleanup): treat unknown kind cluster as successful deletion (#9577)

update release template post release 0.15.5/0.16.2 (#9579)

* update release template post release 0.15.5/0.16.2

* clarify

test(multikueue): increase TAS completion wait to VeryLongTimeout (#9572)

test(perf): relax baseline small admission threshold for flake (#9581)

[Fair Sharing] If workload fits in nominalQuota for a flavor, ignore DRS checks during preemption (#9494)

* Preempt in fair sharing if CQ within nominal. Add feature gate. Change reason to InCohortReclamation

Change to beta

Remove refactor

Revert some remnants of refactor. Make test changes clearer

* Add new feature flag

* Address review comments

Set TAS perf test thresholds (#9495)

Prevent duplicate preemption requests across scheduling cycles (#9437)

Use expectations.Store (same pattern as pod controller) to track
workloads with in-flight preemptions. The expectation is set before
calling Evict and rolled back on failure. It is cleared by the workload
controller when the eviction (or deletion) is observed.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump github.com/cert-manager/cert-manager from 1.19.3 to 1.19.4 (#9561)

Bumps [github.com/cert-manager/cert-manager](https://github.com/cert-manager/cert-manager) from 1.19.3 to 1.19.4.
- [Release notes](https://github.com/cert-manager/cert-manager/releases)
- [Changelog](https://github.com/cert-manager/cert-manager/blob/master/RELEASE.md)
- [Commits](https://github.com/cert-manager/cert-manager/compare/v1.19.3...v1.19.4)

---
updated-dependencies:
- dependency-name: github.com/cert-manager/cert-manager
  dependency-version: 1.19.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Refresh the PR template to add KEP label and areas (#9590)

Bump cypress/base from 24.13.1 to 24.14.0 in /hack/testing/cypress (#9557)

Bumps cypress/base from 24.13.1 to 24.14.0.

---
updated-dependencies:
- dependency-name: cypress/base
  dependency-version: 24.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Cleanup unused exported functions. (#9601)

Use NewPodSetReference() instead if PodSetReference(). (#9602)

Added a missing backslash in the  command for kueueviz (#9605)

Signed-off-by: michaelkotelnikov <michael.kot97@gmail.com>

Bump go.opentelemetry.io/otel/sdk from 1.38.0 to 1.40.0 in /hack/tools (#9607)

Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.40.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.40.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.40.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump minimatch in /test/e2e/kueueviz (#9613)

Bumps  and [minimatch](https://github.com/isaacs/minimatch). These dependencies needed to be updated together.

Updates `minimatch` from 7.4.6 to 7.4.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 7.4.9
  dependency-type: indirect
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools (#9614)

* Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools

Bumps [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) from 0.155.3 to 0.157.0.
- [Release notes](https://github.com/gohugoio/hugo/releases)
- [Commits](https://github.com/gohugoio/hugo/compare/v0.155.3...v0.157.0)

---
updated-dependencies:
- dependency-name: github.com/gohugoio/hugo
  dependency-version: 0.157.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Sync hugo version

* Fix after bump.

* Fix seo_schema.html.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix parsing of repo name and org in releasing scripts (#9617)

Fix the appwrapper e2e test (#9620)

test(tas): wait for TrainingRuntime visibility before creating TrainJob (#9571)

The e2e TAS TrainJob tests can flake when attempting to create a
TrainJob immediately after creating its referenced TrainingRuntime.
This happens because the Validation Webhook for TrainJobs relies on
an informer cache to verify the referenced TrainingRuntime exists.

If the Create request hits the webhook before the informer cache
synchronizes the new TrainingRuntime, the webhook rejects the TrainJob
creation with a "not found" error.

This commit introduces a local helper `createTrainJobWithRetry` that
wraps the TrainJob creation in an `Eventually` block, ignoring
transient "not found" or webhook errors until the cache is fully
synchronized and the creation succeeds.

e2e testing: use RequestAndLimit consistently (#9623)

* e2e testing: use RequestAndLimit consistently

* test

* fix

* fix lws

Refactor featuregate setup in tests to reduce possibility of flaky tests conflicts (#9600)

* Refactor feature gate setup in tests to use SetFeatureGateDuringTest for DynamicResourceAllocation, AdmissionFairSharing, and TASBalancedPlacement

* Remove unused feature gate setup in tests for AdmissionFairSharing and TASBalancedPlacement

* sync ##9603

* Remove unused feature gate setups in tests for AdmissionFairSharing and TopologyAwareScheduling

Skip PushOrUpdate for inflight workloads to prevent spurious scheduling cycles (#9598)

When a workload is popped by the scheduler (inflight), a concurrent
PushOrUpdate from the workload controller can push it onto the heap
while the scheduler also places it in the inadmissible set. This
causes an extra scheduling cycle.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump sigs.k8s.io/jobset from 0.11.0 to 0.11.1 (#9562)

Bumps [sigs.k8s.io/jobset](https://github.com/kubernetes-sigs/jobset) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/kubernetes-sigs/jobset/releases)
- [Changelog](https://github.com/kubernetes-sigs/jobset/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/jobset/compare/v0.11.0...v0.11.1)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/jobset
  dependency-version: 0.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Execute all FG validations at once #9355 (#9547)

- ValidateFeatureGates now returns field.ErrorList and collects all errors
- Update TestValidateFeatureGates to assert actual vs expected field errors
- Add test case for multiple FG validation errors returned at once

Add LockToDefault for PropagateBatchJobLabelsToWorkload GA feature gate (#9640)

Update kep.yaml files for v0.17 GA feature promotions (#9642)

* Update KEP 2936 (LocalQueueDefaulting) stage to stable for GA promotion

* Update KEP 1618 (ObjectRetentionPolicies) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, adds stable
milestone, and sets disable-supported to false.

* Update KEP 693 (MultiKueue) kep.yaml for MultiKueueBatchJobWithManagedBy GA

Updates latest-milestone to v0.17, adds stable milestone, and sets
disable-supported to false following MultiKueueBatchJobWithManagedBy
GA promotion.

* Update KEP 1834 (PropagateBatchJobLabelsToWorkload) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, and adds stable
milestone.

Bump rajatjindal/krew-release-bot in /hack/releasing/krew-release-bot (#9556)

Bumps [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot) from v0.0.46 to v0.0.50.
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.46...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: v0.0.50
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Use List to verify LWS state in reconciler tests (#9654)

* Use List to verify LWS state in reconciler tests

* Fix gofmt and gci formatting

Bump rajatjindal/krew-release-bot from 0.0.50 to 0.0.51 in the all group (#9648)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.50 to 0.0.51
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.50...v0.0.51)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.51
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add E2E test suite for MultiKueue with TAS (#9396)

* Add TAS asymmetric-quota tests to multikueue E2E suite

Add two new test cases to the existing multikueue TAS Describe
block in test/e2e/multikueue/tas_test.go, using asymmetric
worker quotas (worker1=2CPU, worker2=1CPU) to enable
deterministic routing assertions:

- Preferred topology routing: 1500m CPU job routes to worker1
- Required topology: 500m CPU job admitted on either worker

Extract waitForTopologyAssignment and
waitForDelayedTopologyRequestReady helpers to reduce
duplication across existing and new tests. Use
MakeDefaultOneLevelTopology and batchv1.JobNameLabel
for consistency.

* fix: hoist managerWl outside Eventually in waitForDelayedTopologyRequestReady

generalize MustCreateWithRetry and apply (#9653)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Fix LendingLimit feature-state version tag in cluster_queue.md (#9643)

The LendingLimit feature was promoted to GA in v0.17, not v0.18.
Update the feature-state version tag to reflect the correct version.

Multikueue dev setup for E2E test cluster: extend SA token expiration time to 7d (#9540)

* Set SA expiration time to 7d for e2e dev mode

* update worker-cluster.kind.yaml

* update worker-cluster.kind.yaml

* Revert "Merge branch 'cleanup/mk-dev-setup-sa-token-exp-e2e' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp-e2e"

This reverts commit e5b959ed01486ee051b64db134e38c3e2a57aea3, reversing
changes made to 33a4149b0f6c786273e5ccaa5d8ae23df6d37cff.

Add wayve.ai as an adopter (#9663)

* Add wayve.ai as an adopter

* Improved description

* Fix syntax issue

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig (#9604)

* Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* Adding messages pinpointing failures alogn failfast

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting log

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* untangling code

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Update RayService E2E test to check http endpoint inside the RayService (#9660)

* Update RayService E2E test to check http endpoint inside the RayService

* Use system generated port like 0:remotePort

Forcefully remove stuck pods in the failure recovery controller (#9651)

* Forcefully remove stuck pods in the failure recovery controller

* Add e2e test for `FailureRecoveryPolicy`

* Exclude buffer from the termination timeout

* Add e2e test for `FailureRecoveryPolicy` during foreground deletion

* Code review fixes

* Update the KEP with the new failure recovery logic

* Rename 'terminate' to 'delete'

* Fix e2e test

* Check the failure recovery condition to filter out more executions

* Add missing `gomega.Succeed()`

* Fix import formatting

* Fix e2e test timeouts

* Mention condition check in KEP

* Wait longer for job to be admitted in e2e test

* Use `ContainsFunc` in Pod utils

* Wrap the e2e tests with ginkgo.By

* Shorten the pod grace termination period

* Add `ginkgo.By` steps to `BeforeEach` and `AfterEach`

[KEP] Add a mechanism to consider preemption cost when finding preemption candidates (#8551)

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* priority-boost

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

Update KEP-6757 history to include changes after foreground propagated deletion fix (#9675)

* Mention the annotation name change in the KEP history

* Mention which versions use which annotation name

* Mention which versions retain the old behaviour

Small clarifications in scheduling code (#9674)

Fix inadmissible workload stuck after priority update (#9661)

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Watch workload deletions to trigger LWS reconciliation (#9631)

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Refactor of check filtering to reduce code duplication.

Test refactor.

Fix typo in README: 'Build-in' → 'Built-in' (#9683)

* Fix typo in README: 'Build-in' → 'Built-in'

* docs: fix abbreviation formatting: 'eg.' → 'e.g.'

TAS: support ResourceTransformations (#8963)

* Create integration test.

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

* TAS: support ResourceTransformations

---------

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

Fix shellcheck SC2086 ignore (#9646)

* make test-e2e not parsing GINKGO_ARGS properly #9477

* Fix shellcheck SC2086 ignore #9477

Promote HierarchicalCohorts to GA (#9618)

* Promote HierarchicalCohorts to GA

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Remove deprecated API references

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Fix generateName for StatefulSets by including UID in workload name (#9091)

* Fix generateName for StatefulSets by including UID in workload name

* Support StatefulSet workloads created without UID in name

* Propagate non-NotFound errors in findWorkloadName

feat: add multi-layer topology constraints for TAS (#9506)

* KEP update to reflect the latest impl.

* feat: add multi-layer topology constraints for TAS

Introduce the TASMultiLayerTopology feature gate (alpha) to support
up to 3 hierarchical slice layers in topology-aware scheduling.

- Add `PodsetSliceRequiredTopologyConstraints` field to
  `PodSetTopologyRequest` and the corresponding pod annotation
- Extend TAS flavor snapshot to handle multi-layer placement
- Add validation for the new field (mutual exclusivity with
  existing single-layer fields, layer ordering, size divisibility)
- Add v1beta1 <-> v1beta2 conversion support
- Add integration tests for multi-layer scheduling

* make generate && make verify

* fixup: address comments

Bump the all group across 1 directory with 3 updates (#9703)

Bumps the all group with 2 updates in the /cmd/kueueviz/frontend directory: [@mui/icons-material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material) and [serve](https://github.com/vercel/serve).

Updates `@mui/icons-material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-icons-material)

Updates `@mui/material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-material)

Updates `serve` from 14.2.5 to 14.2.6
- [Release notes](https://github.com/vercel/serve/releases)
- [Changelog](https://github.com/vercel/serve/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vercel/serve/compare/v14.2.5...v14.2.6)

---
updated-dependencies:
- dependency-name: "@mui/icons-material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: "@mui/material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: serve
  dependency-version: 14.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gin-gonic/gin in /cmd/kueueviz/backend (#9707)

Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/gin-gonic/gin/releases)
- [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gin-gonic/gin/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: github.com/gin-gonic/gin
  dependency-version: 1.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/kueue from 0.16.1 to 0.16.2 in /cmd/kueueviz/backend (#9709)

Bumps [sigs.k8s.io/kueue](https://github.com/kubernetes-sigs/kueue) from 0.16.1 to 0.16.2.
- [Release notes](https://github.com/kubernetes-sigs/kueue/releases)
- [Changelog](https://github.com/kubernetes-sigs/kueue/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/kueue/compare/v0.16.1...v0.16.2)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/kueue
  dependency-version: 0.16.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3 (#9704)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime in /cmd/kueueviz/backend (#9708)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Remove duplicates of using ContextWithLog(t). (#9717)

KEP: add kueueviz auth (#8971)

* KEP: add kueueviz auth

Signed-off-by: samzong <samzong.lu@gmail.com>

* update KEP details

Signed-off-by: samzong <samzong.lu@gmail.com>

* KEP-5993: adopt Alpha-first graduation and refine design

Signed-off-by: samzong <samzong.lu@gmail.com>

* remove featuregateway in design

Signed-off-by: samzong <samzong.lu@gmail.com>

---------

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: add token-based authentication for backend and frontend (#9684)

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: fetch Cohort CRD directly, instead of deriving from ClusterQueues (#9719)

Signed-off-by: samzong <samzong.lu@gmail.com>

Propagate contextual logger to workload.Info.Update (#9723)

Add logr.Logger parameter to workload.Info.Update() so callers can
pass a contextualized logger for V(5) debug logging. This keeps
workload.Info as a pure data struct without embedding runtime state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flaky test for sticky workload (#9718)

Add KEP to support `QuotaCheckStrategy` (#8396)

This commit details the changes required to support a new
configuration field, `QuotaCheckStrategy`.

Self-nominate kshalot as reviewer (#9692)

Add KEP-7066: Custom metadata labels for Kueue metrics (#9225)

* Add KEP-7066: Custom metadata labels for Kueue metrics

* Refine KEP-7066 design details and validation rules

* Add explicit source key mapping to KEP-7066 configuration

* Expand KEP-7066 to cover Cohort metrics

* Refine KEP-7066 structure and validation rules

Skip equivalent inadmissible workloads in BestEffortFIFO scheduling (#9698)

When the scheduler evaluates a workload and gets NoFit from FlavorAssigner,
bulk-move all heap workloads with the same scheduling hash to inadmissible.
This reduces scheduling cost from O(workloads) to O(equivalence classes),
allowing the scheduler to reach schedulable workloads deep in the queue.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

add handler in leader workset reconiler (#9740)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Bump ShortConsistentDuration. (#9749)

Provide a metric for cohort nominal quota (#9132)

* Add CohortNominalQuota metric

* Rework after code review

Propagate contextual logger to scheduling hash computation via UpdateSchedulingHash (#9731)

Add UpdateSchedulingHash(log) method to workload.Info so production
callers can compute the scheduling hash with a contextual logger
after NewInfo construction. NewInfo signature stays unchanged.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Cleanup Consistently. (#9756)

Scheduling: reduce the maximal backoff time from 100ms to 10ms (#9697)

* Reduce the max backoff time from 100ms to 10ms

* simplify the code to drop configurable maxBackoff

* add comments to the consts

[MinimalKueue] Add HeapProfile(). (#9759)

Multikueue dev setup: extend SA token expiration time (#9516)

* Update SA setup for MultiKueue dev setup and related doc

* Set SA expiration time to 7d for e2e dev mode

* Set SA expiration time to 7d for e2e dev mode

* Revert "Set SA expiration time to 7d for e2e dev mode"

This reverts commit e9cba59eaa6ead5488d80287f3e40078efaa4cfa.

* Undo Merge branch 'cleanup/mk-dev-setup-sa-token-exp' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp

feat: enhance error message for multi-layer topology constraints (#9739)

* feat: enhance error message for multi-layer topology constraints

Add detailed noFit messages for multi-layer TAS topology that report
per-level slice fit counts (e.g., "1/2 slice(s) fit on level block;
3/4 slice(s) fit on rack; 6/8 slice(s) fit on hostname").

* fixup: add UT for enough hostname slices but insufficient rack slices

kueueviz: support hierarchical cohorts with tree view (#9725)

Signed-off-by: samzong <samzong.lu@gmail.com>

feat(kueueviz/backend): drop polling and switch to informers (#8707)

Signed-off-by: Josef Kolář <josef.kolar@firma.seznam.cz>

Add E2E_SKIP_REINSTALL flag that working in E2E_MODE=dev mode, Add KUEUE_DEPLOYMENT_NAME const for controller manager deployment string (#9753)

Optimize gomega.Eventually() for populator. (#9777)

Decouple borrowing state from DRS ratio value (#9738)

* Add IsBorrowing function in DRS to be explicit about borrowing rather than assuming 0 DRS value means borrowing.

* Address review comments

Spell fix.

TAS: Improve scheduling performance by caching nodes (#9712)

* TAS: Improve scheduling performance by caching nodes

* Rename AddOrUpdateNode() to SyncNode().

Self-nominate sohankunkerkar as reviewer (#9776)

Optimize ContextWithLog() to allow use testing.TB. (#9780)

Update pkg/workload/workload.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Added comments to better explain the logic of "AdmissionChecksForWorkload" function.

Spell fix.

Tests update.

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Move test for clarity.

connection util update

Test fix.

Update cohort metric name (#9787)

Fix NodeHotSwap for multi-layer TAS topology constraints (#9733)

This fixes two issues with NodeHotSwap replacement in multi-layer topology:

1. Domain Selection (requiredReplacementDomain): When multiple slice
   constraints are configured (e.g., [{rack: 8}, {switch: 4}, {hostname: 2}]),
   the code was using only the outermost constraint to find the replacement
   domain. This could place replacements in the wrong sub-domain.

   Fix: Iterate from innermost to outermost constraint and use the first
   (innermost) broken constraint's domain to confine the search.

2. Slice Size (findReplacementAssignment): After clearing
   PodsetSliceRequiredTopologyConstraints, setting PodSetSliceSize alone
   was a dead write because getSliceSizeWithSinglePodAsDefault() requires
   PodSetSliceRequiredTopology to be set. This caused sliceSize=1, scattering
   replacement pods across hosts and violating hostname grouping constraints.

   Fix: Find the innermost satisfied constraint and set both
   PodSetSliceRequiredTopology and PodSetSliceSize to preserve leaf-level
   grouping.

Added test cases:
- 3-layer topology: validates innermost broken domain selection
- 2-layer topology: validates sliceSize prevents scattered placement

chore: Use slices instead of sort (#9781)

Fix missing replica_role=leader metrics after HA role transition (#9487)

test: use Job instead of JobSet in TAS rank ordering case (#9796)

TAS: improve performance of the addNode function. (#9791)

Use gomega.Eventually(func(g gomega.Gomega) pattern. (#9800)

* Use gomega.Eventually(func(g gomega.Gomega) pattern.

* Use wait.Group.

* Ignore conflict error.

feat(visibility): allow visibility server to use custom kubeconfig path (#9619)

* feat(visibility): allow visibility server to use custom kubeconfig path

* docs(visibility): clarify kubeConfig and kubeConfigPath usage in visibility server

* refactor(visibility): streamline kubeConfig handling in visibility server

* refactor(visibility): simplify kubeConfig path retrieval in visibility server

* refactor(visibility): remove redundant comments regarding kubeConfig in visibility server setup

* test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag

* Revert "test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag"

This reverts commit a4add98a15f4a581dd70d0aa57b87d7059f3ba85.

* feat(visibility): enable visibility server to utilize custom kubeconfig path

* test(visibility): add e2e tests for visibility server using custom kubeconfig with RBAC

* refactor(visibility): replace waitForDeployment with WaitForKueueAvailabilityNoRestartCountCheck in kubeconfig tests

* test(visibility): enhance clarity in kubeconfig test by adding descriptive step

* test(visibility): enhance RBAC tests for visibility server with custom kubeconfig

* fix(visibility): remove unused visibility import and ensure visibility scheme is added in init

* refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access

* Revert "refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access"

This reverts commit c11f57ac5d6c087ce94a7ce20e8c342e4c707b84.

* refactor(visibility): simplify kubeconfig test by removing unused visibility import and updating client usage

* fix(visibility): update cloneControllerRBAC to skip additional roles for SubjectAccessReview permissions

* Fix comments

* chore: remove trailing whitespace in `visibility_kubeconfig_test.go`

* Add TODO for internal server error

* refactor: replace `client.IgnoreAlreadyExists` with `util.MustCreate` for object creation in e2e tests.

* Remove CQ from test

* feat: introduce kubeconfig utility to resolve config and path, and pass the path to the visibility server for authentication and authorization configuration.

* refactor: extract k…
Singularity23x0 added a commit to Singularity23x0/kueue that referenced this pull request Apr 8, 2026
…flavor assigned (kubernetes-sigs#9359)

* Apply admission checks covering all CQ resources to workloads before
flavor assigned.
Adds tests to track the change.

Test setup fix.

Test setup and teardown fix.

Fit removed.

Adds fix with tests (it and unit).

fix incorrect pod placement during node replacement (#9211)

fix: retry kind cluster deletion to work around Docker race condition (#9261)

* fix: retry kind cluster deletion to work around Docker race condition

Add retry logic with exponential backoff to cluster_cleanup in
e2e-common.sh. Under CI (Docker-in-Docker on Linux with high IO
contention), 'kind delete cluster' can fail because Docker's internal
container kill has a hardcoded 2-second timeout that expires before the
container acknowledges the exit event (moby/moby#51028, moby/moby#51845).

Between retries, force-stop any remaining containers using the
io.x-k8s.kind.cluster label so that the next kind delete attempt starts
from a clean state.

Fixes kubernetes-sigs/kueue#8908

* fix: simplify kind cluster cleanup retries

Address review feedback by retrying only kind delete cluster with a shorter exponential backoff (1s initial delay, 5 attempts). Remove manual docker kill/rm cleanup to keep the bash logic simple, and document the upstream Docker issues as the reason for the temporary workaround.

Add scheduler tests for hierarchical cohort lendingLimit (#9136)

Add two test cases to verify lendingLimit behavior when borrowing
resources across hierarchical cohort structures:

- hierarchical cohort respects lending limit when borrowing
- hierarchical cohort allows borrowing up to lending limit

Graduate SanitizePodSets feature gate to GA (#9260)

Set SanitizePodSets to GA with LockToDefault: true in v0.17.
Remove the feature gate check from SanitizePodSet(), the disabled
feature gate test case, and update documentation.

[Refactor] Move all metrics ops to metrics.go in cache.queue (#9295)

* [Refactor] Move all metrics ops to metrics.go in cache.queue

* make names consistent

Graduate LendingLimit feature gate to GA (#9258)

Promote LendingLimit to GA at v0.18 with LockToDefault: true.
Remove all feature gate checks from production code and clean up
test cases that verified behavior when the feature was disabled.

Align the Kueue KEP template with the K8s KEP template (#9276)

Optimize UpdateKueueConfiguration. (#9275)

Enable TAS with ElasticJobsViaWorkloadSlices feature (#8580)

This change enables Topology-Aware Scheduling (TAS) to work correctly
with the ElasticJobsViaWorkloadSlices feature, which allows jobs to
dynamically scale via workload slices.
When ElasticJobsViaWorkloadSlices is enabled and a workload slice is
being replaced, the previous topology assignment is preserved for
existing pods, ensuring pods across slices are found correctly.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix race in RemoveRemoteObjects where remote LWS is not deleted (#9201)

When MultiKueueGC deletes the remote workload before the reconciler
processes the deletion, RemoveRemoteObjects would early-return on
remWl == nil without deleting the remote controller object (e.g., LWS).

Move DeleteRemoteObject before the nil check to ensure the remote
controller object is always deleted regardless of remote workload state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flake in scale-down logic for LeaderWorkerSet (#9135)

* Fix flake in scale-down logic for LeaderWorkerSet

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Add tests to prove the need of UpdatedReplicas check during rolling updates

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

[Refactor] queue.Manager Factory for integ tests (#9224)

Set certificate authority instead of insecure options in dev setup (#9312)

mark MultiKueueAllowInsecureKubeconfig as deprecated in feature gate (#9297)

Temporarily disable the TAS+ElasticWorkloads test (#9317)

Add podSecurityContext and containerSecurityContext to KueueViz Helm … (#9311)

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

Automate adding kind/* labels to cherry-pick PRs #9222 (#9290)

[Refactor] queue.Manager Factory for unit tests (#9321)

Increase the timeout for waiting for the Deployment update to start and check if ObservedGeneration changed. (#9315)

* Increase the timeout for waiting for the Deployment update to start.

* Check if ObservedGeneration changed in Deployment Status.

* Check if generation equal ObservedGeneration.

Upgrade MPI Operator version to v0.8.0 and enable TAS E2E tests (#9330)

* Update MPI Operator version to v0.8.0

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Enable MPIJob TAS E2E rank-ordering tests

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

promote local queue defaulting to ga (#9299)

Align CERTMANAGER configs. (#9332)

doc: Update the minimum MPI Operator version (#9335)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

KEP-8303: MultiKueue Orchestrated Preemption (#8985)

* Add first draft of KEP-8303: MultiKueue Synchronized Preemptions

* Add missing KEP number

* Reword main KEP goal

* Update KEP reviewers

* Expand the KEP content to include more detailed semantics of the proposal

* Remove wrong non-goal

* Add new non-goal

* Expand the beta API proposal with strictness of the gate

* Update the beta API with enum instead of boolean

* Add structure to the values of the proposed annotation

* Update the scheduler explanation section

* Explicitly specify the semantics of `PreemptionGateTimeout`

* Move dynamic timeout default to alternatives

* Update the comparison table between preemption annotations

* Fix leftover mentions of old design

* Finalize the API design: extend Workload API in alpha

* Rename the feature gate

* Update alternatives

* Update the proposal with a new `Condition`

* Update the creation date of the KEP

* Apply suggestions from code review

* Add missing step to the MK controller description

* Add early exit to the MK controller logic

* Rename open/closed to active/inactive

* Fix typo in API definition

* Fix grammar - 'disactivate' -> 'deactivate'

* Add paragraph about setting spec

* Fix typo 'born' -> 'blocked'

* Remove filtering out workloads with reserved quota for simplicity

* Mention having to check both the spec and status of workload

* Disambiguate active preemption gate

* Use `LastTriggeredTime` instead of `Condition`

* Remove dubious advantage of spec/status split

* Update the controller algorithm with early exit

* Rename 'synchronization' to 'orchestration'

* Add 'presence as active' alternative

* Expand the scheduler impact description

* Update ToC

* Add table explaining flavor selection

* Fix typos in the content

* Add more context to the requeueing logic

* Remove paragraph about `cannot-preempt` behavior similarity

* Fix alternatives section nesting

* Apply review comments

* Make `LastTriggeredTime` optional

* Remove confusing step from controller implementation

* Explicitly mention the controller updating the status of preemption gates

* Address review comments

* Add missing comments to proposed API

* Revert back to using a new condition for signaling

* Fix alternative nesting

* Rename active/inactive to open/closed

* Add alternative to place timeout in `MultiKueueConfig`

* Reword condition description comment

* Mention eviction atomicity

* Fix wording on the condition extension alternative

FIX: Drop default podSecurityContext and containerSecurityContext to KueueViz frontend (#9339)

Reduce the TAS performance test results variance (#9238)

* Reduce the TAS performance test results variance

The average admission time reported in TAS performance test is too
unstable:
60 workloads (large-balanced-rack) → 37.1% CV
90 workloads (medium-balanced-rack) → 34.7% CV
120 workloads (medium-preferred-block) → 32.3% CV
180 workloads (medium/small-required/preferred-rack) → ~9% CV
300 workloads (small-required-rack) → 5.3% CV
where CV (Coefficient of Variance) = variance / average.

Specifying thresholds for the admission time now would make the
TAS performance test results flaky.

This commit attempts to reduce the variance down to <10% by increasing
the workloads count and making the Law of Large Numbers work for us.

* Match tas performance test counts with baseline

One difference remaining is that TAS workloads have multiple pods in
them.

All 3 workload sets have different tas constraints to test the
performance impact of all of them.

* Add more workload set combinations

Keep the workload count the same, but test all the combinations of
different workload sizes with all the possible TAS constraints.

Fix ExpectNewWorkloadSlice to retry until workload is found (#9331)

The function was supposed to wait until a new workload appeared,
but it returned immediately after checking the list even if nothing
was found yet. This caused the test to fail randomly when the controller
was slower than expected. Keep retrying until the workload is actually
found, and clear the result before each retry to avoid returning stale data.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Update _index.md (#9351)

Fix feature-gates ConfigMap example.

promote ObjectRetentionPolicy to GA (#9300)

Test cleanup fix.

Included coverage of the "admission with no flavors" case in workload controller.

Included coverage of the "admission with no flavors" case in workload controller.

Import fix.

Test setup correction.

Moved workload admission definitions back into the bodies of the relevant tests.

Adds logging.

Foramtting.

Temporary - increase flaky e2e test verbosity.

e2e mk deployment test update - safeguard against flakyness.

test restructure

LOg message cleanup.

Logs cleanup.

Unnecesary util fiunc cleanup.

Optimized migration script to allow migration of namespaced resources by namespace (#9340)

* Optimized migration script to allow migration of namespaced resources by namespace.

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

---------

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

Automate adding kind/* labels to cherry-pick PRs #9222 (#9362)

* Follow-up

fix: quota double-counting for unchanged podSets in Workload Slices (#9322)

* Fix quota double-counting for unchanged podSets in workload slicing

* Add e2e tests for elastic workloads

* Remove downscale checks as these aren't managed by flavor assignment logic

* fix: integ test and podSet field being immutable (for upscales)

* address comments

* keep empty quota

* update assignment usage comment

Handle NoExecute taint as an unhealthy node (#8964)

* TAS Replace Node On Taints implementation

* refactor node failure controller

* use job instead of jobset

* cleanup

TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaluted (#8685)

* TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaludated

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* decouple E2E test from existing one

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Simplify the number of PodSet detection

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

Extend resource transformation integration tests. (#9356)

[Refactor] Terminate Workloads Sequentially in Integration Test (#9346)

Fix e2e certmanager kustomization missing vars (#9372)

Use v1beta1 as prefered API resource version. (#9367)

MultiKueue + TAS setup script: bump Kueue to 0.16 (#9308)

* MultiKueue + TAS setup script: bump Kueue to 0.16

* Address comments

Bump systeminformation from 5.27.14 to 5.31.1 in /test/e2e/kueueviz (#9373)

Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 5.27.14 to 5.31.1.
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v5.27.14...v5.31.1)

---
updated-dependencies:
- dependency-name: systeminformation
  dependency-version: 5.31.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add common code into raycluster/common.go (#9376)

* Add common code into raycluster/common.go

* Remove ByRayClusterSpec from names

* Update usage of common code

Add Prometheus e2e tests (#9031)

e2e testing: load images into kind worker nodes in parallel #9052 (#9294)

Remove deprecated TASProfileLeastFreeCapacity feature gate (#9298)

* Remove deprecated TASProfileLeastFreeCapacity feature gate

The TASProfileLeastFreeCapacity feature gate was deprecated in v0.11,
superseded by TASProfileMixed which uses LeastFreeCapacity only for
unconstrained requests and BestFit for required/preferred. This removes
the gate, simplifies validation logic, and drops all associated tests.

* add back validation code in case we add more tas profiles

KEP-2724: Add multi-level topology aware scheduling design (#9243)

* KEP-2724: Add multi-level topology aware scheduling design

Add the design for multi-level TAS, which extends two-level
scheduling to support N slice layers across deeper topology
hierarchies (e.g., datacenter → block → rack → host).

* fixup: fix comments

Self-nominate olekzabl as reviewer (#9366)

Optimize checkFlavorForPodSets(). (#9390)

Refactor string literals to common consts in raycluster, pod, job controller reconciler tests (#9393)

Optimize migrate-to-v1beta2.sh to allow downgrade. (#9383)

* Optimize migrate-to-v1beta2.sh to allow downgrade.

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

---------

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

Fix prometheus operator setup in e2e-k8s-main-was target (#9403)

Fix flaky workload retention test after manager restart (#9384)

Adds a controller-readiness barrier after restartManager() to ensure
controllers are processing events before deleting the workload.
Without this, gauge metric assertions passed from stale prometheus
state, allowing the delete to race ahead of controller startup.

using replacements instead of vars (#9239)

* using replacements instead of vars

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* commenting out optional changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* adding certmanager message back

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* removing accidentally committed dependency from project

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* additional formatting

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting fixes

* Revert e2e certmanager kustomization to keep PR focused

* formatting yaml, removing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* remove trailing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Fix hack/tools module path to match directory structure (#9408)

KubeRay: Add RayService controller as top level job (#9102)

* Add RayService controller as top level job

* Update helm chart yaml files

* Use build and update logic for RayService PodSets method

* Fix lint issue

* Update processing-plan.yaml

* Clean up rayservice webhook and multikueue adapter and update tests

* Use hardcode Running message in RayService.Finished

* Remove pod debugging log in e2e test

* Remove rayservice multikueue adapter

* Replace Status.ServiceStatus with Condition check

* Move RayJob/RayService common code to raycluster package

* Remove ByRayClusterSpec from names

* Add rayservice to integration and clean up code

Add example ConfigMap for RayJob autoscaling documentation (#9410)

Include the ray-job-autoscaling-code-sample.yaml ConfigMap in the
autoscaling example section of the RayJob docs (en and zh-CN), along
with kubectl commands to apply it. This mirrors the pattern used in
the non-autoscaling example section.

Bump golangci-lint to v2.10.1 (#9389)

Bump rajatjindal/krew-release-bot from 0.0.47 to 0.0.50 in the all group (#9418)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.47 to 0.0.50
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.47...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.50
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix dev mode e2e setup to skip prometheus config when feature is not selected (#9417)

Fix InsertText test cases in yaml-processor (#9409)

Fix: fix cohortName field for `v1beta2.ClusterQueue` (#9394)

* Fix ClusterQueue builder for v1beta2

* Update references in comments

* Update references in other files - automatic update

docs: document suspend behavior for raycluster/rayservice/rayjob (#8900)

Updated documentation for RayCluster, RayJob, and RayService to clarify that Kueue manages the `suspend` field and overrides it upon admission.

Signed-off-by: Abirdcfly <fp544037857@gmail.com>

Fix stale replica-role in scheduler logs after leader election (#9429)

Add cluster-queue-name and local-queue-name labels for pods coming from admitted workloads (#9348)

* Add queue labels to pod template for jobs

* Add queue labels to pods in existing tests

* Add queue pod labels to docs

* Add feature gate for queue pod labels and validation

* Revert testfile changes to avoid conflicts with pretask

* Add checks for new labels in e2e tests

* Add queue label checks to unit tests

* Fix incorrect table test name

Cleanup RayService controller code (#9430)

* Use 600m cpu for RayService e2e test

* Update suspend related doc for RayService

* Add rayservice to integrations in helm chart values file

* Update RayJob test wrapper

Fix discarded ctx from ctrl.LoggerInto causing missing replica-role in logs (#9445)

Fix missing roleTracker in NonTasUsageReconciler (#9433)

[Refactor] Add context to integ manager factory (#9458)

Fix race in KubeConfigFSWatcher tests by making Start() blocking (#9459)

[Docs][zh]sync tasks/run/deployment (#9442)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/plain_pods (#9443)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/leaderworkerset (#9444)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/statefulset (#9446)

Signed-off-by: xin.li <xin.li@daocloud.io>

upgrade to beta (#9450)

[flake] fix Admission Fair Sharing test (#9471)

[flake] fix Admission Fair Sharing test2 (#9476)

Narrow TAS ResourceFlavor spec immutability to topology-sensitive fields (#9427)

* Restrict the fields that are immutable in ResourceFlavorSpec when using TAS

* Remove nodeTaints from ResourceFlavor immutability check

* Fix formatting failures

* Fix documentation by removing unwanted comments

Fix a flavorFungibility preference bug (#9464)

* Reproduce a flavor fungibility preference bug (https://github.com/kubernetes-sigs/kueue/issues/9462)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Fix a flavorFungibility preference bug where explicit preference specifications are reversed behavior

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

[flake] fix e2e metrics test (#9485)

Asynchronous Inadmissible Workload Requeueing (#9232)

* Asynchronous Inadmissible Workload Requeueing

* address comments

* workqueue

Bump github.com/cloudflare/circl from 1.6.1 to 1.6.3 in /hack/tools (#9491)

Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.6.1 to 1.6.3.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.6.1...v1.6.3)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-version: 1.6.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump rollup from 4.43.0 to 4.59.0 in /cmd/kueueviz/frontend (#9496)

Bumps [rollup](https://github.com/rollup/rollup) from 4.43.0 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.43.0...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Localize topology (#9423)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync multikueue (#9436)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync concepts/_index (#9424)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]Localize elastic_workload (#9425)

Signed-off-by: xin.li <xin.li@daocloud.io>

Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~11h (#9493)

* Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~5.69h

Bump the bucket count from 14 to 15 so the max boundary becomes
20480s (~5.69h).

* Bump to 16 buckets

feat: update metrics for local queue kep to beta (#9370)

[Fair Sharing] Prefer nominal-quota workloads in admission ordering (#9484)

* Give priority to workloads that can fit within quota during fair sharing

* Add e2e tests. Create a feature gate

* Change feature gate to beta and get make verify to work

Add windsonsea and my-git9 to zh-CN docs approver (#9497)

Signed-off-by: xin.li <xin.li@daocloud.io>

Bump actions/setup-go from 6.2.0 to 6.3.0 in the all group (#9509)

Bumps the all group with 1 update: [actions/setup-go](https://github.com/actions/setup-go).

Updates `actions/setup-go` from 6.2.0 to 6.3.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5...4b73464bb391d4059bd26b0524d20df3927bd417)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Add tasks/run/using_hami (#9505)

Signed-off-by: xin.li <xin.li@daocloud.io>

inadmissible workloads - delete already processed logic (#9513)

Update RayService doc due to recent top level job change (#9460)

* Update RayService doc

* Extra version change

* Remove restart instruction

* Revert "Remove restart instruction"

This reverts commit 61594c3064b9e769a0f6c12d0625e24343e7d935.

log inadmissible workload requeue count (#9512)

move certs test (#9521)

[flake] increase batch period for requeue inadmissible test (#9531)

Fix StatefulSet MultiKueue adapter selection by creating workload in STS reconciler (#9344)

[website][zh] translation of YAML annotations for using_hami (#9517)

Signed-off-by: xin.li <xin.li@daocloud.io>

[website][zh]sync run/kubeflow/mpijobs (#9518)

Signed-off-by: xin.li <xin.li@daocloud.io>

Clean up workaround for the MPI Operator installation in E2E (#9546)

Remove the yq workaround that dropped empty rules for aggregated
ClusterRoles. The new MPI Operator version includes the fix.

Ref: https://github.com/kubernetes-sigs/kueue/issues/9375

[flake] fix StatefulSet e2e test when manageJobsWithoutQueueName=true (#9542)

fix perf test flakiness caused by informer relist (#9543)

The Create predicate assumed Create events always mean freshly created,
non-admitted workloads, so it returned false for all of them.  This
breaks during informer relist: if the watch closes and the client
relists, workloads admitted during the gap appear as Create events and
were silently dropped, so Reconcile() was never called and they were
never marked Finished.

Fix the predicate to return true only for admitted, unfinished workloads,
mirroring the Update path.  Add a unit test covering all four cases.

fix(scheduler): relax strict admission attempt expectations in flaky tests (#9554)

* fix(scheduler): relax strict admission attempt expectations in flaky tests

* fix(scheduler): keep scope to scheduler_test for #9526

Add subpage in observability about resource usage monitoring (#9461)

* Add observability webpage about resource usage monitroing

* Refine the site

* Refine the resource monitoring docs

* Add kubectl top result to resource usage docs

Bump the kubernetes group across 3 directories with 11 updates (#9560)

Bumps the kubernetes group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.35.1` | `0.35.2` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.35.1` | `0.35.2` |
| [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) | `0.35.1` | `0.35.2` |
| [k8s.io/component-helpers](https://github.com/kubernetes/component-helpers) | `0.35.1` | `0.35.2` |
| [k8s.io/kubectl](https://github.com/kubernetes/kubectl) | `0.35.1` | `0.35.2` |

Bumps the kubernetes group with 1 update in the /cmd/experimental/kueue-populator directory: [k8s.io/api](https://github.com/kubernetes/api).
Bumps the kubernetes group with 1 update in the /cmd/kueueviz/backend directory: [k8s.io/api](https://github.com/kubernetes/api).

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiextensions-apiserver` from 0.35.1 to 0.35.2
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiserver` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/cli-runtime` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-base` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-base/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-helpers` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-helpers/compare/v0.35.1...v0.35.2)

Updates `k8s.io/kubectl` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/kubectl/compare/v0.35.1...v0.35.2)

Updates `k8s.io/metrics` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/metrics/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/code-generator` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/code-generator/compare/v0.35.1...v0.35.2)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/cli-runtime
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-base
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-helpers
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/kubectl
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/metrics
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/code-generator
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Update main with the latest v0.16.2 (#9574)

update changelog for v15 (#9578)

Bump the all group across 3 directories with 3 updates (#9558)

Bumps the all group with 1 update in the /cmd/kueueviz/frontend directory: [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).
Bumps the all group with 1 update in the /site directory: [autoprefixer](https://github.com/postcss/autoprefixer).
Bumps the all group with 1 update in the /test/e2e/kueueviz directory: [cypress](https://github.com/cypress-io/cypress).

Updates `react-router-dom` from 7.13.0 to 7.13.1
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.13.1/packages/react-router-dom)

Updates `autoprefixer` from 10.4.24 to 10.4.27
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.24...10.4.27)

Updates `cypress` from 15.10.0 to 15.11.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v15.10.0...v15.11.0)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: autoprefixer
  dependency-version: 10.4.27
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: cypress
  dependency-version: 15.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

test(cleanup): treat unknown kind cluster as successful deletion (#9577)

update release template post release 0.15.5/0.16.2 (#9579)

* update release template post release 0.15.5/0.16.2

* clarify

test(multikueue): increase TAS completion wait to VeryLongTimeout (#9572)

test(perf): relax baseline small admission threshold for flake (#9581)

[Fair Sharing] If workload fits in nominalQuota for a flavor, ignore DRS checks during preemption (#9494)

* Preempt in fair sharing if CQ within nominal. Add feature gate. Change reason to InCohortReclamation

Change to beta

Remove refactor

Revert some remnants of refactor. Make test changes clearer

* Add new feature flag

* Address review comments

Set TAS perf test thresholds (#9495)

Prevent duplicate preemption requests across scheduling cycles (#9437)

Use expectations.Store (same pattern as pod controller) to track
workloads with in-flight preemptions. The expectation is set before
calling Evict and rolled back on failure. It is cleared by the workload
controller when the eviction (or deletion) is observed.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump github.com/cert-manager/cert-manager from 1.19.3 to 1.19.4 (#9561)

Bumps [github.com/cert-manager/cert-manager](https://github.com/cert-manager/cert-manager) from 1.19.3 to 1.19.4.
- [Release notes](https://github.com/cert-manager/cert-manager/releases)
- [Changelog](https://github.com/cert-manager/cert-manager/blob/master/RELEASE.md)
- [Commits](https://github.com/cert-manager/cert-manager/compare/v1.19.3...v1.19.4)

---
updated-dependencies:
- dependency-name: github.com/cert-manager/cert-manager
  dependency-version: 1.19.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Refresh the PR template to add KEP label and areas (#9590)

Bump cypress/base from 24.13.1 to 24.14.0 in /hack/testing/cypress (#9557)

Bumps cypress/base from 24.13.1 to 24.14.0.

---
updated-dependencies:
- dependency-name: cypress/base
  dependency-version: 24.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Cleanup unused exported functions. (#9601)

Use NewPodSetReference() instead if PodSetReference(). (#9602)

Added a missing backslash in the  command for kueueviz (#9605)

Signed-off-by: michaelkotelnikov <michael.kot97@gmail.com>

Bump go.opentelemetry.io/otel/sdk from 1.38.0 to 1.40.0 in /hack/tools (#9607)

Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.40.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.40.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.40.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump minimatch in /test/e2e/kueueviz (#9613)

Bumps  and [minimatch](https://github.com/isaacs/minimatch). These dependencies needed to be updated together.

Updates `minimatch` from 7.4.6 to 7.4.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 7.4.9
  dependency-type: indirect
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools (#9614)

* Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools

Bumps [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) from 0.155.3 to 0.157.0.
- [Release notes](https://github.com/gohugoio/hugo/releases)
- [Commits](https://github.com/gohugoio/hugo/compare/v0.155.3...v0.157.0)

---
updated-dependencies:
- dependency-name: github.com/gohugoio/hugo
  dependency-version: 0.157.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Sync hugo version

* Fix after bump.

* Fix seo_schema.html.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix parsing of repo name and org in releasing scripts (#9617)

Fix the appwrapper e2e test (#9620)

test(tas): wait for TrainingRuntime visibility before creating TrainJob (#9571)

The e2e TAS TrainJob tests can flake when attempting to create a
TrainJob immediately after creating its referenced TrainingRuntime.
This happens because the Validation Webhook for TrainJobs relies on
an informer cache to verify the referenced TrainingRuntime exists.

If the Create request hits the webhook before the informer cache
synchronizes the new TrainingRuntime, the webhook rejects the TrainJob
creation with a "not found" error.

This commit introduces a local helper `createTrainJobWithRetry` that
wraps the TrainJob creation in an `Eventually` block, ignoring
transient "not found" or webhook errors until the cache is fully
synchronized and the creation succeeds.

e2e testing: use RequestAndLimit consistently (#9623)

* e2e testing: use RequestAndLimit consistently

* test

* fix

* fix lws

Refactor featuregate setup in tests to reduce possibility of flaky tests conflicts (#9600)

* Refactor feature gate setup in tests to use SetFeatureGateDuringTest for DynamicResourceAllocation, AdmissionFairSharing, and TASBalancedPlacement

* Remove unused feature gate setup in tests for AdmissionFairSharing and TASBalancedPlacement

* sync ##9603

* Remove unused feature gate setups in tests for AdmissionFairSharing and TopologyAwareScheduling

Skip PushOrUpdate for inflight workloads to prevent spurious scheduling cycles (#9598)

When a workload is popped by the scheduler (inflight), a concurrent
PushOrUpdate from the workload controller can push it onto the heap
while the scheduler also places it in the inadmissible set. This
causes an extra scheduling cycle.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump sigs.k8s.io/jobset from 0.11.0 to 0.11.1 (#9562)

Bumps [sigs.k8s.io/jobset](https://github.com/kubernetes-sigs/jobset) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/kubernetes-sigs/jobset/releases)
- [Changelog](https://github.com/kubernetes-sigs/jobset/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/jobset/compare/v0.11.0...v0.11.1)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/jobset
  dependency-version: 0.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Execute all FG validations at once #9355 (#9547)

- ValidateFeatureGates now returns field.ErrorList and collects all errors
- Update TestValidateFeatureGates to assert actual vs expected field errors
- Add test case for multiple FG validation errors returned at once

Add LockToDefault for PropagateBatchJobLabelsToWorkload GA feature gate (#9640)

Update kep.yaml files for v0.17 GA feature promotions (#9642)

* Update KEP 2936 (LocalQueueDefaulting) stage to stable for GA promotion

* Update KEP 1618 (ObjectRetentionPolicies) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, adds stable
milestone, and sets disable-supported to false.

* Update KEP 693 (MultiKueue) kep.yaml for MultiKueueBatchJobWithManagedBy GA

Updates latest-milestone to v0.17, adds stable milestone, and sets
disable-supported to false following MultiKueueBatchJobWithManagedBy
GA promotion.

* Update KEP 1834 (PropagateBatchJobLabelsToWorkload) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, and adds stable
milestone.

Bump rajatjindal/krew-release-bot in /hack/releasing/krew-release-bot (#9556)

Bumps [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot) from v0.0.46 to v0.0.50.
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.46...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: v0.0.50
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Use List to verify LWS state in reconciler tests (#9654)

* Use List to verify LWS state in reconciler tests

* Fix gofmt and gci formatting

Bump rajatjindal/krew-release-bot from 0.0.50 to 0.0.51 in the all group (#9648)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.50 to 0.0.51
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.50...v0.0.51)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.51
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add E2E test suite for MultiKueue with TAS (#9396)

* Add TAS asymmetric-quota tests to multikueue E2E suite

Add two new test cases to the existing multikueue TAS Describe
block in test/e2e/multikueue/tas_test.go, using asymmetric
worker quotas (worker1=2CPU, worker2=1CPU) to enable
deterministic routing assertions:

- Preferred topology routing: 1500m CPU job routes to worker1
- Required topology: 500m CPU job admitted on either worker

Extract waitForTopologyAssignment and
waitForDelayedTopologyRequestReady helpers to reduce
duplication across existing and new tests. Use
MakeDefaultOneLevelTopology and batchv1.JobNameLabel
for consistency.

* fix: hoist managerWl outside Eventually in waitForDelayedTopologyRequestReady

generalize MustCreateWithRetry and apply (#9653)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Fix LendingLimit feature-state version tag in cluster_queue.md (#9643)

The LendingLimit feature was promoted to GA in v0.17, not v0.18.
Update the feature-state version tag to reflect the correct version.

Multikueue dev setup for E2E test cluster: extend SA token expiration time to 7d (#9540)

* Set SA expiration time to 7d for e2e dev mode

* update worker-cluster.kind.yaml

* update worker-cluster.kind.yaml

* Revert "Merge branch 'cleanup/mk-dev-setup-sa-token-exp-e2e' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp-e2e"

This reverts commit e5b959ed01486ee051b64db134e38c3e2a57aea3, reversing
changes made to 33a4149b0f6c786273e5ccaa5d8ae23df6d37cff.

Add wayve.ai as an adopter (#9663)

* Add wayve.ai as an adopter

* Improved description

* Fix syntax issue

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig (#9604)

* Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* Adding messages pinpointing failures alogn failfast

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting log

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* untangling code

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Update RayService E2E test to check http endpoint inside the RayService (#9660)

* Update RayService E2E test to check http endpoint inside the RayService

* Use system generated port like 0:remotePort

Forcefully remove stuck pods in the failure recovery controller (#9651)

* Forcefully remove stuck pods in the failure recovery controller

* Add e2e test for `FailureRecoveryPolicy`

* Exclude buffer from the termination timeout

* Add e2e test for `FailureRecoveryPolicy` during foreground deletion

* Code review fixes

* Update the KEP with the new failure recovery logic

* Rename 'terminate' to 'delete'

* Fix e2e test

* Check the failure recovery condition to filter out more executions

* Add missing `gomega.Succeed()`

* Fix import formatting

* Fix e2e test timeouts

* Mention condition check in KEP

* Wait longer for job to be admitted in e2e test

* Use `ContainsFunc` in Pod utils

* Wrap the e2e tests with ginkgo.By

* Shorten the pod grace termination period

* Add `ginkgo.By` steps to `BeforeEach` and `AfterEach`

[KEP] Add a mechanism to consider preemption cost when finding preemption candidates (#8551)

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* priority-boost

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

Update KEP-6757 history to include changes after foreground propagated deletion fix (#9675)

* Mention the annotation name change in the KEP history

* Mention which versions use which annotation name

* Mention which versions retain the old behaviour

Small clarifications in scheduling code (#9674)

Fix inadmissible workload stuck after priority update (#9661)

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Watch workload deletions to trigger LWS reconciliation (#9631)

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Refactor of check filtering to reduce code duplication.

Test refactor.

Fix typo in README: 'Build-in' → 'Built-in' (#9683)

* Fix typo in README: 'Build-in' → 'Built-in'

* docs: fix abbreviation formatting: 'eg.' → 'e.g.'

TAS: support ResourceTransformations (#8963)

* Create integration test.

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

* TAS: support ResourceTransformations

---------

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

Fix shellcheck SC2086 ignore (#9646)

* make test-e2e not parsing GINKGO_ARGS properly #9477

* Fix shellcheck SC2086 ignore #9477

Promote HierarchicalCohorts to GA (#9618)

* Promote HierarchicalCohorts to GA

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Remove deprecated API references

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Fix generateName for StatefulSets by including UID in workload name (#9091)

* Fix generateName for StatefulSets by including UID in workload name

* Support StatefulSet workloads created without UID in name

* Propagate non-NotFound errors in findWorkloadName

feat: add multi-layer topology constraints for TAS (#9506)

* KEP update to reflect the latest impl.

* feat: add multi-layer topology constraints for TAS

Introduce the TASMultiLayerTopology feature gate (alpha) to support
up to 3 hierarchical slice layers in topology-aware scheduling.

- Add `PodsetSliceRequiredTopologyConstraints` field to
  `PodSetTopologyRequest` and the corresponding pod annotation
- Extend TAS flavor snapshot to handle multi-layer placement
- Add validation for the new field (mutual exclusivity with
  existing single-layer fields, layer ordering, size divisibility)
- Add v1beta1 <-> v1beta2 conversion support
- Add integration tests for multi-layer scheduling

* make generate && make verify

* fixup: address comments

Bump the all group across 1 directory with 3 updates (#9703)

Bumps the all group with 2 updates in the /cmd/kueueviz/frontend directory: [@mui/icons-material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material) and [serve](https://github.com/vercel/serve).

Updates `@mui/icons-material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-icons-material)

Updates `@mui/material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-material)

Updates `serve` from 14.2.5 to 14.2.6
- [Release notes](https://github.com/vercel/serve/releases)
- [Changelog](https://github.com/vercel/serve/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vercel/serve/compare/v14.2.5...v14.2.6)

---
updated-dependencies:
- dependency-name: "@mui/icons-material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: "@mui/material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: serve
  dependency-version: 14.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gin-gonic/gin in /cmd/kueueviz/backend (#9707)

Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/gin-gonic/gin/releases)
- [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gin-gonic/gin/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: github.com/gin-gonic/gin
  dependency-version: 1.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/kueue from 0.16.1 to 0.16.2 in /cmd/kueueviz/backend (#9709)

Bumps [sigs.k8s.io/kueue](https://github.com/kubernetes-sigs/kueue) from 0.16.1 to 0.16.2.
- [Release notes](https://github.com/kubernetes-sigs/kueue/releases)
- [Changelog](https://github.com/kubernetes-sigs/kueue/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/kueue/compare/v0.16.1...v0.16.2)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/kueue
  dependency-version: 0.16.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3 (#9704)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime in /cmd/kueueviz/backend (#9708)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Remove duplicates of using ContextWithLog(t). (#9717)

KEP: add kueueviz auth (#8971)

* KEP: add kueueviz auth

Signed-off-by: samzong <samzong.lu@gmail.com>

* update KEP details

Signed-off-by: samzong <samzong.lu@gmail.com>

* KEP-5993: adopt Alpha-first graduation and refine design

Signed-off-by: samzong <samzong.lu@gmail.com>

* remove featuregateway in design

Signed-off-by: samzong <samzong.lu@gmail.com>

---------

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: add token-based authentication for backend and frontend (#9684)

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: fetch Cohort CRD directly, instead of deriving from ClusterQueues (#9719)

Signed-off-by: samzong <samzong.lu@gmail.com>

Propagate contextual logger to workload.Info.Update (#9723)

Add logr.Logger parameter to workload.Info.Update() so callers can
pass a contextualized logger for V(5) debug logging. This keeps
workload.Info as a pure data struct without embedding runtime state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flaky test for sticky workload (#9718)

Add KEP to support `QuotaCheckStrategy` (#8396)

This commit details the changes required to support a new
configuration field, `QuotaCheckStrategy`.

Self-nominate kshalot as reviewer (#9692)

Add KEP-7066: Custom metadata labels for Kueue metrics (#9225)

* Add KEP-7066: Custom metadata labels for Kueue metrics

* Refine KEP-7066 design details and validation rules

* Add explicit source key mapping to KEP-7066 configuration

* Expand KEP-7066 to cover Cohort metrics

* Refine KEP-7066 structure and validation rules

Skip equivalent inadmissible workloads in BestEffortFIFO scheduling (#9698)

When the scheduler evaluates a workload and gets NoFit from FlavorAssigner,
bulk-move all heap workloads with the same scheduling hash to inadmissible.
This reduces scheduling cost from O(workloads) to O(equivalence classes),
allowing the scheduler to reach schedulable workloads deep in the queue.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

add handler in leader workset reconiler (#9740)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Bump ShortConsistentDuration. (#9749)

Provide a metric for cohort nominal quota (#9132)

* Add CohortNominalQuota metric

* Rework after code review

Propagate contextual logger to scheduling hash computation via UpdateSchedulingHash (#9731)

Add UpdateSchedulingHash(log) method to workload.Info so production
callers can compute the scheduling hash with a contextual logger
after NewInfo construction. NewInfo signature stays unchanged.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Cleanup Consistently. (#9756)

Scheduling: reduce the maximal backoff time from 100ms to 10ms (#9697)

* Reduce the max backoff time from 100ms to 10ms

* simplify the code to drop configurable maxBackoff

* add comments to the consts

[MinimalKueue] Add HeapProfile(). (#9759)

Multikueue dev setup: extend SA token expiration time (#9516)

* Update SA setup for MultiKueue dev setup and related doc

* Set SA expiration time to 7d for e2e dev mode

* Set SA expiration time to 7d for e2e dev mode

* Revert "Set SA expiration time to 7d for e2e dev mode"

This reverts commit e9cba59eaa6ead5488d80287f3e40078efaa4cfa.

* Undo Merge branch 'cleanup/mk-dev-setup-sa-token-exp' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp

feat: enhance error message for multi-layer topology constraints (#9739)

* feat: enhance error message for multi-layer topology constraints

Add detailed noFit messages for multi-layer TAS topology that report
per-level slice fit counts (e.g., "1/2 slice(s) fit on level block;
3/4 slice(s) fit on rack; 6/8 slice(s) fit on hostname").

* fixup: add UT for enough hostname slices but insufficient rack slices

kueueviz: support hierarchical cohorts with tree view (#9725)

Signed-off-by: samzong <samzong.lu@gmail.com>

feat(kueueviz/backend): drop polling and switch to informers (#8707)

Signed-off-by: Josef Kolář <josef.kolar@firma.seznam.cz>

Add E2E_SKIP_REINSTALL flag that working in E2E_MODE=dev mode, Add KUEUE_DEPLOYMENT_NAME const for controller manager deployment string (#9753)

Optimize gomega.Eventually() for populator. (#9777)

Decouple borrowing state from DRS ratio value (#9738)

* Add IsBorrowing function in DRS to be explicit about borrowing rather than assuming 0 DRS value means borrowing.

* Address review comments

Spell fix.

TAS: Improve scheduling performance by caching nodes (#9712)

* TAS: Improve scheduling performance by caching nodes

* Rename AddOrUpdateNode() to SyncNode().

Self-nominate sohankunkerkar as reviewer (#9776)

Optimize ContextWithLog() to allow use testing.TB. (#9780)

Update pkg/workload/workload.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Added comments to better explain the logic of "AdmissionChecksForWorkload" function.

Spell fix.

Tests update.

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Move test for clarity.

connection util update

Test fix.

Update cohort metric name (#9787)

Fix NodeHotSwap for multi-layer TAS topology constraints (#9733)

This fixes two issues with NodeHotSwap replacement in multi-layer topology:

1. Domain Selection (requiredReplacementDomain): When multiple slice
   constraints are configured (e.g., [{rack: 8}, {switch: 4}, {hostname: 2}]),
   the code was using only the outermost constraint to find the replacement
   domain. This could place replacements in the wrong sub-domain.

   Fix: Iterate from innermost to outermost constraint and use the first
   (innermost) broken constraint's domain to confine the search.

2. Slice Size (findReplacementAssignment): After clearing
   PodsetSliceRequiredTopologyConstraints, setting PodSetSliceSize alone
   was a dead write because getSliceSizeWithSinglePodAsDefault() requires
   PodSetSliceRequiredTopology to be set. This caused sliceSize=1, scattering
   replacement pods across hosts and violating hostname grouping constraints.

   Fix: Find the innermost satisfied constraint and set both
   PodSetSliceRequiredTopology and PodSetSliceSize to preserve leaf-level
   grouping.

Added test cases:
- 3-layer topology: validates innermost broken domain selection
- 2-layer topology: validates sliceSize prevents scattered placement

chore: Use slices instead of sort (#9781)

Fix missing replica_role=leader metrics after HA role transition (#9487)

test: use Job instead of JobSet in TAS rank ordering case (#9796)

TAS: improve performance of the addNode function. (#9791)

Use gomega.Eventually(func(g gomega.Gomega) pattern. (#9800)

* Use gomega.Eventually(func(g gomega.Gomega) pattern.

* Use wait.Group.

* Ignore conflict error.

feat(visibility): allow visibility server to use custom kubeconfig path (#9619)

* feat(visibility): allow visibility server to use custom kubeconfig path

* docs(visibility): clarify kubeConfig and kubeConfigPath usage in visibility server

* refactor(visibility): streamline kubeConfig handling in visibility server

* refactor(visibility): simplify kubeConfig path retrieval in visibility server

* refactor(visibility): remove redundant comments regarding kubeConfig in visibility server setup

* test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag

* Revert "test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag"

This reverts commit a4add98a15f4a581dd70d0aa57b87d7059f3ba85.

* feat(visibility): enable visibility server to utilize custom kubeconfig path

* test(visibility): add e2e tests for visibility server using custom kubeconfig with RBAC

* refactor(visibility): replace waitForDeployment with WaitForKueueAvailabilityNoRestartCountCheck in kubeconfig tests

* test(visibility): enhance clarity in kubeconfig test by adding descriptive step

* test(visibility): enhance RBAC tests for visibility server with custom kubeconfig

* fix(visibility): remove unused visibility import and ensure visibility scheme is added in init

* refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access

* Revert "refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access"

This reverts commit c11f57ac5d6c087ce94a7ce20e8c342e4c707b84.

* refactor(visibility): simplify kubeconfig test by removing unused visibility import and updating client usage

* fix(visibility): update cloneControllerRBAC to skip additional roles for SubjectAccessReview permissions

* Fix comments

* chore: remove trailing whitespace in `visibility_kubeconfig_test.go`

* Add TODO for internal server error

* refactor: replace `client.IgnoreAlreadyExists` with `util.MustCreate` for object creation in e2e tests.

* Remove CQ from test

* feat: introduce kubeconfig utility to resolve config and path, and pass the path to the visibility server for authentication and authorization configuration.

* refactor: extract k…
Singularity23x0 added a commit to Singularity23x0/kueue that referenced this pull request Apr 8, 2026
…flavor assigned (kubernetes-sigs#9359)

* Apply admission checks covering all CQ resources to workloads before
flavor assigned.
Adds tests to track the change.

Test setup fix.

Test setup and teardown fix.

Fit removed.

Adds fix with tests (it and unit).

fix incorrect pod placement during node replacement (#9211)

fix: retry kind cluster deletion to work around Docker race condition (#9261)

* fix: retry kind cluster deletion to work around Docker race condition

Add retry logic with exponential backoff to cluster_cleanup in
e2e-common.sh. Under CI (Docker-in-Docker on Linux with high IO
contention), 'kind delete cluster' can fail because Docker's internal
container kill has a hardcoded 2-second timeout that expires before the
container acknowledges the exit event (moby/moby#51028, moby/moby#51845).

Between retries, force-stop any remaining containers using the
io.x-k8s.kind.cluster label so that the next kind delete attempt starts
from a clean state.

Fixes kubernetes-sigs/kueue#8908

* fix: simplify kind cluster cleanup retries

Address review feedback by retrying only kind delete cluster with a shorter exponential backoff (1s initial delay, 5 attempts). Remove manual docker kill/rm cleanup to keep the bash logic simple, and document the upstream Docker issues as the reason for the temporary workaround.

Add scheduler tests for hierarchical cohort lendingLimit (#9136)

Add two test cases to verify lendingLimit behavior when borrowing
resources across hierarchical cohort structures:

- hierarchical cohort respects lending limit when borrowing
- hierarchical cohort allows borrowing up to lending limit

Graduate SanitizePodSets feature gate to GA (#9260)

Set SanitizePodSets to GA with LockToDefault: true in v0.17.
Remove the feature gate check from SanitizePodSet(), the disabled
feature gate test case, and update documentation.

[Refactor] Move all metrics ops to metrics.go in cache.queue (#9295)

* [Refactor] Move all metrics ops to metrics.go in cache.queue

* make names consistent

Graduate LendingLimit feature gate to GA (#9258)

Promote LendingLimit to GA at v0.18 with LockToDefault: true.
Remove all feature gate checks from production code and clean up
test cases that verified behavior when the feature was disabled.

Align the Kueue KEP template with the K8s KEP template (#9276)

Optimize UpdateKueueConfiguration. (#9275)

Enable TAS with ElasticJobsViaWorkloadSlices feature (#8580)

This change enables Topology-Aware Scheduling (TAS) to work correctly
with the ElasticJobsViaWorkloadSlices feature, which allows jobs to
dynamically scale via workload slices.
When ElasticJobsViaWorkloadSlices is enabled and a workload slice is
being replaced, the previous topology assignment is preserved for
existing pods, ensuring pods across slices are found correctly.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix race in RemoveRemoteObjects where remote LWS is not deleted (#9201)

When MultiKueueGC deletes the remote workload before the reconciler
processes the deletion, RemoveRemoteObjects would early-return on
remWl == nil without deleting the remote controller object (e.g., LWS).

Move DeleteRemoteObject before the nil check to ensure the remote
controller object is always deleted regardless of remote workload state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flake in scale-down logic for LeaderWorkerSet (#9135)

* Fix flake in scale-down logic for LeaderWorkerSet

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Add tests to prove the need of UpdatedReplicas check during rolling updates

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

[Refactor] queue.Manager Factory for integ tests (#9224)

Set certificate authority instead of insecure options in dev setup (#9312)

mark MultiKueueAllowInsecureKubeconfig as deprecated in feature gate (#9297)

Temporarily disable the TAS+ElasticWorkloads test (#9317)

Add podSecurityContext and containerSecurityContext to KueueViz Helm … (#9311)

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

Automate adding kind/* labels to cherry-pick PRs #9222 (#9290)

[Refactor] queue.Manager Factory for unit tests (#9321)

Increase the timeout for waiting for the Deployment update to start and check if ObservedGeneration changed. (#9315)

* Increase the timeout for waiting for the Deployment update to start.

* Check if ObservedGeneration changed in Deployment Status.

* Check if generation equal ObservedGeneration.

Upgrade MPI Operator version to v0.8.0 and enable TAS E2E tests (#9330)

* Update MPI Operator version to v0.8.0

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Enable MPIJob TAS E2E rank-ordering tests

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

promote local queue defaulting to ga (#9299)

Align CERTMANAGER configs. (#9332)

doc: Update the minimum MPI Operator version (#9335)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

KEP-8303: MultiKueue Orchestrated Preemption (#8985)

* Add first draft of KEP-8303: MultiKueue Synchronized Preemptions

* Add missing KEP number

* Reword main KEP goal

* Update KEP reviewers

* Expand the KEP content to include more detailed semantics of the proposal

* Remove wrong non-goal

* Add new non-goal

* Expand the beta API proposal with strictness of the gate

* Update the beta API with enum instead of boolean

* Add structure to the values of the proposed annotation

* Update the scheduler explanation section

* Explicitly specify the semantics of `PreemptionGateTimeout`

* Move dynamic timeout default to alternatives

* Update the comparison table between preemption annotations

* Fix leftover mentions of old design

* Finalize the API design: extend Workload API in alpha

* Rename the feature gate

* Update alternatives

* Update the proposal with a new `Condition`

* Update the creation date of the KEP

* Apply suggestions from code review

* Add missing step to the MK controller description

* Add early exit to the MK controller logic

* Rename open/closed to active/inactive

* Fix typo in API definition

* Fix grammar - 'disactivate' -> 'deactivate'

* Add paragraph about setting spec

* Fix typo 'born' -> 'blocked'

* Remove filtering out workloads with reserved quota for simplicity

* Mention having to check both the spec and status of workload

* Disambiguate active preemption gate

* Use `LastTriggeredTime` instead of `Condition`

* Remove dubious advantage of spec/status split

* Update the controller algorithm with early exit

* Rename 'synchronization' to 'orchestration'

* Add 'presence as active' alternative

* Expand the scheduler impact description

* Update ToC

* Add table explaining flavor selection

* Fix typos in the content

* Add more context to the requeueing logic

* Remove paragraph about `cannot-preempt` behavior similarity

* Fix alternatives section nesting

* Apply review comments

* Make `LastTriggeredTime` optional

* Remove confusing step from controller implementation

* Explicitly mention the controller updating the status of preemption gates

* Address review comments

* Add missing comments to proposed API

* Revert back to using a new condition for signaling

* Fix alternative nesting

* Rename active/inactive to open/closed

* Add alternative to place timeout in `MultiKueueConfig`

* Reword condition description comment

* Mention eviction atomicity

* Fix wording on the condition extension alternative

FIX: Drop default podSecurityContext and containerSecurityContext to KueueViz frontend (#9339)

Reduce the TAS performance test results variance (#9238)

* Reduce the TAS performance test results variance

The average admission time reported in TAS performance test is too
unstable:
60 workloads (large-balanced-rack) → 37.1% CV
90 workloads (medium-balanced-rack) → 34.7% CV
120 workloads (medium-preferred-block) → 32.3% CV
180 workloads (medium/small-required/preferred-rack) → ~9% CV
300 workloads (small-required-rack) → 5.3% CV
where CV (Coefficient of Variance) = variance / average.

Specifying thresholds for the admission time now would make the
TAS performance test results flaky.

This commit attempts to reduce the variance down to <10% by increasing
the workloads count and making the Law of Large Numbers work for us.

* Match tas performance test counts with baseline

One difference remaining is that TAS workloads have multiple pods in
them.

All 3 workload sets have different tas constraints to test the
performance impact of all of them.

* Add more workload set combinations

Keep the workload count the same, but test all the combinations of
different workload sizes with all the possible TAS constraints.

Fix ExpectNewWorkloadSlice to retry until workload is found (#9331)

The function was supposed to wait until a new workload appeared,
but it returned immediately after checking the list even if nothing
was found yet. This caused the test to fail randomly when the controller
was slower than expected. Keep retrying until the workload is actually
found, and clear the result before each retry to avoid returning stale data.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Update _index.md (#9351)

Fix feature-gates ConfigMap example.

promote ObjectRetentionPolicy to GA (#9300)

Test cleanup fix.

Included coverage of the "admission with no flavors" case in workload controller.

Included coverage of the "admission with no flavors" case in workload controller.

Import fix.

Test setup correction.

Moved workload admission definitions back into the bodies of the relevant tests.

Adds logging.

Foramtting.

Temporary - increase flaky e2e test verbosity.

e2e mk deployment test update - safeguard against flakyness.

test restructure

LOg message cleanup.

Logs cleanup.

Unnecesary util fiunc cleanup.

Optimized migration script to allow migration of namespaced resources by namespace (#9340)

* Optimized migration script to allow migration of namespaced resources by namespace.

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

---------

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

Automate adding kind/* labels to cherry-pick PRs #9222 (#9362)

* Follow-up

fix: quota double-counting for unchanged podSets in Workload Slices (#9322)

* Fix quota double-counting for unchanged podSets in workload slicing

* Add e2e tests for elastic workloads

* Remove downscale checks as these aren't managed by flavor assignment logic

* fix: integ test and podSet field being immutable (for upscales)

* address comments

* keep empty quota

* update assignment usage comment

Handle NoExecute taint as an unhealthy node (#8964)

* TAS Replace Node On Taints implementation

* refactor node failure controller

* use job instead of jobset

* cleanup

TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaluted (#8685)

* TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaludated

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* decouple E2E test from existing one

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Simplify the number of PodSet detection

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

Extend resource transformation integration tests. (#9356)

[Refactor] Terminate Workloads Sequentially in Integration Test (#9346)

Fix e2e certmanager kustomization missing vars (#9372)

Use v1beta1 as prefered API resource version. (#9367)

MultiKueue + TAS setup script: bump Kueue to 0.16 (#9308)

* MultiKueue + TAS setup script: bump Kueue to 0.16

* Address comments

Bump systeminformation from 5.27.14 to 5.31.1 in /test/e2e/kueueviz (#9373)

Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 5.27.14 to 5.31.1.
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v5.27.14...v5.31.1)

---
updated-dependencies:
- dependency-name: systeminformation
  dependency-version: 5.31.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add common code into raycluster/common.go (#9376)

* Add common code into raycluster/common.go

* Remove ByRayClusterSpec from names

* Update usage of common code

Add Prometheus e2e tests (#9031)

e2e testing: load images into kind worker nodes in parallel #9052 (#9294)

Remove deprecated TASProfileLeastFreeCapacity feature gate (#9298)

* Remove deprecated TASProfileLeastFreeCapacity feature gate

The TASProfileLeastFreeCapacity feature gate was deprecated in v0.11,
superseded by TASProfileMixed which uses LeastFreeCapacity only for
unconstrained requests and BestFit for required/preferred. This removes
the gate, simplifies validation logic, and drops all associated tests.

* add back validation code in case we add more tas profiles

KEP-2724: Add multi-level topology aware scheduling design (#9243)

* KEP-2724: Add multi-level topology aware scheduling design

Add the design for multi-level TAS, which extends two-level
scheduling to support N slice layers across deeper topology
hierarchies (e.g., datacenter → block → rack → host).

* fixup: fix comments

Self-nominate olekzabl as reviewer (#9366)

Optimize checkFlavorForPodSets(). (#9390)

Refactor string literals to common consts in raycluster, pod, job controller reconciler tests (#9393)

Optimize migrate-to-v1beta2.sh to allow downgrade. (#9383)

* Optimize migrate-to-v1beta2.sh to allow downgrade.

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

---------

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

Fix prometheus operator setup in e2e-k8s-main-was target (#9403)

Fix flaky workload retention test after manager restart (#9384)

Adds a controller-readiness barrier after restartManager() to ensure
controllers are processing events before deleting the workload.
Without this, gauge metric assertions passed from stale prometheus
state, allowing the delete to race ahead of controller startup.

using replacements instead of vars (#9239)

* using replacements instead of vars

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* commenting out optional changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* adding certmanager message back

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* removing accidentally committed dependency from project

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* additional formatting

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting fixes

* Revert e2e certmanager kustomization to keep PR focused

* formatting yaml, removing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* remove trailing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Fix hack/tools module path to match directory structure (#9408)

KubeRay: Add RayService controller as top level job (#9102)

* Add RayService controller as top level job

* Update helm chart yaml files

* Use build and update logic for RayService PodSets method

* Fix lint issue

* Update processing-plan.yaml

* Clean up rayservice webhook and multikueue adapter and update tests

* Use hardcode Running message in RayService.Finished

* Remove pod debugging log in e2e test

* Remove rayservice multikueue adapter

* Replace Status.ServiceStatus with Condition check

* Move RayJob/RayService common code to raycluster package

* Remove ByRayClusterSpec from names

* Add rayservice to integration and clean up code

Add example ConfigMap for RayJob autoscaling documentation (#9410)

Include the ray-job-autoscaling-code-sample.yaml ConfigMap in the
autoscaling example section of the RayJob docs (en and zh-CN), along
with kubectl commands to apply it. This mirrors the pattern used in
the non-autoscaling example section.

Bump golangci-lint to v2.10.1 (#9389)

Bump rajatjindal/krew-release-bot from 0.0.47 to 0.0.50 in the all group (#9418)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.47 to 0.0.50
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.47...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.50
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix dev mode e2e setup to skip prometheus config when feature is not selected (#9417)

Fix InsertText test cases in yaml-processor (#9409)

Fix: fix cohortName field for `v1beta2.ClusterQueue` (#9394)

* Fix ClusterQueue builder for v1beta2

* Update references in comments

* Update references in other files - automatic update

docs: document suspend behavior for raycluster/rayservice/rayjob (#8900)

Updated documentation for RayCluster, RayJob, and RayService to clarify that Kueue manages the `suspend` field and overrides it upon admission.

Signed-off-by: Abirdcfly <fp544037857@gmail.com>

Fix stale replica-role in scheduler logs after leader election (#9429)

Add cluster-queue-name and local-queue-name labels for pods coming from admitted workloads (#9348)

* Add queue labels to pod template for jobs

* Add queue labels to pods in existing tests

* Add queue pod labels to docs

* Add feature gate for queue pod labels and validation

* Revert testfile changes to avoid conflicts with pretask

* Add checks for new labels in e2e tests

* Add queue label checks to unit tests

* Fix incorrect table test name

Cleanup RayService controller code (#9430)

* Use 600m cpu for RayService e2e test

* Update suspend related doc for RayService

* Add rayservice to integrations in helm chart values file

* Update RayJob test wrapper

Fix discarded ctx from ctrl.LoggerInto causing missing replica-role in logs (#9445)

Fix missing roleTracker in NonTasUsageReconciler (#9433)

[Refactor] Add context to integ manager factory (#9458)

Fix race in KubeConfigFSWatcher tests by making Start() blocking (#9459)

[Docs][zh]sync tasks/run/deployment (#9442)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/plain_pods (#9443)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/leaderworkerset (#9444)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/statefulset (#9446)

Signed-off-by: xin.li <xin.li@daocloud.io>

upgrade to beta (#9450)

[flake] fix Admission Fair Sharing test (#9471)

[flake] fix Admission Fair Sharing test2 (#9476)

Narrow TAS ResourceFlavor spec immutability to topology-sensitive fields (#9427)

* Restrict the fields that are immutable in ResourceFlavorSpec when using TAS

* Remove nodeTaints from ResourceFlavor immutability check

* Fix formatting failures

* Fix documentation by removing unwanted comments

Fix a flavorFungibility preference bug (#9464)

* Reproduce a flavor fungibility preference bug (https://github.com/kubernetes-sigs/kueue/issues/9462)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Fix a flavorFungibility preference bug where explicit preference specifications are reversed behavior

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

[flake] fix e2e metrics test (#9485)

Asynchronous Inadmissible Workload Requeueing (#9232)

* Asynchronous Inadmissible Workload Requeueing

* address comments

* workqueue

Bump github.com/cloudflare/circl from 1.6.1 to 1.6.3 in /hack/tools (#9491)

Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.6.1 to 1.6.3.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.6.1...v1.6.3)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-version: 1.6.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump rollup from 4.43.0 to 4.59.0 in /cmd/kueueviz/frontend (#9496)

Bumps [rollup](https://github.com/rollup/rollup) from 4.43.0 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.43.0...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Localize topology (#9423)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync multikueue (#9436)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync concepts/_index (#9424)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]Localize elastic_workload (#9425)

Signed-off-by: xin.li <xin.li@daocloud.io>

Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~11h (#9493)

* Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~5.69h

Bump the bucket count from 14 to 15 so the max boundary becomes
20480s (~5.69h).

* Bump to 16 buckets

feat: update metrics for local queue kep to beta (#9370)

[Fair Sharing] Prefer nominal-quota workloads in admission ordering (#9484)

* Give priority to workloads that can fit within quota during fair sharing

* Add e2e tests. Create a feature gate

* Change feature gate to beta and get make verify to work

Add windsonsea and my-git9 to zh-CN docs approver (#9497)

Signed-off-by: xin.li <xin.li@daocloud.io>

Bump actions/setup-go from 6.2.0 to 6.3.0 in the all group (#9509)

Bumps the all group with 1 update: [actions/setup-go](https://github.com/actions/setup-go).

Updates `actions/setup-go` from 6.2.0 to 6.3.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5...4b73464bb391d4059bd26b0524d20df3927bd417)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Add tasks/run/using_hami (#9505)

Signed-off-by: xin.li <xin.li@daocloud.io>

inadmissible workloads - delete already processed logic (#9513)

Update RayService doc due to recent top level job change (#9460)

* Update RayService doc

* Extra version change

* Remove restart instruction

* Revert "Remove restart instruction"

This reverts commit 61594c3064b9e769a0f6c12d0625e24343e7d935.

log inadmissible workload requeue count (#9512)

move certs test (#9521)

[flake] increase batch period for requeue inadmissible test (#9531)

Fix StatefulSet MultiKueue adapter selection by creating workload in STS reconciler (#9344)

[website][zh] translation of YAML annotations for using_hami (#9517)

Signed-off-by: xin.li <xin.li@daocloud.io>

[website][zh]sync run/kubeflow/mpijobs (#9518)

Signed-off-by: xin.li <xin.li@daocloud.io>

Clean up workaround for the MPI Operator installation in E2E (#9546)

Remove the yq workaround that dropped empty rules for aggregated
ClusterRoles. The new MPI Operator version includes the fix.

Ref: https://github.com/kubernetes-sigs/kueue/issues/9375

[flake] fix StatefulSet e2e test when manageJobsWithoutQueueName=true (#9542)

fix perf test flakiness caused by informer relist (#9543)

The Create predicate assumed Create events always mean freshly created,
non-admitted workloads, so it returned false for all of them.  This
breaks during informer relist: if the watch closes and the client
relists, workloads admitted during the gap appear as Create events and
were silently dropped, so Reconcile() was never called and they were
never marked Finished.

Fix the predicate to return true only for admitted, unfinished workloads,
mirroring the Update path.  Add a unit test covering all four cases.

fix(scheduler): relax strict admission attempt expectations in flaky tests (#9554)

* fix(scheduler): relax strict admission attempt expectations in flaky tests

* fix(scheduler): keep scope to scheduler_test for #9526

Add subpage in observability about resource usage monitoring (#9461)

* Add observability webpage about resource usage monitroing

* Refine the site

* Refine the resource monitoring docs

* Add kubectl top result to resource usage docs

Bump the kubernetes group across 3 directories with 11 updates (#9560)

Bumps the kubernetes group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.35.1` | `0.35.2` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.35.1` | `0.35.2` |
| [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) | `0.35.1` | `0.35.2` |
| [k8s.io/component-helpers](https://github.com/kubernetes/component-helpers) | `0.35.1` | `0.35.2` |
| [k8s.io/kubectl](https://github.com/kubernetes/kubectl) | `0.35.1` | `0.35.2` |

Bumps the kubernetes group with 1 update in the /cmd/experimental/kueue-populator directory: [k8s.io/api](https://github.com/kubernetes/api).
Bumps the kubernetes group with 1 update in the /cmd/kueueviz/backend directory: [k8s.io/api](https://github.com/kubernetes/api).

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiextensions-apiserver` from 0.35.1 to 0.35.2
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiserver` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/cli-runtime` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-base` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-base/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-helpers` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-helpers/compare/v0.35.1...v0.35.2)

Updates `k8s.io/kubectl` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/kubectl/compare/v0.35.1...v0.35.2)

Updates `k8s.io/metrics` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/metrics/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/code-generator` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/code-generator/compare/v0.35.1...v0.35.2)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/cli-runtime
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-base
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-helpers
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/kubectl
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/metrics
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/code-generator
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Update main with the latest v0.16.2 (#9574)

update changelog for v15 (#9578)

Bump the all group across 3 directories with 3 updates (#9558)

Bumps the all group with 1 update in the /cmd/kueueviz/frontend directory: [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).
Bumps the all group with 1 update in the /site directory: [autoprefixer](https://github.com/postcss/autoprefixer).
Bumps the all group with 1 update in the /test/e2e/kueueviz directory: [cypress](https://github.com/cypress-io/cypress).

Updates `react-router-dom` from 7.13.0 to 7.13.1
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.13.1/packages/react-router-dom)

Updates `autoprefixer` from 10.4.24 to 10.4.27
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.24...10.4.27)

Updates `cypress` from 15.10.0 to 15.11.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v15.10.0...v15.11.0)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: autoprefixer
  dependency-version: 10.4.27
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: cypress
  dependency-version: 15.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

test(cleanup): treat unknown kind cluster as successful deletion (#9577)

update release template post release 0.15.5/0.16.2 (#9579)

* update release template post release 0.15.5/0.16.2

* clarify

test(multikueue): increase TAS completion wait to VeryLongTimeout (#9572)

test(perf): relax baseline small admission threshold for flake (#9581)

[Fair Sharing] If workload fits in nominalQuota for a flavor, ignore DRS checks during preemption (#9494)

* Preempt in fair sharing if CQ within nominal. Add feature gate. Change reason to InCohortReclamation

Change to beta

Remove refactor

Revert some remnants of refactor. Make test changes clearer

* Add new feature flag

* Address review comments

Set TAS perf test thresholds (#9495)

Prevent duplicate preemption requests across scheduling cycles (#9437)

Use expectations.Store (same pattern as pod controller) to track
workloads with in-flight preemptions. The expectation is set before
calling Evict and rolled back on failure. It is cleared by the workload
controller when the eviction (or deletion) is observed.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump github.com/cert-manager/cert-manager from 1.19.3 to 1.19.4 (#9561)

Bumps [github.com/cert-manager/cert-manager](https://github.com/cert-manager/cert-manager) from 1.19.3 to 1.19.4.
- [Release notes](https://github.com/cert-manager/cert-manager/releases)
- [Changelog](https://github.com/cert-manager/cert-manager/blob/master/RELEASE.md)
- [Commits](https://github.com/cert-manager/cert-manager/compare/v1.19.3...v1.19.4)

---
updated-dependencies:
- dependency-name: github.com/cert-manager/cert-manager
  dependency-version: 1.19.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Refresh the PR template to add KEP label and areas (#9590)

Bump cypress/base from 24.13.1 to 24.14.0 in /hack/testing/cypress (#9557)

Bumps cypress/base from 24.13.1 to 24.14.0.

---
updated-dependencies:
- dependency-name: cypress/base
  dependency-version: 24.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Cleanup unused exported functions. (#9601)

Use NewPodSetReference() instead if PodSetReference(). (#9602)

Added a missing backslash in the  command for kueueviz (#9605)

Signed-off-by: michaelkotelnikov <michael.kot97@gmail.com>

Bump go.opentelemetry.io/otel/sdk from 1.38.0 to 1.40.0 in /hack/tools (#9607)

Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.40.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.40.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.40.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump minimatch in /test/e2e/kueueviz (#9613)

Bumps  and [minimatch](https://github.com/isaacs/minimatch). These dependencies needed to be updated together.

Updates `minimatch` from 7.4.6 to 7.4.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 7.4.9
  dependency-type: indirect
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools (#9614)

* Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools

Bumps [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) from 0.155.3 to 0.157.0.
- [Release notes](https://github.com/gohugoio/hugo/releases)
- [Commits](https://github.com/gohugoio/hugo/compare/v0.155.3...v0.157.0)

---
updated-dependencies:
- dependency-name: github.com/gohugoio/hugo
  dependency-version: 0.157.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Sync hugo version

* Fix after bump.

* Fix seo_schema.html.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix parsing of repo name and org in releasing scripts (#9617)

Fix the appwrapper e2e test (#9620)

test(tas): wait for TrainingRuntime visibility before creating TrainJob (#9571)

The e2e TAS TrainJob tests can flake when attempting to create a
TrainJob immediately after creating its referenced TrainingRuntime.
This happens because the Validation Webhook for TrainJobs relies on
an informer cache to verify the referenced TrainingRuntime exists.

If the Create request hits the webhook before the informer cache
synchronizes the new TrainingRuntime, the webhook rejects the TrainJob
creation with a "not found" error.

This commit introduces a local helper `createTrainJobWithRetry` that
wraps the TrainJob creation in an `Eventually` block, ignoring
transient "not found" or webhook errors until the cache is fully
synchronized and the creation succeeds.

e2e testing: use RequestAndLimit consistently (#9623)

* e2e testing: use RequestAndLimit consistently

* test

* fix

* fix lws

Refactor featuregate setup in tests to reduce possibility of flaky tests conflicts (#9600)

* Refactor feature gate setup in tests to use SetFeatureGateDuringTest for DynamicResourceAllocation, AdmissionFairSharing, and TASBalancedPlacement

* Remove unused feature gate setup in tests for AdmissionFairSharing and TASBalancedPlacement

* sync ##9603

* Remove unused feature gate setups in tests for AdmissionFairSharing and TopologyAwareScheduling

Skip PushOrUpdate for inflight workloads to prevent spurious scheduling cycles (#9598)

When a workload is popped by the scheduler (inflight), a concurrent
PushOrUpdate from the workload controller can push it onto the heap
while the scheduler also places it in the inadmissible set. This
causes an extra scheduling cycle.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump sigs.k8s.io/jobset from 0.11.0 to 0.11.1 (#9562)

Bumps [sigs.k8s.io/jobset](https://github.com/kubernetes-sigs/jobset) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/kubernetes-sigs/jobset/releases)
- [Changelog](https://github.com/kubernetes-sigs/jobset/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/jobset/compare/v0.11.0...v0.11.1)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/jobset
  dependency-version: 0.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Execute all FG validations at once #9355 (#9547)

- ValidateFeatureGates now returns field.ErrorList and collects all errors
- Update TestValidateFeatureGates to assert actual vs expected field errors
- Add test case for multiple FG validation errors returned at once

Add LockToDefault for PropagateBatchJobLabelsToWorkload GA feature gate (#9640)

Update kep.yaml files for v0.17 GA feature promotions (#9642)

* Update KEP 2936 (LocalQueueDefaulting) stage to stable for GA promotion

* Update KEP 1618 (ObjectRetentionPolicies) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, adds stable
milestone, and sets disable-supported to false.

* Update KEP 693 (MultiKueue) kep.yaml for MultiKueueBatchJobWithManagedBy GA

Updates latest-milestone to v0.17, adds stable milestone, and sets
disable-supported to false following MultiKueueBatchJobWithManagedBy
GA promotion.

* Update KEP 1834 (PropagateBatchJobLabelsToWorkload) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, and adds stable
milestone.

Bump rajatjindal/krew-release-bot in /hack/releasing/krew-release-bot (#9556)

Bumps [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot) from v0.0.46 to v0.0.50.
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.46...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: v0.0.50
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Use List to verify LWS state in reconciler tests (#9654)

* Use List to verify LWS state in reconciler tests

* Fix gofmt and gci formatting

Bump rajatjindal/krew-release-bot from 0.0.50 to 0.0.51 in the all group (#9648)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.50 to 0.0.51
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.50...v0.0.51)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.51
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add E2E test suite for MultiKueue with TAS (#9396)

* Add TAS asymmetric-quota tests to multikueue E2E suite

Add two new test cases to the existing multikueue TAS Describe
block in test/e2e/multikueue/tas_test.go, using asymmetric
worker quotas (worker1=2CPU, worker2=1CPU) to enable
deterministic routing assertions:

- Preferred topology routing: 1500m CPU job routes to worker1
- Required topology: 500m CPU job admitted on either worker

Extract waitForTopologyAssignment and
waitForDelayedTopologyRequestReady helpers to reduce
duplication across existing and new tests. Use
MakeDefaultOneLevelTopology and batchv1.JobNameLabel
for consistency.

* fix: hoist managerWl outside Eventually in waitForDelayedTopologyRequestReady

generalize MustCreateWithRetry and apply (#9653)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Fix LendingLimit feature-state version tag in cluster_queue.md (#9643)

The LendingLimit feature was promoted to GA in v0.17, not v0.18.
Update the feature-state version tag to reflect the correct version.

Multikueue dev setup for E2E test cluster: extend SA token expiration time to 7d (#9540)

* Set SA expiration time to 7d for e2e dev mode

* update worker-cluster.kind.yaml

* update worker-cluster.kind.yaml

* Revert "Merge branch 'cleanup/mk-dev-setup-sa-token-exp-e2e' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp-e2e"

This reverts commit e5b959ed01486ee051b64db134e38c3e2a57aea3, reversing
changes made to 33a4149b0f6c786273e5ccaa5d8ae23df6d37cff.

Add wayve.ai as an adopter (#9663)

* Add wayve.ai as an adopter

* Improved description

* Fix syntax issue

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig (#9604)

* Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* Adding messages pinpointing failures alogn failfast

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting log

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* untangling code

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Update RayService E2E test to check http endpoint inside the RayService (#9660)

* Update RayService E2E test to check http endpoint inside the RayService

* Use system generated port like 0:remotePort

Forcefully remove stuck pods in the failure recovery controller (#9651)

* Forcefully remove stuck pods in the failure recovery controller

* Add e2e test for `FailureRecoveryPolicy`

* Exclude buffer from the termination timeout

* Add e2e test for `FailureRecoveryPolicy` during foreground deletion

* Code review fixes

* Update the KEP with the new failure recovery logic

* Rename 'terminate' to 'delete'

* Fix e2e test

* Check the failure recovery condition to filter out more executions

* Add missing `gomega.Succeed()`

* Fix import formatting

* Fix e2e test timeouts

* Mention condition check in KEP

* Wait longer for job to be admitted in e2e test

* Use `ContainsFunc` in Pod utils

* Wrap the e2e tests with ginkgo.By

* Shorten the pod grace termination period

* Add `ginkgo.By` steps to `BeforeEach` and `AfterEach`

[KEP] Add a mechanism to consider preemption cost when finding preemption candidates (#8551)

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* priority-boost

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

Update KEP-6757 history to include changes after foreground propagated deletion fix (#9675)

* Mention the annotation name change in the KEP history

* Mention which versions use which annotation name

* Mention which versions retain the old behaviour

Small clarifications in scheduling code (#9674)

Fix inadmissible workload stuck after priority update (#9661)

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Watch workload deletions to trigger LWS reconciliation (#9631)

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Refactor of check filtering to reduce code duplication.

Test refactor.

Fix typo in README: 'Build-in' → 'Built-in' (#9683)

* Fix typo in README: 'Build-in' → 'Built-in'

* docs: fix abbreviation formatting: 'eg.' → 'e.g.'

TAS: support ResourceTransformations (#8963)

* Create integration test.

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

* TAS: support ResourceTransformations

---------

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

Fix shellcheck SC2086 ignore (#9646)

* make test-e2e not parsing GINKGO_ARGS properly #9477

* Fix shellcheck SC2086 ignore #9477

Promote HierarchicalCohorts to GA (#9618)

* Promote HierarchicalCohorts to GA

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Remove deprecated API references

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Fix generateName for StatefulSets by including UID in workload name (#9091)

* Fix generateName for StatefulSets by including UID in workload name

* Support StatefulSet workloads created without UID in name

* Propagate non-NotFound errors in findWorkloadName

feat: add multi-layer topology constraints for TAS (#9506)

* KEP update to reflect the latest impl.

* feat: add multi-layer topology constraints for TAS

Introduce the TASMultiLayerTopology feature gate (alpha) to support
up to 3 hierarchical slice layers in topology-aware scheduling.

- Add `PodsetSliceRequiredTopologyConstraints` field to
  `PodSetTopologyRequest` and the corresponding pod annotation
- Extend TAS flavor snapshot to handle multi-layer placement
- Add validation for the new field (mutual exclusivity with
  existing single-layer fields, layer ordering, size divisibility)
- Add v1beta1 <-> v1beta2 conversion support
- Add integration tests for multi-layer scheduling

* make generate && make verify

* fixup: address comments

Bump the all group across 1 directory with 3 updates (#9703)

Bumps the all group with 2 updates in the /cmd/kueueviz/frontend directory: [@mui/icons-material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material) and [serve](https://github.com/vercel/serve).

Updates `@mui/icons-material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-icons-material)

Updates `@mui/material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-material)

Updates `serve` from 14.2.5 to 14.2.6
- [Release notes](https://github.com/vercel/serve/releases)
- [Changelog](https://github.com/vercel/serve/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vercel/serve/compare/v14.2.5...v14.2.6)

---
updated-dependencies:
- dependency-name: "@mui/icons-material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: "@mui/material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: serve
  dependency-version: 14.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gin-gonic/gin in /cmd/kueueviz/backend (#9707)

Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/gin-gonic/gin/releases)
- [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gin-gonic/gin/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: github.com/gin-gonic/gin
  dependency-version: 1.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/kueue from 0.16.1 to 0.16.2 in /cmd/kueueviz/backend (#9709)

Bumps [sigs.k8s.io/kueue](https://github.com/kubernetes-sigs/kueue) from 0.16.1 to 0.16.2.
- [Release notes](https://github.com/kubernetes-sigs/kueue/releases)
- [Changelog](https://github.com/kubernetes-sigs/kueue/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/kueue/compare/v0.16.1...v0.16.2)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/kueue
  dependency-version: 0.16.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3 (#9704)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime in /cmd/kueueviz/backend (#9708)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Remove duplicates of using ContextWithLog(t). (#9717)

KEP: add kueueviz auth (#8971)

* KEP: add kueueviz auth

Signed-off-by: samzong <samzong.lu@gmail.com>

* update KEP details

Signed-off-by: samzong <samzong.lu@gmail.com>

* KEP-5993: adopt Alpha-first graduation and refine design

Signed-off-by: samzong <samzong.lu@gmail.com>

* remove featuregateway in design

Signed-off-by: samzong <samzong.lu@gmail.com>

---------

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: add token-based authentication for backend and frontend (#9684)

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: fetch Cohort CRD directly, instead of deriving from ClusterQueues (#9719)

Signed-off-by: samzong <samzong.lu@gmail.com>

Propagate contextual logger to workload.Info.Update (#9723)

Add logr.Logger parameter to workload.Info.Update() so callers can
pass a contextualized logger for V(5) debug logging. This keeps
workload.Info as a pure data struct without embedding runtime state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flaky test for sticky workload (#9718)

Add KEP to support `QuotaCheckStrategy` (#8396)

This commit details the changes required to support a new
configuration field, `QuotaCheckStrategy`.

Self-nominate kshalot as reviewer (#9692)

Add KEP-7066: Custom metadata labels for Kueue metrics (#9225)

* Add KEP-7066: Custom metadata labels for Kueue metrics

* Refine KEP-7066 design details and validation rules

* Add explicit source key mapping to KEP-7066 configuration

* Expand KEP-7066 to cover Cohort metrics

* Refine KEP-7066 structure and validation rules

Skip equivalent inadmissible workloads in BestEffortFIFO scheduling (#9698)

When the scheduler evaluates a workload and gets NoFit from FlavorAssigner,
bulk-move all heap workloads with the same scheduling hash to inadmissible.
This reduces scheduling cost from O(workloads) to O(equivalence classes),
allowing the scheduler to reach schedulable workloads deep in the queue.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

add handler in leader workset reconiler (#9740)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Bump ShortConsistentDuration. (#9749)

Provide a metric for cohort nominal quota (#9132)

* Add CohortNominalQuota metric

* Rework after code review

Propagate contextual logger to scheduling hash computation via UpdateSchedulingHash (#9731)

Add UpdateSchedulingHash(log) method to workload.Info so production
callers can compute the scheduling hash with a contextual logger
after NewInfo construction. NewInfo signature stays unchanged.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Cleanup Consistently. (#9756)

Scheduling: reduce the maximal backoff time from 100ms to 10ms (#9697)

* Reduce the max backoff time from 100ms to 10ms

* simplify the code to drop configurable maxBackoff

* add comments to the consts

[MinimalKueue] Add HeapProfile(). (#9759)

Multikueue dev setup: extend SA token expiration time (#9516)

* Update SA setup for MultiKueue dev setup and related doc

* Set SA expiration time to 7d for e2e dev mode

* Set SA expiration time to 7d for e2e dev mode

* Revert "Set SA expiration time to 7d for e2e dev mode"

This reverts commit e9cba59eaa6ead5488d80287f3e40078efaa4cfa.

* Undo Merge branch 'cleanup/mk-dev-setup-sa-token-exp' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp

feat: enhance error message for multi-layer topology constraints (#9739)

* feat: enhance error message for multi-layer topology constraints

Add detailed noFit messages for multi-layer TAS topology that report
per-level slice fit counts (e.g., "1/2 slice(s) fit on level block;
3/4 slice(s) fit on rack; 6/8 slice(s) fit on hostname").

* fixup: add UT for enough hostname slices but insufficient rack slices

kueueviz: support hierarchical cohorts with tree view (#9725)

Signed-off-by: samzong <samzong.lu@gmail.com>

feat(kueueviz/backend): drop polling and switch to informers (#8707)

Signed-off-by: Josef Kolář <josef.kolar@firma.seznam.cz>

Add E2E_SKIP_REINSTALL flag that working in E2E_MODE=dev mode, Add KUEUE_DEPLOYMENT_NAME const for controller manager deployment string (#9753)

Optimize gomega.Eventually() for populator. (#9777)

Decouple borrowing state from DRS ratio value (#9738)

* Add IsBorrowing function in DRS to be explicit about borrowing rather than assuming 0 DRS value means borrowing.

* Address review comments

Spell fix.

TAS: Improve scheduling performance by caching nodes (#9712)

* TAS: Improve scheduling performance by caching nodes

* Rename AddOrUpdateNode() to SyncNode().

Self-nominate sohankunkerkar as reviewer (#9776)

Optimize ContextWithLog() to allow use testing.TB. (#9780)

Update pkg/workload/workload.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Added comments to better explain the logic of "AdmissionChecksForWorkload" function.

Spell fix.

Tests update.

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Move test for clarity.

connection util update

Test fix.

Update cohort metric name (#9787)

Fix NodeHotSwap for multi-layer TAS topology constraints (#9733)

This fixes two issues with NodeHotSwap replacement in multi-layer topology:

1. Domain Selection (requiredReplacementDomain): When multiple slice
   constraints are configured (e.g., [{rack: 8}, {switch: 4}, {hostname: 2}]),
   the code was using only the outermost constraint to find the replacement
   domain. This could place replacements in the wrong sub-domain.

   Fix: Iterate from innermost to outermost constraint and use the first
   (innermost) broken constraint's domain to confine the search.

2. Slice Size (findReplacementAssignment): After clearing
   PodsetSliceRequiredTopologyConstraints, setting PodSetSliceSize alone
   was a dead write because getSliceSizeWithSinglePodAsDefault() requires
   PodSetSliceRequiredTopology to be set. This caused sliceSize=1, scattering
   replacement pods across hosts and violating hostname grouping constraints.

   Fix: Find the innermost satisfied constraint and set both
   PodSetSliceRequiredTopology and PodSetSliceSize to preserve leaf-level
   grouping.

Added test cases:
- 3-layer topology: validates innermost broken domain selection
- 2-layer topology: validates sliceSize prevents scattered placement

chore: Use slices instead of sort (#9781)

Fix missing replica_role=leader metrics after HA role transition (#9487)

test: use Job instead of JobSet in TAS rank ordering case (#9796)

TAS: improve performance of the addNode function. (#9791)

Use gomega.Eventually(func(g gomega.Gomega) pattern. (#9800)

* Use gomega.Eventually(func(g gomega.Gomega) pattern.

* Use wait.Group.

* Ignore conflict error.

feat(visibility): allow visibility server to use custom kubeconfig path (#9619)

* feat(visibility): allow visibility server to use custom kubeconfig path

* docs(visibility): clarify kubeConfig and kubeConfigPath usage in visibility server

* refactor(visibility): streamline kubeConfig handling in visibility server

* refactor(visibility): simplify kubeConfig path retrieval in visibility server

* refactor(visibility): remove redundant comments regarding kubeConfig in visibility server setup

* test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag

* Revert "test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag"

This reverts commit a4add98a15f4a581dd70d0aa57b87d7059f3ba85.

* feat(visibility): enable visibility server to utilize custom kubeconfig path

* test(visibility): add e2e tests for visibility server using custom kubeconfig with RBAC

* refactor(visibility): replace waitForDeployment with WaitForKueueAvailabilityNoRestartCountCheck in kubeconfig tests

* test(visibility): enhance clarity in kubeconfig test by adding descriptive step

* test(visibility): enhance RBAC tests for visibility server with custom kubeconfig

* fix(visibility): remove unused visibility import and ensure visibility scheme is added in init

* refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access

* Revert "refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access"

This reverts commit c11f57ac5d6c087ce94a7ce20e8c342e4c707b84.

* refactor(visibility): simplify kubeconfig test by removing unused visibility import and updating client usage

* fix(visibility): update cloneControllerRBAC to skip additional roles for SubjectAccessReview permissions

* Fix comments

* chore: remove trailing whitespace in `visibility_kubeconfig_test.go`

* Add TODO for internal server error

* refactor: replace `client.IgnoreAlreadyExists` with `util.MustCreate` for object creation in e2e tests.

* Remove CQ from test

* feat: introduce kubeconfig utility to resolve config and path, and pass the path to the visibility server for authentication and authorization configuration.

* refactor: extract k…
k8s-ci-robot pushed a commit that referenced this pull request Apr 8, 2026
…flavor assigned (#9359) (#10331)

* Apply admission checks covering all CQ resources to workloads before
flavor assigned.
Adds tests to track the change.

Test setup fix.

Test setup and teardown fix.

Fit removed.

Adds fix with tests (it and unit).

fix incorrect pod placement during node replacement (#9211)

fix: retry kind cluster deletion to work around Docker race condition (#9261)

* fix: retry kind cluster deletion to work around Docker race condition

Add retry logic with exponential backoff to cluster_cleanup in
e2e-common.sh. Under CI (Docker-in-Docker on Linux with high IO
contention), 'kind delete cluster' can fail because Docker's internal
container kill has a hardcoded 2-second timeout that expires before the
container acknowledges the exit event (moby/moby#51028, moby/moby#51845).

Between retries, force-stop any remaining containers using the
io.x-k8s.kind.cluster label so that the next kind delete attempt starts
from a clean state.

Fixes kubernetes-sigs/kueue#8908

* fix: simplify kind cluster cleanup retries

Address review feedback by retrying only kind delete cluster with a shorter exponential backoff (1s initial delay, 5 attempts). Remove manual docker kill/rm cleanup to keep the bash logic simple, and document the upstream Docker issues as the reason for the temporary workaround.

Add scheduler tests for hierarchical cohort lendingLimit (#9136)

Add two test cases to verify lendingLimit behavior when borrowing
resources across hierarchical cohort structures:

- hierarchical cohort respects lending limit when borrowing
- hierarchical cohort allows borrowing up to lending limit

Graduate SanitizePodSets feature gate to GA (#9260)

Set SanitizePodSets to GA with LockToDefault: true in v0.17.
Remove the feature gate check from SanitizePodSet(), the disabled
feature gate test case, and update documentation.

[Refactor] Move all metrics ops to metrics.go in cache.queue (#9295)

* [Refactor] Move all metrics ops to metrics.go in cache.queue

* make names consistent

Graduate LendingLimit feature gate to GA (#9258)

Promote LendingLimit to GA at v0.18 with LockToDefault: true.
Remove all feature gate checks from production code and clean up
test cases that verified behavior when the feature was disabled.

Align the Kueue KEP template with the K8s KEP template (#9276)

Optimize UpdateKueueConfiguration. (#9275)

Enable TAS with ElasticJobsViaWorkloadSlices feature (#8580)

This change enables Topology-Aware Scheduling (TAS) to work correctly
with the ElasticJobsViaWorkloadSlices feature, which allows jobs to
dynamically scale via workload slices.
When ElasticJobsViaWorkloadSlices is enabled and a workload slice is
being replaced, the previous topology assignment is preserved for
existing pods, ensuring pods across slices are found correctly.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix race in RemoveRemoteObjects where remote LWS is not deleted (#9201)

When MultiKueueGC deletes the remote workload before the reconciler
processes the deletion, RemoveRemoteObjects would early-return on
remWl == nil without deleting the remote controller object (e.g., LWS).

Move DeleteRemoteObject before the nil check to ensure the remote
controller object is always deleted regardless of remote workload state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flake in scale-down logic for LeaderWorkerSet (#9135)

* Fix flake in scale-down logic for LeaderWorkerSet

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Add tests to prove the need of UpdatedReplicas check during rolling updates

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

[Refactor] queue.Manager Factory for integ tests (#9224)

Set certificate authority instead of insecure options in dev setup (#9312)

mark MultiKueueAllowInsecureKubeconfig as deprecated in feature gate (#9297)

Temporarily disable the TAS+ElasticWorkloads test (#9317)

Add podSecurityContext and containerSecurityContext to KueueViz Helm … (#9311)

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

Automate adding kind/* labels to cherry-pick PRs #9222 (#9290)

[Refactor] queue.Manager Factory for unit tests (#9321)

Increase the timeout for waiting for the Deployment update to start and check if ObservedGeneration changed. (#9315)

* Increase the timeout for waiting for the Deployment update to start.

* Check if ObservedGeneration changed in Deployment Status.

* Check if generation equal ObservedGeneration.

Upgrade MPI Operator version to v0.8.0 and enable TAS E2E tests (#9330)

* Update MPI Operator version to v0.8.0

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Enable MPIJob TAS E2E rank-ordering tests

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

promote local queue defaulting to ga (#9299)

Align CERTMANAGER configs. (#9332)

doc: Update the minimum MPI Operator version (#9335)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

KEP-8303: MultiKueue Orchestrated Preemption (#8985)

* Add first draft of KEP-8303: MultiKueue Synchronized Preemptions

* Add missing KEP number

* Reword main KEP goal

* Update KEP reviewers

* Expand the KEP content to include more detailed semantics of the proposal

* Remove wrong non-goal

* Add new non-goal

* Expand the beta API proposal with strictness of the gate

* Update the beta API with enum instead of boolean

* Add structure to the values of the proposed annotation

* Update the scheduler explanation section

* Explicitly specify the semantics of `PreemptionGateTimeout`

* Move dynamic timeout default to alternatives

* Update the comparison table between preemption annotations

* Fix leftover mentions of old design

* Finalize the API design: extend Workload API in alpha

* Rename the feature gate

* Update alternatives

* Update the proposal with a new `Condition`

* Update the creation date of the KEP

* Apply suggestions from code review

* Add missing step to the MK controller description

* Add early exit to the MK controller logic

* Rename open/closed to active/inactive

* Fix typo in API definition

* Fix grammar - 'disactivate' -> 'deactivate'

* Add paragraph about setting spec

* Fix typo 'born' -> 'blocked'

* Remove filtering out workloads with reserved quota for simplicity

* Mention having to check both the spec and status of workload

* Disambiguate active preemption gate

* Use `LastTriggeredTime` instead of `Condition`

* Remove dubious advantage of spec/status split

* Update the controller algorithm with early exit

* Rename 'synchronization' to 'orchestration'

* Add 'presence as active' alternative

* Expand the scheduler impact description

* Update ToC

* Add table explaining flavor selection

* Fix typos in the content

* Add more context to the requeueing logic

* Remove paragraph about `cannot-preempt` behavior similarity

* Fix alternatives section nesting

* Apply review comments

* Make `LastTriggeredTime` optional

* Remove confusing step from controller implementation

* Explicitly mention the controller updating the status of preemption gates

* Address review comments

* Add missing comments to proposed API

* Revert back to using a new condition for signaling

* Fix alternative nesting

* Rename active/inactive to open/closed

* Add alternative to place timeout in `MultiKueueConfig`

* Reword condition description comment

* Mention eviction atomicity

* Fix wording on the condition extension alternative

FIX: Drop default podSecurityContext and containerSecurityContext to KueueViz frontend (#9339)

Reduce the TAS performance test results variance (#9238)

* Reduce the TAS performance test results variance

The average admission time reported in TAS performance test is too
unstable:
60 workloads (large-balanced-rack) → 37.1% CV
90 workloads (medium-balanced-rack) → 34.7% CV
120 workloads (medium-preferred-block) → 32.3% CV
180 workloads (medium/small-required/preferred-rack) → ~9% CV
300 workloads (small-required-rack) → 5.3% CV
where CV (Coefficient of Variance) = variance / average.

Specifying thresholds for the admission time now would make the
TAS performance test results flaky.

This commit attempts to reduce the variance down to <10% by increasing
the workloads count and making the Law of Large Numbers work for us.

* Match tas performance test counts with baseline

One difference remaining is that TAS workloads have multiple pods in
them.

All 3 workload sets have different tas constraints to test the
performance impact of all of them.

* Add more workload set combinations

Keep the workload count the same, but test all the combinations of
different workload sizes with all the possible TAS constraints.

Fix ExpectNewWorkloadSlice to retry until workload is found (#9331)

The function was supposed to wait until a new workload appeared,
but it returned immediately after checking the list even if nothing
was found yet. This caused the test to fail randomly when the controller
was slower than expected. Keep retrying until the workload is actually
found, and clear the result before each retry to avoid returning stale data.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Update _index.md (#9351)

Fix feature-gates ConfigMap example.

promote ObjectRetentionPolicy to GA (#9300)

Test cleanup fix.

Included coverage of the "admission with no flavors" case in workload controller.

Included coverage of the "admission with no flavors" case in workload controller.

Import fix.

Test setup correction.

Moved workload admission definitions back into the bodies of the relevant tests.

Adds logging.

Foramtting.

Temporary - increase flaky e2e test verbosity.

e2e mk deployment test update - safeguard against flakyness.

test restructure

LOg message cleanup.

Logs cleanup.

Unnecesary util fiunc cleanup.

Optimized migration script to allow migration of namespaced resources by namespace (#9340)

* Optimized migration script to allow migration of namespaced resources by namespace.

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

---------

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

Automate adding kind/* labels to cherry-pick PRs #9222 (#9362)

* Follow-up

fix: quota double-counting for unchanged podSets in Workload Slices (#9322)

* Fix quota double-counting for unchanged podSets in workload slicing

* Add e2e tests for elastic workloads

* Remove downscale checks as these aren't managed by flavor assignment logic

* fix: integ test and podSet field being immutable (for upscales)

* address comments

* keep empty quota

* update assignment usage comment

Handle NoExecute taint as an unhealthy node (#8964)

* TAS Replace Node On Taints implementation

* refactor node failure controller

* use job instead of jobset

* cleanup

TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaluted (#8685)

* TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaludated

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* decouple E2E test from existing one

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Simplify the number of PodSet detection

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

Extend resource transformation integration tests. (#9356)

[Refactor] Terminate Workloads Sequentially in Integration Test (#9346)

Fix e2e certmanager kustomization missing vars (#9372)

Use v1beta1 as prefered API resource version. (#9367)

MultiKueue + TAS setup script: bump Kueue to 0.16 (#9308)

* MultiKueue + TAS setup script: bump Kueue to 0.16

* Address comments

Bump systeminformation from 5.27.14 to 5.31.1 in /test/e2e/kueueviz (#9373)

Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 5.27.14 to 5.31.1.
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v5.27.14...v5.31.1)

---
updated-dependencies:
- dependency-name: systeminformation
  dependency-version: 5.31.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add common code into raycluster/common.go (#9376)

* Add common code into raycluster/common.go

* Remove ByRayClusterSpec from names

* Update usage of common code

Add Prometheus e2e tests (#9031)

e2e testing: load images into kind worker nodes in parallel #9052 (#9294)

Remove deprecated TASProfileLeastFreeCapacity feature gate (#9298)

* Remove deprecated TASProfileLeastFreeCapacity feature gate

The TASProfileLeastFreeCapacity feature gate was deprecated in v0.11,
superseded by TASProfileMixed which uses LeastFreeCapacity only for
unconstrained requests and BestFit for required/preferred. This removes
the gate, simplifies validation logic, and drops all associated tests.

* add back validation code in case we add more tas profiles

KEP-2724: Add multi-level topology aware scheduling design (#9243)

* KEP-2724: Add multi-level topology aware scheduling design

Add the design for multi-level TAS, which extends two-level
scheduling to support N slice layers across deeper topology
hierarchies (e.g., datacenter → block → rack → host).

* fixup: fix comments

Self-nominate olekzabl as reviewer (#9366)

Optimize checkFlavorForPodSets(). (#9390)

Refactor string literals to common consts in raycluster, pod, job controller reconciler tests (#9393)

Optimize migrate-to-v1beta2.sh to allow downgrade. (#9383)

* Optimize migrate-to-v1beta2.sh to allow downgrade.

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

---------

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

Fix prometheus operator setup in e2e-k8s-main-was target (#9403)

Fix flaky workload retention test after manager restart (#9384)

Adds a controller-readiness barrier after restartManager() to ensure
controllers are processing events before deleting the workload.
Without this, gauge metric assertions passed from stale prometheus
state, allowing the delete to race ahead of controller startup.

using replacements instead of vars (#9239)

* using replacements instead of vars

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* commenting out optional changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* adding certmanager message back

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* removing accidentally committed dependency from project

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* additional formatting

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting fixes

* Revert e2e certmanager kustomization to keep PR focused

* formatting yaml, removing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* remove trailing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Fix hack/tools module path to match directory structure (#9408)

KubeRay: Add RayService controller as top level job (#9102)

* Add RayService controller as top level job

* Update helm chart yaml files

* Use build and update logic for RayService PodSets method

* Fix lint issue

* Update processing-plan.yaml

* Clean up rayservice webhook and multikueue adapter and update tests

* Use hardcode Running message in RayService.Finished

* Remove pod debugging log in e2e test

* Remove rayservice multikueue adapter

* Replace Status.ServiceStatus with Condition check

* Move RayJob/RayService common code to raycluster package

* Remove ByRayClusterSpec from names

* Add rayservice to integration and clean up code

Add example ConfigMap for RayJob autoscaling documentation (#9410)

Include the ray-job-autoscaling-code-sample.yaml ConfigMap in the
autoscaling example section of the RayJob docs (en and zh-CN), along
with kubectl commands to apply it. This mirrors the pattern used in
the non-autoscaling example section.

Bump golangci-lint to v2.10.1 (#9389)

Bump rajatjindal/krew-release-bot from 0.0.47 to 0.0.50 in the all group (#9418)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.47 to 0.0.50
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.47...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.50
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix dev mode e2e setup to skip prometheus config when feature is not selected (#9417)

Fix InsertText test cases in yaml-processor (#9409)

Fix: fix cohortName field for `v1beta2.ClusterQueue` (#9394)

* Fix ClusterQueue builder for v1beta2

* Update references in comments

* Update references in other files - automatic update

docs: document suspend behavior for raycluster/rayservice/rayjob (#8900)

Updated documentation for RayCluster, RayJob, and RayService to clarify that Kueue manages the `suspend` field and overrides it upon admission.

Signed-off-by: Abirdcfly <fp544037857@gmail.com>

Fix stale replica-role in scheduler logs after leader election (#9429)

Add cluster-queue-name and local-queue-name labels for pods coming from admitted workloads (#9348)

* Add queue labels to pod template for jobs

* Add queue labels to pods in existing tests

* Add queue pod labels to docs

* Add feature gate for queue pod labels and validation

* Revert testfile changes to avoid conflicts with pretask

* Add checks for new labels in e2e tests

* Add queue label checks to unit tests

* Fix incorrect table test name

Cleanup RayService controller code (#9430)

* Use 600m cpu for RayService e2e test

* Update suspend related doc for RayService

* Add rayservice to integrations in helm chart values file

* Update RayJob test wrapper

Fix discarded ctx from ctrl.LoggerInto causing missing replica-role in logs (#9445)

Fix missing roleTracker in NonTasUsageReconciler (#9433)

[Refactor] Add context to integ manager factory (#9458)

Fix race in KubeConfigFSWatcher tests by making Start() blocking (#9459)

[Docs][zh]sync tasks/run/deployment (#9442)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/plain_pods (#9443)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/leaderworkerset (#9444)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/statefulset (#9446)

Signed-off-by: xin.li <xin.li@daocloud.io>

upgrade to beta (#9450)

[flake] fix Admission Fair Sharing test (#9471)

[flake] fix Admission Fair Sharing test2 (#9476)

Narrow TAS ResourceFlavor spec immutability to topology-sensitive fields (#9427)

* Restrict the fields that are immutable in ResourceFlavorSpec when using TAS

* Remove nodeTaints from ResourceFlavor immutability check

* Fix formatting failures

* Fix documentation by removing unwanted comments

Fix a flavorFungibility preference bug (#9464)

* Reproduce a flavor fungibility preference bug (https://github.com/kubernetes-sigs/kueue/issues/9462)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Fix a flavorFungibility preference bug where explicit preference specifications are reversed behavior

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

[flake] fix e2e metrics test (#9485)

Asynchronous Inadmissible Workload Requeueing (#9232)

* Asynchronous Inadmissible Workload Requeueing

* address comments

* workqueue

Bump github.com/cloudflare/circl from 1.6.1 to 1.6.3 in /hack/tools (#9491)

Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.6.1 to 1.6.3.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.6.1...v1.6.3)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-version: 1.6.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump rollup from 4.43.0 to 4.59.0 in /cmd/kueueviz/frontend (#9496)

Bumps [rollup](https://github.com/rollup/rollup) from 4.43.0 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.43.0...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Localize topology (#9423)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync multikueue (#9436)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync concepts/_index (#9424)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]Localize elastic_workload (#9425)

Signed-off-by: xin.li <xin.li@daocloud.io>

Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~11h (#9493)

* Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~5.69h

Bump the bucket count from 14 to 15 so the max boundary becomes
20480s (~5.69h).

* Bump to 16 buckets

feat: update metrics for local queue kep to beta (#9370)

[Fair Sharing] Prefer nominal-quota workloads in admission ordering (#9484)

* Give priority to workloads that can fit within quota during fair sharing

* Add e2e tests. Create a feature gate

* Change feature gate to beta and get make verify to work

Add windsonsea and my-git9 to zh-CN docs approver (#9497)

Signed-off-by: xin.li <xin.li@daocloud.io>

Bump actions/setup-go from 6.2.0 to 6.3.0 in the all group (#9509)

Bumps the all group with 1 update: [actions/setup-go](https://github.com/actions/setup-go).

Updates `actions/setup-go` from 6.2.0 to 6.3.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5...4b73464bb391d4059bd26b0524d20df3927bd417)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Add tasks/run/using_hami (#9505)

Signed-off-by: xin.li <xin.li@daocloud.io>

inadmissible workloads - delete already processed logic (#9513)

Update RayService doc due to recent top level job change (#9460)

* Update RayService doc

* Extra version change

* Remove restart instruction

* Revert "Remove restart instruction"

This reverts commit 61594c3064b9e769a0f6c12d0625e24343e7d935.

log inadmissible workload requeue count (#9512)

move certs test (#9521)

[flake] increase batch period for requeue inadmissible test (#9531)

Fix StatefulSet MultiKueue adapter selection by creating workload in STS reconciler (#9344)

[website][zh] translation of YAML annotations for using_hami (#9517)

Signed-off-by: xin.li <xin.li@daocloud.io>

[website][zh]sync run/kubeflow/mpijobs (#9518)

Signed-off-by: xin.li <xin.li@daocloud.io>

Clean up workaround for the MPI Operator installation in E2E (#9546)

Remove the yq workaround that dropped empty rules for aggregated
ClusterRoles. The new MPI Operator version includes the fix.

Ref: https://github.com/kubernetes-sigs/kueue/issues/9375

[flake] fix StatefulSet e2e test when manageJobsWithoutQueueName=true (#9542)

fix perf test flakiness caused by informer relist (#9543)

The Create predicate assumed Create events always mean freshly created,
non-admitted workloads, so it returned false for all of them.  This
breaks during informer relist: if the watch closes and the client
relists, workloads admitted during the gap appear as Create events and
were silently dropped, so Reconcile() was never called and they were
never marked Finished.

Fix the predicate to return true only for admitted, unfinished workloads,
mirroring the Update path.  Add a unit test covering all four cases.

fix(scheduler): relax strict admission attempt expectations in flaky tests (#9554)

* fix(scheduler): relax strict admission attempt expectations in flaky tests

* fix(scheduler): keep scope to scheduler_test for #9526

Add subpage in observability about resource usage monitoring (#9461)

* Add observability webpage about resource usage monitroing

* Refine the site

* Refine the resource monitoring docs

* Add kubectl top result to resource usage docs

Bump the kubernetes group across 3 directories with 11 updates (#9560)

Bumps the kubernetes group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.35.1` | `0.35.2` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.35.1` | `0.35.2` |
| [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) | `0.35.1` | `0.35.2` |
| [k8s.io/component-helpers](https://github.com/kubernetes/component-helpers) | `0.35.1` | `0.35.2` |
| [k8s.io/kubectl](https://github.com/kubernetes/kubectl) | `0.35.1` | `0.35.2` |

Bumps the kubernetes group with 1 update in the /cmd/experimental/kueue-populator directory: [k8s.io/api](https://github.com/kubernetes/api).
Bumps the kubernetes group with 1 update in the /cmd/kueueviz/backend directory: [k8s.io/api](https://github.com/kubernetes/api).

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiextensions-apiserver` from 0.35.1 to 0.35.2
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiserver` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/cli-runtime` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-base` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-base/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-helpers` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-helpers/compare/v0.35.1...v0.35.2)

Updates `k8s.io/kubectl` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/kubectl/compare/v0.35.1...v0.35.2)

Updates `k8s.io/metrics` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/metrics/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/code-generator` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/code-generator/compare/v0.35.1...v0.35.2)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/cli-runtime
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-base
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-helpers
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/kubectl
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/metrics
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/code-generator
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Update main with the latest v0.16.2 (#9574)

update changelog for v15 (#9578)

Bump the all group across 3 directories with 3 updates (#9558)

Bumps the all group with 1 update in the /cmd/kueueviz/frontend directory: [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).
Bumps the all group with 1 update in the /site directory: [autoprefixer](https://github.com/postcss/autoprefixer).
Bumps the all group with 1 update in the /test/e2e/kueueviz directory: [cypress](https://github.com/cypress-io/cypress).

Updates `react-router-dom` from 7.13.0 to 7.13.1
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.13.1/packages/react-router-dom)

Updates `autoprefixer` from 10.4.24 to 10.4.27
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.24...10.4.27)

Updates `cypress` from 15.10.0 to 15.11.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v15.10.0...v15.11.0)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: autoprefixer
  dependency-version: 10.4.27
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: cypress
  dependency-version: 15.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

test(cleanup): treat unknown kind cluster as successful deletion (#9577)

update release template post release 0.15.5/0.16.2 (#9579)

* update release template post release 0.15.5/0.16.2

* clarify

test(multikueue): increase TAS completion wait to VeryLongTimeout (#9572)

test(perf): relax baseline small admission threshold for flake (#9581)

[Fair Sharing] If workload fits in nominalQuota for a flavor, ignore DRS checks during preemption (#9494)

* Preempt in fair sharing if CQ within nominal. Add feature gate. Change reason to InCohortReclamation

Change to beta

Remove refactor

Revert some remnants of refactor. Make test changes clearer

* Add new feature flag

* Address review comments

Set TAS perf test thresholds (#9495)

Prevent duplicate preemption requests across scheduling cycles (#9437)

Use expectations.Store (same pattern as pod controller) to track
workloads with in-flight preemptions. The expectation is set before
calling Evict and rolled back on failure. It is cleared by the workload
controller when the eviction (or deletion) is observed.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump github.com/cert-manager/cert-manager from 1.19.3 to 1.19.4 (#9561)

Bumps [github.com/cert-manager/cert-manager](https://github.com/cert-manager/cert-manager) from 1.19.3 to 1.19.4.
- [Release notes](https://github.com/cert-manager/cert-manager/releases)
- [Changelog](https://github.com/cert-manager/cert-manager/blob/master/RELEASE.md)
- [Commits](https://github.com/cert-manager/cert-manager/compare/v1.19.3...v1.19.4)

---
updated-dependencies:
- dependency-name: github.com/cert-manager/cert-manager
  dependency-version: 1.19.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Refresh the PR template to add KEP label and areas (#9590)

Bump cypress/base from 24.13.1 to 24.14.0 in /hack/testing/cypress (#9557)

Bumps cypress/base from 24.13.1 to 24.14.0.

---
updated-dependencies:
- dependency-name: cypress/base
  dependency-version: 24.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Cleanup unused exported functions. (#9601)

Use NewPodSetReference() instead if PodSetReference(). (#9602)

Added a missing backslash in the  command for kueueviz (#9605)

Signed-off-by: michaelkotelnikov <michael.kot97@gmail.com>

Bump go.opentelemetry.io/otel/sdk from 1.38.0 to 1.40.0 in /hack/tools (#9607)

Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.40.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.40.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.40.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump minimatch in /test/e2e/kueueviz (#9613)

Bumps  and [minimatch](https://github.com/isaacs/minimatch). These dependencies needed to be updated together.

Updates `minimatch` from 7.4.6 to 7.4.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 7.4.9
  dependency-type: indirect
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools (#9614)

* Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools

Bumps [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) from 0.155.3 to 0.157.0.
- [Release notes](https://github.com/gohugoio/hugo/releases)
- [Commits](https://github.com/gohugoio/hugo/compare/v0.155.3...v0.157.0)

---
updated-dependencies:
- dependency-name: github.com/gohugoio/hugo
  dependency-version: 0.157.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Sync hugo version

* Fix after bump.

* Fix seo_schema.html.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix parsing of repo name and org in releasing scripts (#9617)

Fix the appwrapper e2e test (#9620)

test(tas): wait for TrainingRuntime visibility before creating TrainJob (#9571)

The e2e TAS TrainJob tests can flake when attempting to create a
TrainJob immediately after creating its referenced TrainingRuntime.
This happens because the Validation Webhook for TrainJobs relies on
an informer cache to verify the referenced TrainingRuntime exists.

If the Create request hits the webhook before the informer cache
synchronizes the new TrainingRuntime, the webhook rejects the TrainJob
creation with a "not found" error.

This commit introduces a local helper `createTrainJobWithRetry` that
wraps the TrainJob creation in an `Eventually` block, ignoring
transient "not found" or webhook errors until the cache is fully
synchronized and the creation succeeds.

e2e testing: use RequestAndLimit consistently (#9623)

* e2e testing: use RequestAndLimit consistently

* test

* fix

* fix lws

Refactor featuregate setup in tests to reduce possibility of flaky tests conflicts (#9600)

* Refactor feature gate setup in tests to use SetFeatureGateDuringTest for DynamicResourceAllocation, AdmissionFairSharing, and TASBalancedPlacement

* Remove unused feature gate setup in tests for AdmissionFairSharing and TASBalancedPlacement

* sync ##9603

* Remove unused feature gate setups in tests for AdmissionFairSharing and TopologyAwareScheduling

Skip PushOrUpdate for inflight workloads to prevent spurious scheduling cycles (#9598)

When a workload is popped by the scheduler (inflight), a concurrent
PushOrUpdate from the workload controller can push it onto the heap
while the scheduler also places it in the inadmissible set. This
causes an extra scheduling cycle.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump sigs.k8s.io/jobset from 0.11.0 to 0.11.1 (#9562)

Bumps [sigs.k8s.io/jobset](https://github.com/kubernetes-sigs/jobset) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/kubernetes-sigs/jobset/releases)
- [Changelog](https://github.com/kubernetes-sigs/jobset/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/jobset/compare/v0.11.0...v0.11.1)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/jobset
  dependency-version: 0.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Execute all FG validations at once #9355 (#9547)

- ValidateFeatureGates now returns field.ErrorList and collects all errors
- Update TestValidateFeatureGates to assert actual vs expected field errors
- Add test case for multiple FG validation errors returned at once

Add LockToDefault for PropagateBatchJobLabelsToWorkload GA feature gate (#9640)

Update kep.yaml files for v0.17 GA feature promotions (#9642)

* Update KEP 2936 (LocalQueueDefaulting) stage to stable for GA promotion

* Update KEP 1618 (ObjectRetentionPolicies) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, adds stable
milestone, and sets disable-supported to false.

* Update KEP 693 (MultiKueue) kep.yaml for MultiKueueBatchJobWithManagedBy GA

Updates latest-milestone to v0.17, adds stable milestone, and sets
disable-supported to false following MultiKueueBatchJobWithManagedBy
GA promotion.

* Update KEP 1834 (PropagateBatchJobLabelsToWorkload) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, and adds stable
milestone.

Bump rajatjindal/krew-release-bot in /hack/releasing/krew-release-bot (#9556)

Bumps [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot) from v0.0.46 to v0.0.50.
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.46...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: v0.0.50
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Use List to verify LWS state in reconciler tests (#9654)

* Use List to verify LWS state in reconciler tests

* Fix gofmt and gci formatting

Bump rajatjindal/krew-release-bot from 0.0.50 to 0.0.51 in the all group (#9648)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.50 to 0.0.51
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.50...v0.0.51)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.51
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add E2E test suite for MultiKueue with TAS (#9396)

* Add TAS asymmetric-quota tests to multikueue E2E suite

Add two new test cases to the existing multikueue TAS Describe
block in test/e2e/multikueue/tas_test.go, using asymmetric
worker quotas (worker1=2CPU, worker2=1CPU) to enable
deterministic routing assertions:

- Preferred topology routing: 1500m CPU job routes to worker1
- Required topology: 500m CPU job admitted on either worker

Extract waitForTopologyAssignment and
waitForDelayedTopologyRequestReady helpers to reduce
duplication across existing and new tests. Use
MakeDefaultOneLevelTopology and batchv1.JobNameLabel
for consistency.

* fix: hoist managerWl outside Eventually in waitForDelayedTopologyRequestReady

generalize MustCreateWithRetry and apply (#9653)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Fix LendingLimit feature-state version tag in cluster_queue.md (#9643)

The LendingLimit feature was promoted to GA in v0.17, not v0.18.
Update the feature-state version tag to reflect the correct version.

Multikueue dev setup for E2E test cluster: extend SA token expiration time to 7d (#9540)

* Set SA expiration time to 7d for e2e dev mode

* update worker-cluster.kind.yaml

* update worker-cluster.kind.yaml

* Revert "Merge branch 'cleanup/mk-dev-setup-sa-token-exp-e2e' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp-e2e"

This reverts commit e5b959ed01486ee051b64db134e38c3e2a57aea3, reversing
changes made to 33a4149b0f6c786273e5ccaa5d8ae23df6d37cff.

Add wayve.ai as an adopter (#9663)

* Add wayve.ai as an adopter

* Improved description

* Fix syntax issue

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig (#9604)

* Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* Adding messages pinpointing failures alogn failfast

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting log

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* untangling code

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Update RayService E2E test to check http endpoint inside the RayService (#9660)

* Update RayService E2E test to check http endpoint inside the RayService

* Use system generated port like 0:remotePort

Forcefully remove stuck pods in the failure recovery controller (#9651)

* Forcefully remove stuck pods in the failure recovery controller

* Add e2e test for `FailureRecoveryPolicy`

* Exclude buffer from the termination timeout

* Add e2e test for `FailureRecoveryPolicy` during foreground deletion

* Code review fixes

* Update the KEP with the new failure recovery logic

* Rename 'terminate' to 'delete'

* Fix e2e test

* Check the failure recovery condition to filter out more executions

* Add missing `gomega.Succeed()`

* Fix import formatting

* Fix e2e test timeouts

* Mention condition check in KEP

* Wait longer for job to be admitted in e2e test

* Use `ContainsFunc` in Pod utils

* Wrap the e2e tests with ginkgo.By

* Shorten the pod grace termination period

* Add `ginkgo.By` steps to `BeforeEach` and `AfterEach`

[KEP] Add a mechanism to consider preemption cost when finding preemption candidates (#8551)

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* priority-boost

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

Update KEP-6757 history to include changes after foreground propagated deletion fix (#9675)

* Mention the annotation name change in the KEP history

* Mention which versions use which annotation name

* Mention which versions retain the old behaviour

Small clarifications in scheduling code (#9674)

Fix inadmissible workload stuck after priority update (#9661)

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Watch workload deletions to trigger LWS reconciliation (#9631)

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Refactor of check filtering to reduce code duplication.

Test refactor.

Fix typo in README: 'Build-in' → 'Built-in' (#9683)

* Fix typo in README: 'Build-in' → 'Built-in'

* docs: fix abbreviation formatting: 'eg.' → 'e.g.'

TAS: support ResourceTransformations (#8963)

* Create integration test.

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

* TAS: support ResourceTransformations

---------

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

Fix shellcheck SC2086 ignore (#9646)

* make test-e2e not parsing GINKGO_ARGS properly #9477

* Fix shellcheck SC2086 ignore #9477

Promote HierarchicalCohorts to GA (#9618)

* Promote HierarchicalCohorts to GA

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Remove deprecated API references

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Fix generateName for StatefulSets by including UID in workload name (#9091)

* Fix generateName for StatefulSets by including UID in workload name

* Support StatefulSet workloads created without UID in name

* Propagate non-NotFound errors in findWorkloadName

feat: add multi-layer topology constraints for TAS (#9506)

* KEP update to reflect the latest impl.

* feat: add multi-layer topology constraints for TAS

Introduce the TASMultiLayerTopology feature gate (alpha) to support
up to 3 hierarchical slice layers in topology-aware scheduling.

- Add `PodsetSliceRequiredTopologyConstraints` field to
  `PodSetTopologyRequest` and the corresponding pod annotation
- Extend TAS flavor snapshot to handle multi-layer placement
- Add validation for the new field (mutual exclusivity with
  existing single-layer fields, layer ordering, size divisibility)
- Add v1beta1 <-> v1beta2 conversion support
- Add integration tests for multi-layer scheduling

* make generate && make verify

* fixup: address comments

Bump the all group across 1 directory with 3 updates (#9703)

Bumps the all group with 2 updates in the /cmd/kueueviz/frontend directory: [@mui/icons-material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material) and [serve](https://github.com/vercel/serve).

Updates `@mui/icons-material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-icons-material)

Updates `@mui/material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-material)

Updates `serve` from 14.2.5 to 14.2.6
- [Release notes](https://github.com/vercel/serve/releases)
- [Changelog](https://github.com/vercel/serve/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vercel/serve/compare/v14.2.5...v14.2.6)

---
updated-dependencies:
- dependency-name: "@mui/icons-material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: "@mui/material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: serve
  dependency-version: 14.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gin-gonic/gin in /cmd/kueueviz/backend (#9707)

Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/gin-gonic/gin/releases)
- [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gin-gonic/gin/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: github.com/gin-gonic/gin
  dependency-version: 1.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/kueue from 0.16.1 to 0.16.2 in /cmd/kueueviz/backend (#9709)

Bumps [sigs.k8s.io/kueue](https://github.com/kubernetes-sigs/kueue) from 0.16.1 to 0.16.2.
- [Release notes](https://github.com/kubernetes-sigs/kueue/releases)
- [Changelog](https://github.com/kubernetes-sigs/kueue/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/kueue/compare/v0.16.1...v0.16.2)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/kueue
  dependency-version: 0.16.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3 (#9704)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime in /cmd/kueueviz/backend (#9708)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Remove duplicates of using ContextWithLog(t). (#9717)

KEP: add kueueviz auth (#8971)

* KEP: add kueueviz auth

Signed-off-by: samzong <samzong.lu@gmail.com>

* update KEP details

Signed-off-by: samzong <samzong.lu@gmail.com>

* KEP-5993: adopt Alpha-first graduation and refine design

Signed-off-by: samzong <samzong.lu@gmail.com>

* remove featuregateway in design

Signed-off-by: samzong <samzong.lu@gmail.com>

---------

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: add token-based authentication for backend and frontend (#9684)

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: fetch Cohort CRD directly, instead of deriving from ClusterQueues (#9719)

Signed-off-by: samzong <samzong.lu@gmail.com>

Propagate contextual logger to workload.Info.Update (#9723)

Add logr.Logger parameter to workload.Info.Update() so callers can
pass a contextualized logger for V(5) debug logging. This keeps
workload.Info as a pure data struct without embedding runtime state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flaky test for sticky workload (#9718)

Add KEP to support `QuotaCheckStrategy` (#8396)

This commit details the changes required to support a new
configuration field, `QuotaCheckStrategy`.

Self-nominate kshalot as reviewer (#9692)

Add KEP-7066: Custom metadata labels for Kueue metrics (#9225)

* Add KEP-7066: Custom metadata labels for Kueue metrics

* Refine KEP-7066 design details and validation rules

* Add explicit source key mapping to KEP-7066 configuration

* Expand KEP-7066 to cover Cohort metrics

* Refine KEP-7066 structure and validation rules

Skip equivalent inadmissible workloads in BestEffortFIFO scheduling (#9698)

When the scheduler evaluates a workload and gets NoFit from FlavorAssigner,
bulk-move all heap workloads with the same scheduling hash to inadmissible.
This reduces scheduling cost from O(workloads) to O(equivalence classes),
allowing the scheduler to reach schedulable workloads deep in the queue.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

add handler in leader workset reconiler (#9740)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Bump ShortConsistentDuration. (#9749)

Provide a metric for cohort nominal quota (#9132)

* Add CohortNominalQuota metric

* Rework after code review

Propagate contextual logger to scheduling hash computation via UpdateSchedulingHash (#9731)

Add UpdateSchedulingHash(log) method to workload.Info so production
callers can compute the scheduling hash with a contextual logger
after NewInfo construction. NewInfo signature stays unchanged.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Cleanup Consistently. (#9756)

Scheduling: reduce the maximal backoff time from 100ms to 10ms (#9697)

* Reduce the max backoff time from 100ms to 10ms

* simplify the code to drop configurable maxBackoff

* add comments to the consts

[MinimalKueue] Add HeapProfile(). (#9759)

Multikueue dev setup: extend SA token expiration time (#9516)

* Update SA setup for MultiKueue dev setup and related doc

* Set SA expiration time to 7d for e2e dev mode

* Set SA expiration time to 7d for e2e dev mode

* Revert "Set SA expiration time to 7d for e2e dev mode"

This reverts commit e9cba59eaa6ead5488d80287f3e40078efaa4cfa.

* Undo Merge branch 'cleanup/mk-dev-setup-sa-token-exp' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp

feat: enhance error message for multi-layer topology constraints (#9739)

* feat: enhance error message for multi-layer topology constraints

Add detailed noFit messages for multi-layer TAS topology that report
per-level slice fit counts (e.g., "1/2 slice(s) fit on level block;
3/4 slice(s) fit on rack; 6/8 slice(s) fit on hostname").

* fixup: add UT for enough hostname slices but insufficient rack slices

kueueviz: support hierarchical cohorts with tree view (#9725)

Signed-off-by: samzong <samzong.lu@gmail.com>

feat(kueueviz/backend): drop polling and switch to informers (#8707)

Signed-off-by: Josef Kolář <josef.kolar@firma.seznam.cz>

Add E2E_SKIP_REINSTALL flag that working in E2E_MODE=dev mode, Add KUEUE_DEPLOYMENT_NAME const for controller manager deployment string (#9753)

Optimize gomega.Eventually() for populator. (#9777)

Decouple borrowing state from DRS ratio value (#9738)

* Add IsBorrowing function in DRS to be explicit about borrowing rather than assuming 0 DRS value means borrowing.

* Address review comments

Spell fix.

TAS: Improve scheduling performance by caching nodes (#9712)

* TAS: Improve scheduling performance by caching nodes

* Rename AddOrUpdateNode() to SyncNode().

Self-nominate sohankunkerkar as reviewer (#9776)

Optimize ContextWithLog() to allow use testing.TB. (#9780)

Update pkg/workload/workload.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Added comments to better explain the logic of "AdmissionChecksForWorkload" function.

Spell fix.

Tests update.

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Move test for clarity.

connection util update

Test fix.

Update cohort metric name (#9787)

Fix NodeHotSwap for multi-layer TAS topology constraints (#9733)

This fixes two issues with NodeHotSwap replacement in multi-layer topology:

1. Domain Selection (requiredReplacementDomain): When multiple slice
   constraints are configured (e.g., [{rack: 8}, {switch: 4}, {hostname: 2}]),
   the code was using only the outermost constraint to find the replacement
   domain. This could place replacements in the wrong sub-domain.

   Fix: Iterate from innermost to outermost constraint and use the first
   (innermost) broken constraint's domain to confine the search.

2. Slice Size (findReplacementAssignment): After clearing
   PodsetSliceRequiredTopologyConstraints, setting PodSetSliceSize alone
   was a dead write because getSliceSizeWithSinglePodAsDefault() requires
   PodSetSliceRequiredTopology to be set. This caused sliceSize=1, scattering
   replacement pods across hosts and violating hostname grouping constraints.

   Fix: Find the innermost satisfied constraint and set both
   PodSetSliceRequiredTopology and PodSetSliceSize to preserve leaf-level
   grouping.

Added test cases:
- 3-layer topology: validates innermost broken domain selection
- 2-layer topology: validates sliceSize prevents scattered placement

chore: Use slices instead of sort (#9781)

Fix missing replica_role=leader metrics after HA role transition (#9487)

test: use Job instead of JobSet in TAS rank ordering case (#9796)

TAS: improve performance of the addNode function. (#9791)

Use gomega.Eventually(func(g gomega.Gomega) pattern. (#9800)

* Use gomega.Eventually(func(g gomega.Gomega) pattern.

* Use wait.Group.

* Ignore conflict error.

feat(visibility): allow visibility server to use custom kubeconfig path (#9619)

* feat(visibility): allow visibility server to use custom kubeconfig path

* docs(visibility): clarify kubeConfig and kubeConfigPath usage in visibility server

* refactor(visibility): streamline kubeConfig handling in visibility server

* refactor(visibility): simplify kubeConfig path retrieval in visibility server

* refactor(visibility): remove redundant comments regarding kubeConfig in visibility server setup

* test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag

* Revert "test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag"

This reverts commit a4add98a15f4a581dd70d0aa57b87d7059f3ba85.

* feat(visibility): enable visibility server to utilize custom kubeconfig path

* test(visibility): add e2e tests for visibility server using custom kubeconfig with RBAC

* refactor(visibility): replace waitForDeployment with WaitForKueueAvailabilityNoRestartCountCheck in kubeconfig tests

* test(visibility): enhance clarity in kubeconfig test by adding descriptive step

* test(visibility): enhance RBAC tests for visibility server with custom kubeconfig

* fix(visibility): remove unused visibility import and ensure visibility scheme is added in init

* refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access

* Revert "refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access"

This reverts commit c11f57ac5d6c087ce94a7ce20e8c342e4c707b84.

* refactor(visibility): simplify kubeconfig test by removing unused visibility import and updating client usage

* fix(visibility): update cloneControllerRBAC to skip additional roles for SubjectAccessReview permissions

* Fix comments

* chore: remove trailing whitespace in `visibility_kubeconfig_test.go`

* Add TODO for internal server error

* refactor: replace `client.IgnoreAlreadyExists` with `util.MustCreate` for object creation in e2e tests.

* Remove CQ from test

* feat: introduce kubeconfig utility to resolve config and path, and pass the path to the visibility server for authentication and authorization configuration.

* refactor: …
k8s-ci-robot pushed a commit that referenced this pull request Apr 8, 2026
…flavor assigned (#9359) (#10332)

* Apply admission checks covering all CQ resources to workloads before
flavor assigned.
Adds tests to track the change.

Test setup fix.

Test setup and teardown fix.

Fit removed.

Adds fix with tests (it and unit).

fix incorrect pod placement during node replacement (#9211)

fix: retry kind cluster deletion to work around Docker race condition (#9261)

* fix: retry kind cluster deletion to work around Docker race condition

Add retry logic with exponential backoff to cluster_cleanup in
e2e-common.sh. Under CI (Docker-in-Docker on Linux with high IO
contention), 'kind delete cluster' can fail because Docker's internal
container kill has a hardcoded 2-second timeout that expires before the
container acknowledges the exit event (moby/moby#51028, moby/moby#51845).

Between retries, force-stop any remaining containers using the
io.x-k8s.kind.cluster label so that the next kind delete attempt starts
from a clean state.

Fixes kubernetes-sigs/kueue#8908

* fix: simplify kind cluster cleanup retries

Address review feedback by retrying only kind delete cluster with a shorter exponential backoff (1s initial delay, 5 attempts). Remove manual docker kill/rm cleanup to keep the bash logic simple, and document the upstream Docker issues as the reason for the temporary workaround.

Add scheduler tests for hierarchical cohort lendingLimit (#9136)

Add two test cases to verify lendingLimit behavior when borrowing
resources across hierarchical cohort structures:

- hierarchical cohort respects lending limit when borrowing
- hierarchical cohort allows borrowing up to lending limit

Graduate SanitizePodSets feature gate to GA (#9260)

Set SanitizePodSets to GA with LockToDefault: true in v0.17.
Remove the feature gate check from SanitizePodSet(), the disabled
feature gate test case, and update documentation.

[Refactor] Move all metrics ops to metrics.go in cache.queue (#9295)

* [Refactor] Move all metrics ops to metrics.go in cache.queue

* make names consistent

Graduate LendingLimit feature gate to GA (#9258)

Promote LendingLimit to GA at v0.18 with LockToDefault: true.
Remove all feature gate checks from production code and clean up
test cases that verified behavior when the feature was disabled.

Align the Kueue KEP template with the K8s KEP template (#9276)

Optimize UpdateKueueConfiguration. (#9275)

Enable TAS with ElasticJobsViaWorkloadSlices feature (#8580)

This change enables Topology-Aware Scheduling (TAS) to work correctly
with the ElasticJobsViaWorkloadSlices feature, which allows jobs to
dynamically scale via workload slices.
When ElasticJobsViaWorkloadSlices is enabled and a workload slice is
being replaced, the previous topology assignment is preserved for
existing pods, ensuring pods across slices are found correctly.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix race in RemoveRemoteObjects where remote LWS is not deleted (#9201)

When MultiKueueGC deletes the remote workload before the reconciler
processes the deletion, RemoveRemoteObjects would early-return on
remWl == nil without deleting the remote controller object (e.g., LWS).

Move DeleteRemoteObject before the nil check to ensure the remote
controller object is always deleted regardless of remote workload state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flake in scale-down logic for LeaderWorkerSet (#9135)

* Fix flake in scale-down logic for LeaderWorkerSet

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Add tests to prove the need of UpdatedReplicas check during rolling updates

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

[Refactor] queue.Manager Factory for integ tests (#9224)

Set certificate authority instead of insecure options in dev setup (#9312)

mark MultiKueueAllowInsecureKubeconfig as deprecated in feature gate (#9297)

Temporarily disable the TAS+ElasticWorkloads test (#9317)

Add podSecurityContext and containerSecurityContext to KueueViz Helm … (#9311)

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

* Add podSecurityContext and containerSecurityContext to KueueViz Helm chart

This change adds configurable security contexts for KueueViz backend and
frontend deployments, enabling users to run KueueViz in clusters with
restricted pod security profiles.

The implementation mirrors the existing controller manager security
context configuration with secure defaults:
- runAsNonRoot: true
- seccompProfile.type: RuntimeDefault
- readOnlyRootFilesystem: true
- allowPrivilegeEscalation: false
- capabilities.drop: ALL

Automate adding kind/* labels to cherry-pick PRs #9222 (#9290)

[Refactor] queue.Manager Factory for unit tests (#9321)

Increase the timeout for waiting for the Deployment update to start and check if ObservedGeneration changed. (#9315)

* Increase the timeout for waiting for the Deployment update to start.

* Check if ObservedGeneration changed in Deployment Status.

* Check if generation equal ObservedGeneration.

Upgrade MPI Operator version to v0.8.0 and enable TAS E2E tests (#9330)

* Update MPI Operator version to v0.8.0

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Enable MPIJob TAS E2E rank-ordering tests

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

promote local queue defaulting to ga (#9299)

Align CERTMANAGER configs. (#9332)

doc: Update the minimum MPI Operator version (#9335)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

KEP-8303: MultiKueue Orchestrated Preemption (#8985)

* Add first draft of KEP-8303: MultiKueue Synchronized Preemptions

* Add missing KEP number

* Reword main KEP goal

* Update KEP reviewers

* Expand the KEP content to include more detailed semantics of the proposal

* Remove wrong non-goal

* Add new non-goal

* Expand the beta API proposal with strictness of the gate

* Update the beta API with enum instead of boolean

* Add structure to the values of the proposed annotation

* Update the scheduler explanation section

* Explicitly specify the semantics of `PreemptionGateTimeout`

* Move dynamic timeout default to alternatives

* Update the comparison table between preemption annotations

* Fix leftover mentions of old design

* Finalize the API design: extend Workload API in alpha

* Rename the feature gate

* Update alternatives

* Update the proposal with a new `Condition`

* Update the creation date of the KEP

* Apply suggestions from code review

* Add missing step to the MK controller description

* Add early exit to the MK controller logic

* Rename open/closed to active/inactive

* Fix typo in API definition

* Fix grammar - 'disactivate' -> 'deactivate'

* Add paragraph about setting spec

* Fix typo 'born' -> 'blocked'

* Remove filtering out workloads with reserved quota for simplicity

* Mention having to check both the spec and status of workload

* Disambiguate active preemption gate

* Use `LastTriggeredTime` instead of `Condition`

* Remove dubious advantage of spec/status split

* Update the controller algorithm with early exit

* Rename 'synchronization' to 'orchestration'

* Add 'presence as active' alternative

* Expand the scheduler impact description

* Update ToC

* Add table explaining flavor selection

* Fix typos in the content

* Add more context to the requeueing logic

* Remove paragraph about `cannot-preempt` behavior similarity

* Fix alternatives section nesting

* Apply review comments

* Make `LastTriggeredTime` optional

* Remove confusing step from controller implementation

* Explicitly mention the controller updating the status of preemption gates

* Address review comments

* Add missing comments to proposed API

* Revert back to using a new condition for signaling

* Fix alternative nesting

* Rename active/inactive to open/closed

* Add alternative to place timeout in `MultiKueueConfig`

* Reword condition description comment

* Mention eviction atomicity

* Fix wording on the condition extension alternative

FIX: Drop default podSecurityContext and containerSecurityContext to KueueViz frontend (#9339)

Reduce the TAS performance test results variance (#9238)

* Reduce the TAS performance test results variance

The average admission time reported in TAS performance test is too
unstable:
60 workloads (large-balanced-rack) → 37.1% CV
90 workloads (medium-balanced-rack) → 34.7% CV
120 workloads (medium-preferred-block) → 32.3% CV
180 workloads (medium/small-required/preferred-rack) → ~9% CV
300 workloads (small-required-rack) → 5.3% CV
where CV (Coefficient of Variance) = variance / average.

Specifying thresholds for the admission time now would make the
TAS performance test results flaky.

This commit attempts to reduce the variance down to <10% by increasing
the workloads count and making the Law of Large Numbers work for us.

* Match tas performance test counts with baseline

One difference remaining is that TAS workloads have multiple pods in
them.

All 3 workload sets have different tas constraints to test the
performance impact of all of them.

* Add more workload set combinations

Keep the workload count the same, but test all the combinations of
different workload sizes with all the possible TAS constraints.

Fix ExpectNewWorkloadSlice to retry until workload is found (#9331)

The function was supposed to wait until a new workload appeared,
but it returned immediately after checking the list even if nothing
was found yet. This caused the test to fail randomly when the controller
was slower than expected. Keep retrying until the workload is actually
found, and clear the result before each retry to avoid returning stale data.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Update _index.md (#9351)

Fix feature-gates ConfigMap example.

promote ObjectRetentionPolicy to GA (#9300)

Test cleanup fix.

Included coverage of the "admission with no flavors" case in workload controller.

Included coverage of the "admission with no flavors" case in workload controller.

Import fix.

Test setup correction.

Moved workload admission definitions back into the bodies of the relevant tests.

Adds logging.

Foramtting.

Temporary - increase flaky e2e test verbosity.

e2e mk deployment test update - safeguard against flakyness.

test restructure

LOg message cleanup.

Logs cleanup.

Unnecesary util fiunc cleanup.

Optimized migration script to allow migration of namespaced resources by namespace (#9340)

* Optimized migration script to allow migration of namespaced resources by namespace.

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

---------

Co-authored-by: Karol Szuster <43988137+kshalot@users.noreply.github.com>

Automate adding kind/* labels to cherry-pick PRs #9222 (#9362)

* Follow-up

fix: quota double-counting for unchanged podSets in Workload Slices (#9322)

* Fix quota double-counting for unchanged podSets in workload slicing

* Add e2e tests for elastic workloads

* Remove downscale checks as these aren't managed by flavor assignment logic

* fix: integ test and podSet field being immutable (for upscales)

* address comments

* keep empty quota

* update assignment usage comment

Handle NoExecute taint as an unhealthy node (#8964)

* TAS Replace Node On Taints implementation

* refactor node failure controller

* use job instead of jobset

* cleanup

TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaluted (#8685)

* TAS: Fix a bug LWS without Grouping Pod indexes are not correctly evaludated

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* decouple E2E test from existing one

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Simplify the number of PodSet detection

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

Extend resource transformation integration tests. (#9356)

[Refactor] Terminate Workloads Sequentially in Integration Test (#9346)

Fix e2e certmanager kustomization missing vars (#9372)

Use v1beta1 as prefered API resource version. (#9367)

MultiKueue + TAS setup script: bump Kueue to 0.16 (#9308)

* MultiKueue + TAS setup script: bump Kueue to 0.16

* Address comments

Bump systeminformation from 5.27.14 to 5.31.1 in /test/e2e/kueueviz (#9373)

Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 5.27.14 to 5.31.1.
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v5.27.14...v5.31.1)

---
updated-dependencies:
- dependency-name: systeminformation
  dependency-version: 5.31.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add common code into raycluster/common.go (#9376)

* Add common code into raycluster/common.go

* Remove ByRayClusterSpec from names

* Update usage of common code

Add Prometheus e2e tests (#9031)

e2e testing: load images into kind worker nodes in parallel #9052 (#9294)

Remove deprecated TASProfileLeastFreeCapacity feature gate (#9298)

* Remove deprecated TASProfileLeastFreeCapacity feature gate

The TASProfileLeastFreeCapacity feature gate was deprecated in v0.11,
superseded by TASProfileMixed which uses LeastFreeCapacity only for
unconstrained requests and BestFit for required/preferred. This removes
the gate, simplifies validation logic, and drops all associated tests.

* add back validation code in case we add more tas profiles

KEP-2724: Add multi-level topology aware scheduling design (#9243)

* KEP-2724: Add multi-level topology aware scheduling design

Add the design for multi-level TAS, which extends two-level
scheduling to support N slice layers across deeper topology
hierarchies (e.g., datacenter → block → rack → host).

* fixup: fix comments

Self-nominate olekzabl as reviewer (#9366)

Optimize checkFlavorForPodSets(). (#9390)

Refactor string literals to common consts in raycluster, pod, job controller reconciler tests (#9393)

Optimize migrate-to-v1beta2.sh to allow downgrade. (#9383)

* Optimize migrate-to-v1beta2.sh to allow downgrade.

* Update hack/migrate-to-v1beta2.sh

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

---------

Co-authored-by: Mykyta Derhunov <ndergunov@gmail.com>

Fix prometheus operator setup in e2e-k8s-main-was target (#9403)

Fix flaky workload retention test after manager restart (#9384)

Adds a controller-readiness barrier after restartManager() to ensure
controllers are processing events before deleting the workload.
Without this, gauge metric assertions passed from stale prometheus
state, allowing the delete to race ahead of controller startup.

using replacements instead of vars (#9239)

* using replacements instead of vars

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* commenting out optional changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* adding certmanager message back

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* removing accidentally committed dependency from project

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting changes

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* additional formatting

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting fixes

* Revert e2e certmanager kustomization to keep PR focused

* formatting yaml, removing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* remove trailing spaces

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Fix hack/tools module path to match directory structure (#9408)

KubeRay: Add RayService controller as top level job (#9102)

* Add RayService controller as top level job

* Update helm chart yaml files

* Use build and update logic for RayService PodSets method

* Fix lint issue

* Update processing-plan.yaml

* Clean up rayservice webhook and multikueue adapter and update tests

* Use hardcode Running message in RayService.Finished

* Remove pod debugging log in e2e test

* Remove rayservice multikueue adapter

* Replace Status.ServiceStatus with Condition check

* Move RayJob/RayService common code to raycluster package

* Remove ByRayClusterSpec from names

* Add rayservice to integration and clean up code

Add example ConfigMap for RayJob autoscaling documentation (#9410)

Include the ray-job-autoscaling-code-sample.yaml ConfigMap in the
autoscaling example section of the RayJob docs (en and zh-CN), along
with kubectl commands to apply it. This mirrors the pattern used in
the non-autoscaling example section.

Bump golangci-lint to v2.10.1 (#9389)

Bump rajatjindal/krew-release-bot from 0.0.47 to 0.0.50 in the all group (#9418)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.47 to 0.0.50
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.47...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.50
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix dev mode e2e setup to skip prometheus config when feature is not selected (#9417)

Fix InsertText test cases in yaml-processor (#9409)

Fix: fix cohortName field for `v1beta2.ClusterQueue` (#9394)

* Fix ClusterQueue builder for v1beta2

* Update references in comments

* Update references in other files - automatic update

docs: document suspend behavior for raycluster/rayservice/rayjob (#8900)

Updated documentation for RayCluster, RayJob, and RayService to clarify that Kueue manages the `suspend` field and overrides it upon admission.

Signed-off-by: Abirdcfly <fp544037857@gmail.com>

Fix stale replica-role in scheduler logs after leader election (#9429)

Add cluster-queue-name and local-queue-name labels for pods coming from admitted workloads (#9348)

* Add queue labels to pod template for jobs

* Add queue labels to pods in existing tests

* Add queue pod labels to docs

* Add feature gate for queue pod labels and validation

* Revert testfile changes to avoid conflicts with pretask

* Add checks for new labels in e2e tests

* Add queue label checks to unit tests

* Fix incorrect table test name

Cleanup RayService controller code (#9430)

* Use 600m cpu for RayService e2e test

* Update suspend related doc for RayService

* Add rayservice to integrations in helm chart values file

* Update RayJob test wrapper

Fix discarded ctx from ctrl.LoggerInto causing missing replica-role in logs (#9445)

Fix missing roleTracker in NonTasUsageReconciler (#9433)

[Refactor] Add context to integ manager factory (#9458)

Fix race in KubeConfigFSWatcher tests by making Start() blocking (#9459)

[Docs][zh]sync tasks/run/deployment (#9442)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/plain_pods (#9443)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/leaderworkerset (#9444)

Signed-off-by: xin.li <xin.li@daocloud.io>

[zh-cn]sync tasks/run/statefulset (#9446)

Signed-off-by: xin.li <xin.li@daocloud.io>

upgrade to beta (#9450)

[flake] fix Admission Fair Sharing test (#9471)

[flake] fix Admission Fair Sharing test2 (#9476)

Narrow TAS ResourceFlavor spec immutability to topology-sensitive fields (#9427)

* Restrict the fields that are immutable in ResourceFlavorSpec when using TAS

* Remove nodeTaints from ResourceFlavor immutability check

* Fix formatting failures

* Fix documentation by removing unwanted comments

Fix a flavorFungibility preference bug (#9464)

* Reproduce a flavor fungibility preference bug (https://github.com/kubernetes-sigs/kueue/issues/9462)

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

* Fix a flavorFungibility preference bug where explicit preference specifications are reversed behavior

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

---------

Signed-off-by: Yuki Iwai <yuki.iwai.tz@gmail.com>

[flake] fix e2e metrics test (#9485)

Asynchronous Inadmissible Workload Requeueing (#9232)

* Asynchronous Inadmissible Workload Requeueing

* address comments

* workqueue

Bump github.com/cloudflare/circl from 1.6.1 to 1.6.3 in /hack/tools (#9491)

Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.6.1 to 1.6.3.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.6.1...v1.6.3)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-version: 1.6.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump rollup from 4.43.0 to 4.59.0 in /cmd/kueueviz/frontend (#9496)

Bumps [rollup](https://github.com/rollup/rollup) from 4.43.0 to 4.59.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.43.0...v4.59.0)

---
updated-dependencies:
- dependency-name: rollup
  dependency-version: 4.59.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Localize topology (#9423)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync multikueue (#9436)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]sync concepts/_index (#9424)

Signed-off-by: xin.li <xin.li@daocloud.io>

[Docs][zh]Localize elastic_workload (#9425)

Signed-off-by: xin.li <xin.li@daocloud.io>

Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~11h (#9493)

* Increase admission_wait_time_seconds histogram max bucket from ~2.84h to ~5.69h

Bump the bucket count from 14 to 15 so the max boundary becomes
20480s (~5.69h).

* Bump to 16 buckets

feat: update metrics for local queue kep to beta (#9370)

[Fair Sharing] Prefer nominal-quota workloads in admission ordering (#9484)

* Give priority to workloads that can fit within quota during fair sharing

* Add e2e tests. Create a feature gate

* Change feature gate to beta and get make verify to work

Add windsonsea and my-git9 to zh-CN docs approver (#9497)

Signed-off-by: xin.li <xin.li@daocloud.io>

Bump actions/setup-go from 6.2.0 to 6.3.0 in the all group (#9509)

Bumps the all group with 1 update: [actions/setup-go](https://github.com/actions/setup-go).

Updates `actions/setup-go` from 6.2.0 to 6.3.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5...4b73464bb391d4059bd26b0524d20df3927bd417)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[Docs][zh]Add tasks/run/using_hami (#9505)

Signed-off-by: xin.li <xin.li@daocloud.io>

inadmissible workloads - delete already processed logic (#9513)

Update RayService doc due to recent top level job change (#9460)

* Update RayService doc

* Extra version change

* Remove restart instruction

* Revert "Remove restart instruction"

This reverts commit 61594c3064b9e769a0f6c12d0625e24343e7d935.

log inadmissible workload requeue count (#9512)

move certs test (#9521)

[flake] increase batch period for requeue inadmissible test (#9531)

Fix StatefulSet MultiKueue adapter selection by creating workload in STS reconciler (#9344)

[website][zh] translation of YAML annotations for using_hami (#9517)

Signed-off-by: xin.li <xin.li@daocloud.io>

[website][zh]sync run/kubeflow/mpijobs (#9518)

Signed-off-by: xin.li <xin.li@daocloud.io>

Clean up workaround for the MPI Operator installation in E2E (#9546)

Remove the yq workaround that dropped empty rules for aggregated
ClusterRoles. The new MPI Operator version includes the fix.

Ref: https://github.com/kubernetes-sigs/kueue/issues/9375

[flake] fix StatefulSet e2e test when manageJobsWithoutQueueName=true (#9542)

fix perf test flakiness caused by informer relist (#9543)

The Create predicate assumed Create events always mean freshly created,
non-admitted workloads, so it returned false for all of them.  This
breaks during informer relist: if the watch closes and the client
relists, workloads admitted during the gap appear as Create events and
were silently dropped, so Reconcile() was never called and they were
never marked Finished.

Fix the predicate to return true only for admitted, unfinished workloads,
mirroring the Update path.  Add a unit test covering all four cases.

fix(scheduler): relax strict admission attempt expectations in flaky tests (#9554)

* fix(scheduler): relax strict admission attempt expectations in flaky tests

* fix(scheduler): keep scope to scheduler_test for #9526

Add subpage in observability about resource usage monitoring (#9461)

* Add observability webpage about resource usage monitroing

* Refine the site

* Refine the resource monitoring docs

* Add kubectl top result to resource usage docs

Bump the kubernetes group across 3 directories with 11 updates (#9560)

Bumps the kubernetes group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.35.1` | `0.35.2` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.35.1` | `0.35.2` |
| [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) | `0.35.1` | `0.35.2` |
| [k8s.io/component-helpers](https://github.com/kubernetes/component-helpers) | `0.35.1` | `0.35.2` |
| [k8s.io/kubectl](https://github.com/kubernetes/kubectl) | `0.35.1` | `0.35.2` |

Bumps the kubernetes group with 1 update in the /cmd/experimental/kueue-populator directory: [k8s.io/api](https://github.com/kubernetes/api).
Bumps the kubernetes group with 1 update in the /cmd/kueueviz/backend directory: [k8s.io/api](https://github.com/kubernetes/api).

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiextensions-apiserver` from 0.35.1 to 0.35.2
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apiserver` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apiserver/compare/v0.35.1...v0.35.2)

Updates `k8s.io/cli-runtime` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-base` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-base/compare/v0.35.1...v0.35.2)

Updates `k8s.io/component-helpers` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/component-helpers/compare/v0.35.1...v0.35.2)

Updates `k8s.io/kubectl` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/kubectl/compare/v0.35.1...v0.35.2)

Updates `k8s.io/metrics` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/metrics/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/api` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/api/compare/v0.35.1...v0.35.2)

Updates `k8s.io/apimachinery` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.35.1...v0.35.2)

Updates `k8s.io/client-go` from 0.35.1 to 0.35.2
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.35.1...v0.35.2)

Updates `k8s.io/code-generator` from 0.35.1 to 0.35.2
- [Commits](https://github.com/kubernetes/code-generator/compare/v0.35.1...v0.35.2)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apiserver
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/cli-runtime
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-base
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/component-helpers
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/kubectl
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/metrics
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/api
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/client-go
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
- dependency-name: k8s.io/code-generator
  dependency-version: 0.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Update main with the latest v0.16.2 (#9574)

update changelog for v15 (#9578)

Bump the all group across 3 directories with 3 updates (#9558)

Bumps the all group with 1 update in the /cmd/kueueviz/frontend directory: [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).
Bumps the all group with 1 update in the /site directory: [autoprefixer](https://github.com/postcss/autoprefixer).
Bumps the all group with 1 update in the /test/e2e/kueueviz directory: [cypress](https://github.com/cypress-io/cypress).

Updates `react-router-dom` from 7.13.0 to 7.13.1
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.13.1/packages/react-router-dom)

Updates `autoprefixer` from 10.4.24 to 10.4.27
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.24...10.4.27)

Updates `cypress` from 15.10.0 to 15.11.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v15.10.0...v15.11.0)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: autoprefixer
  dependency-version: 10.4.27
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: cypress
  dependency-version: 15.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

test(cleanup): treat unknown kind cluster as successful deletion (#9577)

update release template post release 0.15.5/0.16.2 (#9579)

* update release template post release 0.15.5/0.16.2

* clarify

test(multikueue): increase TAS completion wait to VeryLongTimeout (#9572)

test(perf): relax baseline small admission threshold for flake (#9581)

[Fair Sharing] If workload fits in nominalQuota for a flavor, ignore DRS checks during preemption (#9494)

* Preempt in fair sharing if CQ within nominal. Add feature gate. Change reason to InCohortReclamation

Change to beta

Remove refactor

Revert some remnants of refactor. Make test changes clearer

* Add new feature flag

* Address review comments

Set TAS perf test thresholds (#9495)

Prevent duplicate preemption requests across scheduling cycles (#9437)

Use expectations.Store (same pattern as pod controller) to track
workloads with in-flight preemptions. The expectation is set before
calling Evict and rolled back on failure. It is cleared by the workload
controller when the eviction (or deletion) is observed.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump github.com/cert-manager/cert-manager from 1.19.3 to 1.19.4 (#9561)

Bumps [github.com/cert-manager/cert-manager](https://github.com/cert-manager/cert-manager) from 1.19.3 to 1.19.4.
- [Release notes](https://github.com/cert-manager/cert-manager/releases)
- [Changelog](https://github.com/cert-manager/cert-manager/blob/master/RELEASE.md)
- [Commits](https://github.com/cert-manager/cert-manager/compare/v1.19.3...v1.19.4)

---
updated-dependencies:
- dependency-name: github.com/cert-manager/cert-manager
  dependency-version: 1.19.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Refresh the PR template to add KEP label and areas (#9590)

Bump cypress/base from 24.13.1 to 24.14.0 in /hack/testing/cypress (#9557)

Bumps cypress/base from 24.13.1 to 24.14.0.

---
updated-dependencies:
- dependency-name: cypress/base
  dependency-version: 24.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Cleanup unused exported functions. (#9601)

Use NewPodSetReference() instead if PodSetReference(). (#9602)

Added a missing backslash in the  command for kueueviz (#9605)

Signed-off-by: michaelkotelnikov <michael.kot97@gmail.com>

Bump go.opentelemetry.io/otel/sdk from 1.38.0 to 1.40.0 in /hack/tools (#9607)

Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.40.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.40.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.40.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump minimatch in /test/e2e/kueueviz (#9613)

Bumps  and [minimatch](https://github.com/isaacs/minimatch). These dependencies needed to be updated together.

Updates `minimatch` from 7.4.6 to 7.4.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v7.4.6...v7.4.9)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 7.4.9
  dependency-type: indirect
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools (#9614)

* Bump github.com/gohugoio/hugo from 0.155.3 to 0.157.0 in /hack/tools

Bumps [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) from 0.155.3 to 0.157.0.
- [Release notes](https://github.com/gohugoio/hugo/releases)
- [Commits](https://github.com/gohugoio/hugo/compare/v0.155.3...v0.157.0)

---
updated-dependencies:
- dependency-name: github.com/gohugoio/hugo
  dependency-version: 0.157.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Sync hugo version

* Fix after bump.

* Fix seo_schema.html.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Fix parsing of repo name and org in releasing scripts (#9617)

Fix the appwrapper e2e test (#9620)

test(tas): wait for TrainingRuntime visibility before creating TrainJob (#9571)

The e2e TAS TrainJob tests can flake when attempting to create a
TrainJob immediately after creating its referenced TrainingRuntime.
This happens because the Validation Webhook for TrainJobs relies on
an informer cache to verify the referenced TrainingRuntime exists.

If the Create request hits the webhook before the informer cache
synchronizes the new TrainingRuntime, the webhook rejects the TrainJob
creation with a "not found" error.

This commit introduces a local helper `createTrainJobWithRetry` that
wraps the TrainJob creation in an `Eventually` block, ignoring
transient "not found" or webhook errors until the cache is fully
synchronized and the creation succeeds.

e2e testing: use RequestAndLimit consistently (#9623)

* e2e testing: use RequestAndLimit consistently

* test

* fix

* fix lws

Refactor featuregate setup in tests to reduce possibility of flaky tests conflicts (#9600)

* Refactor feature gate setup in tests to use SetFeatureGateDuringTest for DynamicResourceAllocation, AdmissionFairSharing, and TASBalancedPlacement

* Remove unused feature gate setup in tests for AdmissionFairSharing and TASBalancedPlacement

* sync ##9603

* Remove unused feature gate setups in tests for AdmissionFairSharing and TopologyAwareScheduling

Skip PushOrUpdate for inflight workloads to prevent spurious scheduling cycles (#9598)

When a workload is popped by the scheduler (inflight), a concurrent
PushOrUpdate from the workload controller can push it onto the heap
while the scheduler also places it in the inadmissible set. This
causes an extra scheduling cycle.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Bump sigs.k8s.io/jobset from 0.11.0 to 0.11.1 (#9562)

Bumps [sigs.k8s.io/jobset](https://github.com/kubernetes-sigs/jobset) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/kubernetes-sigs/jobset/releases)
- [Changelog](https://github.com/kubernetes-sigs/jobset/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/jobset/compare/v0.11.0...v0.11.1)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/jobset
  dependency-version: 0.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Execute all FG validations at once #9355 (#9547)

- ValidateFeatureGates now returns field.ErrorList and collects all errors
- Update TestValidateFeatureGates to assert actual vs expected field errors
- Add test case for multiple FG validation errors returned at once

Add LockToDefault for PropagateBatchJobLabelsToWorkload GA feature gate (#9640)

Update kep.yaml files for v0.17 GA feature promotions (#9642)

* Update KEP 2936 (LocalQueueDefaulting) stage to stable for GA promotion

* Update KEP 1618 (ObjectRetentionPolicies) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, adds stable
milestone, and sets disable-supported to false.

* Update KEP 693 (MultiKueue) kep.yaml for MultiKueueBatchJobWithManagedBy GA

Updates latest-milestone to v0.17, adds stable milestone, and sets
disable-supported to false following MultiKueueBatchJobWithManagedBy
GA promotion.

* Update KEP 1834 (PropagateBatchJobLabelsToWorkload) kep.yaml for GA promotion

Updates stage to stable, latest-milestone to v0.17, and adds stable
milestone.

Bump rajatjindal/krew-release-bot in /hack/releasing/krew-release-bot (#9556)

Bumps [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot) from v0.0.46 to v0.0.50.
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.46...v0.0.50)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: v0.0.50
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Use List to verify LWS state in reconciler tests (#9654)

* Use List to verify LWS state in reconciler tests

* Fix gofmt and gci formatting

Bump rajatjindal/krew-release-bot from 0.0.50 to 0.0.51 in the all group (#9648)

Bumps the all group with 1 update: [rajatjindal/krew-release-bot](https://github.com/rajatjindal/krew-release-bot).

Updates `rajatjindal/krew-release-bot` from 0.0.50 to 0.0.51
- [Release notes](https://github.com/rajatjindal/krew-release-bot/releases)
- [Commits](https://github.com/rajatjindal/krew-release-bot/compare/v0.0.50...v0.0.51)

---
updated-dependencies:
- dependency-name: rajatjindal/krew-release-bot
  dependency-version: 0.0.51
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Add E2E test suite for MultiKueue with TAS (#9396)

* Add TAS asymmetric-quota tests to multikueue E2E suite

Add two new test cases to the existing multikueue TAS Describe
block in test/e2e/multikueue/tas_test.go, using asymmetric
worker quotas (worker1=2CPU, worker2=1CPU) to enable
deterministic routing assertions:

- Preferred topology routing: 1500m CPU job routes to worker1
- Required topology: 500m CPU job admitted on either worker

Extract waitForTopologyAssignment and
waitForDelayedTopologyRequestReady helpers to reduce
duplication across existing and new tests. Use
MakeDefaultOneLevelTopology and batchv1.JobNameLabel
for consistency.

* fix: hoist managerWl outside Eventually in waitForDelayedTopologyRequestReady

generalize MustCreateWithRetry and apply (#9653)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Fix LendingLimit feature-state version tag in cluster_queue.md (#9643)

The LendingLimit feature was promoted to GA in v0.17, not v0.18.
Update the feature-state version tag to reflect the correct version.

Multikueue dev setup for E2E test cluster: extend SA token expiration time to 7d (#9540)

* Set SA expiration time to 7d for e2e dev mode

* update worker-cluster.kind.yaml

* update worker-cluster.kind.yaml

* Revert "Merge branch 'cleanup/mk-dev-setup-sa-token-exp-e2e' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp-e2e"

This reverts commit e5b959ed01486ee051b64db134e38c3e2a57aea3, reversing
changes made to 33a4149b0f6c786273e5ccaa5d8ae23df6d37cff.

Add wayve.ai as an adopter (#9663)

* Add wayve.ai as an adopter

* Improved description

* Fix syntax issue

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Optimize ManageJobsWithoutQueueName E2E tests. (#9659)

Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig (#9604)

* Fix Multikueue E2E script swallowing cluster creation errors and locking kubeconfig

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* Adding messages pinpointing failures alogn failfast

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* formatting log

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

* untangling code

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

---------

Signed-off-by: Tapan Manu <tapanmanu2000@gmail.com>

Update RayService E2E test to check http endpoint inside the RayService (#9660)

* Update RayService E2E test to check http endpoint inside the RayService

* Use system generated port like 0:remotePort

Forcefully remove stuck pods in the failure recovery controller (#9651)

* Forcefully remove stuck pods in the failure recovery controller

* Add e2e test for `FailureRecoveryPolicy`

* Exclude buffer from the termination timeout

* Add e2e test for `FailureRecoveryPolicy` during foreground deletion

* Code review fixes

* Update the KEP with the new failure recovery logic

* Rename 'terminate' to 'delete'

* Fix e2e test

* Check the failure recovery condition to filter out more executions

* Add missing `gomega.Succeed()`

* Fix import formatting

* Fix e2e test timeouts

* Mention condition check in KEP

* Wait longer for job to be admitted in e2e test

* Use `ContainsFunc` in Pod utils

* Wrap the e2e tests with ginkgo.By

* Shorten the pod grace termination period

* Add `ginkgo.By` steps to `BeforeEach` and `AfterEach`

[KEP] Add a mechanism to consider preemption cost when finding preemption candidates (#8551)

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* priority-boost

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

* Add a mechanism to consider preemption cost when finding preemption candidates #7990

* Address comments

Update KEP-6757 history to include changes after foreground propagated deletion fix (#9675)

* Mention the annotation name change in the KEP history

* Mention which versions use which annotation name

* Mention which versions retain the old behaviour

Small clarifications in scheduling code (#9674)

Fix inadmissible workload stuck after priority update (#9661)

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Watch workload deletions to trigger LWS reconciliation (#9631)

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Refactor of check filtering to reduce code duplication.

Test refactor.

Fix typo in README: 'Build-in' → 'Built-in' (#9683)

* Fix typo in README: 'Build-in' → 'Built-in'

* docs: fix abbreviation formatting: 'eg.' → 'e.g.'

TAS: support ResourceTransformations (#8963)

* Create integration test.

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

* TAS: support ResourceTransformations

---------

Co-authored-by: Irving Mondragón <irvingmg@users.noreply.github.com>

Fix shellcheck SC2086 ignore (#9646)

* make test-e2e not parsing GINKGO_ARGS properly #9477

* Fix shellcheck SC2086 ignore #9477

Promote HierarchicalCohorts to GA (#9618)

* Promote HierarchicalCohorts to GA

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

* Remove deprecated API references

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

---------

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Fix generateName for StatefulSets by including UID in workload name (#9091)

* Fix generateName for StatefulSets by including UID in workload name

* Support StatefulSet workloads created without UID in name

* Propagate non-NotFound errors in findWorkloadName

feat: add multi-layer topology constraints for TAS (#9506)

* KEP update to reflect the latest impl.

* feat: add multi-layer topology constraints for TAS

Introduce the TASMultiLayerTopology feature gate (alpha) to support
up to 3 hierarchical slice layers in topology-aware scheduling.

- Add `PodsetSliceRequiredTopologyConstraints` field to
  `PodSetTopologyRequest` and the corresponding pod annotation
- Extend TAS flavor snapshot to handle multi-layer placement
- Add validation for the new field (mutual exclusivity with
  existing single-layer fields, layer ordering, size divisibility)
- Add v1beta1 <-> v1beta2 conversion support
- Add integration tests for multi-layer scheduling

* make generate && make verify

* fixup: address comments

Bump the all group across 1 directory with 3 updates (#9703)

Bumps the all group with 2 updates in the /cmd/kueueviz/frontend directory: [@mui/icons-material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material) and [serve](https://github.com/vercel/serve).

Updates `@mui/icons-material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-icons-material)

Updates `@mui/material` from 7.3.8 to 7.3.9
- [Release notes](https://github.com/mui/material-ui/releases)
- [Changelog](https://github.com/mui/material-ui/blob/v7.3.9/CHANGELOG.md)
- [Commits](https://github.com/mui/material-ui/commits/v7.3.9/packages/mui-material)

Updates `serve` from 14.2.5 to 14.2.6
- [Release notes](https://github.com/vercel/serve/releases)
- [Changelog](https://github.com/vercel/serve/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vercel/serve/compare/v14.2.5...v14.2.6)

---
updated-dependencies:
- dependency-name: "@mui/icons-material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: "@mui/material"
  dependency-version: 7.3.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: serve
  dependency-version: 14.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump github.com/gin-gonic/gin in /cmd/kueueviz/backend (#9707)

Bumps [github.com/gin-gonic/gin](https://github.com/gin-gonic/gin) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/gin-gonic/gin/releases)
- [Changelog](https://github.com/gin-gonic/gin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gin-gonic/gin/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: github.com/gin-gonic/gin
  dependency-version: 1.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/kueue from 0.16.1 to 0.16.2 in /cmd/kueueviz/backend (#9709)

Bumps [sigs.k8s.io/kueue](https://github.com/kubernetes-sigs/kueue) from 0.16.1 to 0.16.2.
- [Release notes](https://github.com/kubernetes-sigs/kueue/releases)
- [Changelog](https://github.com/kubernetes-sigs/kueue/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/kueue/compare/v0.16.1...v0.16.2)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/kueue
  dependency-version: 0.16.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3 (#9704)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Bump sigs.k8s.io/controller-runtime in /cmd/kueueviz/backend (#9708)

Bumps [sigs.k8s.io/controller-runtime](https://github.com/kubernetes-sigs/controller-runtime) from 0.23.1 to 0.23.3.
- [Release notes](https://github.com/kubernetes-sigs/controller-runtime/releases)
- [Changelog](https://github.com/kubernetes-sigs/controller-runtime/blob/main/RELEASE.md)
- [Commits](https://github.com/kubernetes-sigs/controller-runtime/compare/v0.23.1...v0.23.3)

---
updated-dependencies:
- dependency-name: sigs.k8s.io/controller-runtime
  dependency-version: 0.23.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Remove duplicates of using ContextWithLog(t). (#9717)

KEP: add kueueviz auth (#8971)

* KEP: add kueueviz auth

Signed-off-by: samzong <samzong.lu@gmail.com>

* update KEP details

Signed-off-by: samzong <samzong.lu@gmail.com>

* KEP-5993: adopt Alpha-first graduation and refine design

Signed-off-by: samzong <samzong.lu@gmail.com>

* remove featuregateway in design

Signed-off-by: samzong <samzong.lu@gmail.com>

---------

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: add token-based authentication for backend and frontend (#9684)

Signed-off-by: samzong <samzong.lu@gmail.com>

kueueviz: fetch Cohort CRD directly, instead of deriving from ClusterQueues (#9719)

Signed-off-by: samzong <samzong.lu@gmail.com>

Propagate contextual logger to workload.Info.Update (#9723)

Add logr.Logger parameter to workload.Info.Update() so callers can
pass a contextualized logger for V(5) debug logging. This keeps
workload.Info as a pure data struct without embedding runtime state.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Fix flaky test for sticky workload (#9718)

Add KEP to support `QuotaCheckStrategy` (#8396)

This commit details the changes required to support a new
configuration field, `QuotaCheckStrategy`.

Self-nominate kshalot as reviewer (#9692)

Add KEP-7066: Custom metadata labels for Kueue metrics (#9225)

* Add KEP-7066: Custom metadata labels for Kueue metrics

* Refine KEP-7066 design details and validation rules

* Add explicit source key mapping to KEP-7066 configuration

* Expand KEP-7066 to cover Cohort metrics

* Refine KEP-7066 structure and validation rules

Skip equivalent inadmissible workloads in BestEffortFIFO scheduling (#9698)

When the scheduler evaluates a workload and gets NoFit from FlavorAssigner,
bulk-move all heap workloads with the same scheduling hash to inadmissible.
This reduces scheduling cost from O(workloads) to O(equivalence classes),
allowing the scheduler to reach schedulable workloads deep in the queue.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

add handler in leader workset reconiler (#9740)

Signed-off-by: falconlee236 <falconlee236@gmail.com>

Bump ShortConsistentDuration. (#9749)

Provide a metric for cohort nominal quota (#9132)

* Add CohortNominalQuota metric

* Rework after code review

Propagate contextual logger to scheduling hash computation via UpdateSchedulingHash (#9731)

Add UpdateSchedulingHash(log) method to workload.Info so production
callers can compute the scheduling hash with a contextual logger
after NewInfo construction. NewInfo signature stays unchanged.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>

Cleanup Consistently. (#9756)

Scheduling: reduce the maximal backoff time from 100ms to 10ms (#9697)

* Reduce the max backoff time from 100ms to 10ms

* simplify the code to drop configurable maxBackoff

* add comments to the consts

[MinimalKueue] Add HeapProfile(). (#9759)

Multikueue dev setup: extend SA token expiration time (#9516)

* Update SA setup for MultiKueue dev setup and related doc

* Set SA expiration time to 7d for e2e dev mode

* Set SA expiration time to 7d for e2e dev mode

* Revert "Set SA expiration time to 7d for e2e dev mode"

This reverts commit e9cba59eaa6ead5488d80287f3e40078efaa4cfa.

* Undo Merge branch 'cleanup/mk-dev-setup-sa-token-exp' of https://github.com/polinasand/kueue into cleanup/mk-dev-setup-sa-token-exp

feat: enhance error message for multi-layer topology constraints (#9739)

* feat: enhance error message for multi-layer topology constraints

Add detailed noFit messages for multi-layer TAS topology that report
per-level slice fit counts (e.g., "1/2 slice(s) fit on level block;
3/4 slice(s) fit on rack; 6/8 slice(s) fit on hostname").

* fixup: add UT for enough hostname slices but insufficient rack slices

kueueviz: support hierarchical cohorts with tree view (#9725)

Signed-off-by: samzong <samzong.lu@gmail.com>

feat(kueueviz/backend): drop polling and switch to informers (#8707)

Signed-off-by: Josef Kolář <josef.kolar@firma.seznam.cz>

Add E2E_SKIP_REINSTALL flag that working in E2E_MODE=dev mode, Add KUEUE_DEPLOYMENT_NAME const for controller manager deployment string (#9753)

Optimize gomega.Eventually() for populator. (#9777)

Decouple borrowing state from DRS ratio value (#9738)

* Add IsBorrowing function in DRS to be explicit about borrowing rather than assuming 0 DRS value means borrowing.

* Address review comments

Spell fix.

TAS: Improve scheduling performance by caching nodes (#9712)

* TAS: Improve scheduling performance by caching nodes

* Rename AddOrUpdateNode() to SyncNode().

Self-nominate sohankunkerkar as reviewer (#9776)

Optimize ContextWithLog() to allow use testing.TB. (#9780)

Update pkg/workload/workload.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Added comments to better explain the logic of "AdmissionChecksForWorkload" function.

Spell fix.

Tests update.

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Update pkg/workload/workload_test.go

Co-authored-by: Olek Zabłocki <olekz@google.com>

Move test for clarity.

connection util update

Test fix.

Update cohort metric name (#9787)

Fix NodeHotSwap for multi-layer TAS topology constraints (#9733)

This fixes two issues with NodeHotSwap replacement in multi-layer topology:

1. Domain Selection (requiredReplacementDomain): When multiple slice
   constraints are configured (e.g., [{rack: 8}, {switch: 4}, {hostname: 2}]),
   the code was using only the outermost constraint to find the replacement
   domain. This could place replacements in the wrong sub-domain.

   Fix: Iterate from innermost to outermost constraint and use the first
   (innermost) broken constraint's domain to confine the search.

2. Slice Size (findReplacementAssignment): After clearing
   PodsetSliceRequiredTopologyConstraints, setting PodSetSliceSize alone
   was a dead write because getSliceSizeWithSinglePodAsDefault() requires
   PodSetSliceRequiredTopology to be set. This caused sliceSize=1, scattering
   replacement pods across hosts and violating hostname grouping constraints.

   Fix: Find the innermost satisfied constraint and set both
   PodSetSliceRequiredTopology and PodSetSliceSize to preserve leaf-level
   grouping.

Added test cases:
- 3-layer topology: validates innermost broken domain selection
- 2-layer topology: validates sliceSize prevents scattered placement

chore: Use slices instead of sort (#9781)

Fix missing replica_role=leader metrics after HA role transition (#9487)

test: use Job instead of JobSet in TAS rank ordering case (#9796)

TAS: improve performance of the addNode function. (#9791)

Use gomega.Eventually(func(g gomega.Gomega) pattern. (#9800)

* Use gomega.Eventually(func(g gomega.Gomega) pattern.

* Use wait.Group.

* Ignore conflict error.

feat(visibility): allow visibility server to use custom kubeconfig path (#9619)

* feat(visibility): allow visibility server to use custom kubeconfig path

* docs(visibility): clarify kubeConfig and kubeConfigPath usage in visibility server

* refactor(visibility): streamline kubeConfig handling in visibility server

* refactor(visibility): simplify kubeConfig path retrieval in visibility server

* refactor(visibility): remove redundant comments regarding kubeConfig in visibility server setup

* test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag

* Revert "test(visibility): add unit tests for createVisibilityServerOptions with kubeconfig flag"

This reverts commit a4add98a15f4a581dd70d0aa57b87d7059f3ba85.

* feat(visibility): enable visibility server to utilize custom kubeconfig path

* test(visibility): add e2e tests for visibility server using custom kubeconfig with RBAC

* refactor(visibility): replace waitForDeployment with WaitForKueueAvailabilityNoRestartCountCheck in kubeconfig tests

* test(visibility): enhance clarity in kubeconfig test by adding descriptive step

* test(visibility): enhance RBAC tests for visibility server with custom kubeconfig

* fix(visibility): remove unused visibility import and ensure visibility scheme is added in init

* refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access

* Revert "refactor(visibility): update kubeconfig tests to use unstructured.Unstructured for visibility API access"

This reverts commit c11f57ac5d6c087ce94a7ce20e8c342e4c707b84.

* refactor(visibility): simplify kubeconfig test by removing unused visibility import and updating client usage

* fix(visibility): update cloneControllerRBAC to skip additional roles for SubjectAccessReview permissions

* Fix comments

* chore: remove trailing whitespace in `visibility_kubeconfig_test.go`

* Add TODO for internal server error

* refactor: replace `client.IgnoreAlreadyExists` with `util.MustCreate` for object creation in e2e tests.

* Remove CQ from test

* feat: introduce kubeconfig utility to resolve config and path, and pass the path to the visibility server for authentication and authorization configuration.

* refactor: …
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/bug Categorizes issue or PR as related to a bug. lgtm "Looks good to me", indicates that a PR is ready to be merged. release-note-none Denotes a PR that doesn't merit a release note. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants