docs: document suspend behavior for raycluster/rayservice/rayjob - #8900
Conversation
✅ Deploy Preview for kubernetes-sigs-kueue canceled.
|
|
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)? |
97476c0 to
941c336
Compare
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>
941c336 to
0f33582
Compare
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
left a comment
There was a problem hiding this comment.
Thank you 👍
/lgtm
/approve
/cherrypick website
|
LGTM label has been added. DetailsGit tree hash: 760c859234cb5d68e7a925717784e3372989db89 |
|
[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 DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
| ### 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. |
|
/cherrypick website |
|
@mimowo: new pull request created: #9426 DetailsIn response to this:
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. |
…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>
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…
…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…
…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…
…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…
…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…
…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…
…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: …
…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: …
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
suspendfield 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?