Commit Graph

856 Commits

Author SHA1 Message Date
Antoni Zawodny
833b7205fc Run PreBind plugins in parallel if feasible 2026-01-11 14:19:18 +01:00
Patrick Ohly
f758d0850b scheduler: plugin test DATA RACE fix
Reading numPreFilterCalled races with writing it in the scheduler, at least as
far as the data race detector is concerned. That the test waits for pod
scheduling is too indirect. enqueuePlugin.called has the same problem,
but hasn't triggered the race detector (yet).

We need to protect against concurrent access. The easiest way to enforce that
is via atomic.Int64. In contrast to a mutex it is impossible to use it wrong.

Shutting down the scheduler first was also tried, but didn't work out because
"teardown" does more than just stopping the scheduler, it also cancels a
context that is needed during test shutdown.
2025-12-23 19:13:53 +01:00
Bartosz
d6d8639349 Fix queue hint for interpod antiaffinity 2025-12-16 13:01:15 +00:00
bwsalmon
854e67bb51 KEP 5598: Opportunistic Batching (#135231)
* First version of batching w/out signatures.

* First version of pod signatures.

* Integrate batching with signatures.

* Fix merge conflicts.

* Fixes from self-review.

* Test fixes.

* Fix a bug that limited batches to size 2
Also add some new high-level logging and
simplify the pod affinity signature.

* Re-enable batching on perf tests for now.

* fwk.NewStatus(fwk.Success)

* Review feedback.

* Review feedback.

* Comment fix.

* Two plugin specific unit tests.:

* Add cycle state to the sign call, apply to topo spread.
Also add unit tests for several plugi signature
calls.

* Review feedback.

* Switch to distinct stats for hint and store calls.

* Switch signature from string to []byte

* Revert cyclestate in signs. Update node affinity.
Node affinity now sorts all of the various
nested arrays in the structure. CycleState no
longer in signature; revert to signing fewer
cases for pod spread.

* hack/update-vendor.sh

* Disable signatures when extenders are configured.

* Update pkg/scheduler/framework/runtime/batch.go

Co-authored-by: Maciej Skoczeń <87243939+macsko@users.noreply.github.com>

* Update staging/src/k8s.io/kube-scheduler/framework/interface.go

Co-authored-by: Maciej Skoczeń <87243939+macsko@users.noreply.github.com>

* Review feedback.

* Disable node resource signatures when extended DRA enabled.

* Review feedback.

* Update pkg/scheduler/framework/plugins/imagelocality/image_locality.go

Co-authored-by: Maciej Skoczeń <87243939+macsko@users.noreply.github.com>

* Update pkg/scheduler/framework/interface.go

Co-authored-by: Maciej Skoczeń <87243939+macsko@users.noreply.github.com>

* Update pkg/scheduler/framework/plugins/nodedeclaredfeatures/nodedeclaredfeatures.go

Co-authored-by: Maciej Skoczeń <87243939+macsko@users.noreply.github.com>

* Update pkg/scheduler/framework/runtime/batch.go

Co-authored-by: Maciej Skoczeń <87243939+macsko@users.noreply.github.com>

* Review feedback.

* Fixes for review suggestions.

* Add integration tests.

* Linter fixes, test fix.

* Whitespace fix.

* Remove broken test.

* Unschedulable test.

* Remove go.mod changes.

---------

Co-authored-by: Maciej Skoczeń <87243939+macsko@users.noreply.github.com>
2025-11-12 21:51:37 -08:00
Heba
aceb89debc KEP-5471: Extend tolerations operators (#134665)
* Add numeric operations to tolerations

Signed-off-by: Heba Elayoty <heelayot@microsoft.com>

* code review feedback

Signed-off-by: Heba Elayoty <heelayot@microsoft.com>

* add default feature gate

Signed-off-by: Heba Elayoty <heelayot@microsoft.com>

* Add integration tests

Signed-off-by: Heba Elayoty <heelayot@microsoft.com>

* Add toleration value validation

Signed-off-by: Heba Elayoty <heelayot@microsoft.com>

* Add validate options for new operators

Signed-off-by: helayoty <heelayot@microsoft.com>

* Remove log

Signed-off-by: helayoty <heelayot@microsoft.com>

* Update feature gate check

Signed-off-by: helayoty <heelayot@microsoft.com>

* emove IsValidNumericString func

Signed-off-by: helayoty <heelayot@microsoft.com>

* Implement IsDecimalInteger

Signed-off-by: helayoty <heelayot@microsoft.com>

* code review feedback

Signed-off-by: helayoty <heelayot@microsoft.com>

* Add logs to v1/toleration

Signed-off-by: Heba Elayoty <heelayot@microsoft.com>
Signed-off-by: helayoty <heelayot@microsoft.com>

* Update integration tests and address code review feedback

Signed-off-by: helayoty <heelayot@microsoft.com>

* Add feature gate to the scheduler framework

Signed-off-by: helayoty <heelayot@microsoft.com>

* Remove extra test

Signed-off-by: helayoty <heelayot@microsoft.com>

* Fix integration test

Signed-off-by: helayoty <heelayot@microsoft.com>

* pass feature gate via TolerationsTolerateTaint

Signed-off-by: helayoty <heelayot@microsoft.com>

---------

Signed-off-by: Heba Elayoty <heelayot@microsoft.com>
Signed-off-by: helayoty <heelayot@microsoft.com>
2025-11-10 12:42:54 -08:00
Ania Borowiec
e88aa1e04d Integration tests for setting and clearing NominatedNodeName 2025-11-07 10:42:43 +00:00
Maciej Skoczeń
049cb8558e Add integration test for gang scheduling 2025-11-06 10:47:30 +00:00
Maciej Skoczeń
c086bdeaa2 Add integration tests for gang queueing 2025-11-06 10:47:30 +00:00
Praveen Krishna
c06297b329 Add integration test for kube-scheduler plugin. 2025-11-06 01:21:17 +00:00
Kubernetes Prow Robot
738475f9e2 Merge pull request #134991 from yliaog/class_events
added device class add/update events to noderesources plugin when DRAExtendedResource feature is enabled
2025-11-05 14:16:51 -08:00
Kubernetes Prow Robot
5fd9cefd95 Merge pull request #134995 from yongruilin/flagz-kk-structure
[KEP-4828] Flagz versioned structured response
2025-11-04 19:02:04 -08:00
yongruilin
09dfeeb988 test: add integration test for /flagz endpoint in scheduler 2025-11-04 19:45:32 +00:00
yliao
a181fd2eb8 removed NodeAffinity in the test cases as it is not needed 2025-11-04 18:55:41 +00:00
yliao
372328f281 reverted the inititial device class change 2025-11-04 16:43:40 +00:00
yliao
2e479e00f4 refactored the hint function, added test cases 2025-11-04 16:31:57 +00:00
Kubernetes Prow Robot
f09cd625bc Merge pull request #135007 from ania-borowiec/nnn_code_update
KEP-5278 Bring back clearing NominatedNodeName after scheduling or binding failure
2025-11-04 07:14:24 -08:00
Ania Borowiec
191ab8d78d Integration test verifying that in case a preemptor pod with higher priority arrives while preemption is ongoing, the lower priority preemptor does not get stuck in unschedulable 2025-11-04 11:57:39 +00:00
Ania Borowiec
9640da5452 Verify if pod has ongoing async preemption before evicting pods 2025-11-04 11:57:34 +00:00
Ania Borowiec
c98804b77f Fix existing integration tests for NominatedNodeName 2025-11-04 09:45:50 +00:00
yliao
14f17a3809 addressed review feedback 2025-11-03 22:53:27 +00:00
yliao
b609d4713c added integration test case 2025-11-03 21:27:41 +00:00
Kubernetes Prow Robot
462c869354 Merge pull request #134326 from sairameshv/global_cache_dra
Add global cache to map between the deviceclass and the extended resource
2025-11-03 10:40:06 -08:00
yliao
3eab698884 fixed unit test and integration test failures
Fix minor nits

Signed-off-by: Sai Ramesh Vanka <svanka@redhat.com>
2025-11-03 20:07:01 +05:30
Kubernetes Prow Robot
4e5220939e Merge pull request #134927 from macsko/dont_delete_pods_with_deletiontimestamp
Don't preempt pods with DeletionTimestamp set
2025-11-03 06:02:14 -08:00
Sai Ramesh Vanka
d8c66ffb63 Add a global cache to support DRA's extended resource to the device
class mapping

- Add a new interface "DeviceClassResolver" in the scheduler framework
- Add a global cache of mapping between the extended resource and the
  device class
- Cache can be leveraged by the k8s api-server, controller-manager along with the scheduler
- This change helps in delegating the requests to the dynamicresource
  plugin based on the mapping during the node update events and thus
avoiding an extra scheduling cycle

Signed-off-by: Sai Ramesh Vanka <svanka@redhat.com>
2025-11-03 12:31:16 +05:30
Richa Banker
c1a95eb7e2 Structured statusz 2025-10-30 10:39:52 -07:00
Maciej Skoczeń
b29fdd1551 Forget pod from scheduler's cache immediately when it's deleted or has DeletionTimestamp set 2025-10-29 10:00:38 +00:00
Maciej Skoczeń
a42581c7d3 Don't preempt pods with DeletionTimestamp set 2025-10-29 09:05:24 +00:00
Siyuan Zhang
70ac573619 adopt consistent way to set feature gate based on emulation version for kcm and scheduler test server.
Signed-off-by: Siyuan Zhang <sizhang@google.com>
2025-10-22 13:20:30 -05:00
Kubernetes Prow Robot
db63a581ca Merge pull request #134366 from tallclair/feature-gates-test
Set multiple feature gates simultaneously in test
2025-10-13 13:11:33 -07:00
Ania Borowiec
7c59672213 Fix in code and integration test that verifies that when victim pod is stuck in binding, preemptor pod remains waiting in unschedulable queue until deletion of the victim pod is completed 2025-10-03 09:42:50 +00:00
Tim Allclair
4986abe0b8 Automated refactoring to use SetFeatureGatesDuringTest 2025-10-01 21:10:53 -07:00
Maciej Skoczeń
d2e6be440c Revert "Merge pull request #133213 from sanposhiho/second-trial-conor"
This reverts commit a2bf45b081, reversing
changes made to 2b2ea27250.
2025-09-24 11:05:16 +00:00
Maciej Skoczeń
3dfcda9afd Fix minor inconsistencies in scheduler 2025-09-10 11:40:10 +00:00
Kubernetes Prow Robot
08946ca255 Merge pull request #132606 from Peac36/fix/132539
add paths section to scheduler statusz endpoint
2025-09-08 07:39:31 -07:00
Nikola
b42b96f518 add paths section to scheduler statusz endpoint
Signed-off-by: Nikola <peac36@abv.bg>
2025-09-08 13:13:42 +03:00
Ania Borowiec
fadb40199f Move interfaces: Handle and Plugin and related types from kubernetes/kubernetes to staging repo kube-scheduler 2025-09-02 09:42:53 +00:00
Kubernetes Prow Robot
5fb3296920 Merge pull request #132451 from macsko/fix_race_in_scheduler_integration_tests
Fix race in scheduler integration tests
2025-08-31 05:03:09 -07:00
Kubernetes Prow Robot
f0ee0ddc55 Merge pull request #133703 from macsko/fix_flaking_readyz_check_integration
Fix flaking readyz check in scheduler TestEndpointHandlers
2025-08-27 20:24:35 -07:00
Maciej Skoczeń
1c336e3fc6 Fix flaking readyz check in scheduler integration tests 2025-08-26 10:28:47 +00:00
Maciej Skoczeń
dc0343c2f7 Split preemption integration tests to mitigate the timeout 2025-08-06 08:59:15 +00:00
Maciej Skoczeń
aa59f930b3 Add lock to TestAsyncPreemption to prevent races 2025-08-05 09:43:12 +00:00
Kubernetes Prow Robot
9e2a0c7453 Merge pull request #133293 from utam0k/kep-5278--fg-alpha
Demote KEP-5278 feature gates ClearingNominatedNodeNameAfterBinding and NominatedNodeNameForExpectation to Alpha
2025-07-31 02:37:16 -07:00
Maciej Skoczeń
c7db6362fe Move NominatedNodeName preemption-related integration tests to a new package 2025-07-30 10:47:38 +00:00
utam0k
988c9b03fd Demote KEP-5278 feature gates ClearingNominatedNodeNameAfterBinding and NominatedNodeNameForExpectation to Alpha
Signed-off-by: utam0k <k0ma@utam0k.jp>
2025-07-30 15:48:26 +09:00
Kubernetes Prow Robot
1b273b385e Merge pull request #130653 from yliaog/master
kubelet and scheduler for extended resource backed by DRA
2025-07-29 13:04:27 -07:00
yliao
23d6f73e72 extended resource backed by DRA: test 2025-07-29 18:55:28 +00:00
Kubernetes Prow Robot
74f7a44966 Merge pull request #133276 from macsko/stop_clearing_nnn_in_all_cases
KEP-5278 Stop clearing NominatedNodeName in all cases
2025-07-29 11:24:40 -07:00
Kubernetes Prow Robot
fd3c879a5b Merge pull request #132443 from utam0k/clearn-nnn-bind-api
Clear pod.Status.NominatedNodeName when pod is bound
2025-07-29 10:12:26 -07:00
utam0k
60fa65db88 Clear pod.Status.NominatedNodeName when pod is bound
Signed-off-by: utam0k <k0ma@utam0k.jp>
2025-07-29 23:48:11 +09:00