Commit Graph

1284 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
ab3cec0701 Merge pull request #130447 from pohly/dra-device-taints
device taints and tolerations (KEP 5055)
2025-03-19 13:00:32 -07:00
Jon Huhn
5760a4f282 DRA scheduler: device taints and tolerations
Thanks to the tracker, the plugin sees all taints directly in the device
definition and can compare it against the tolerations of a request while
trying to find a device for the request.

When the feature is turnedd off, taints are ignored during scheduling.
2025-03-19 09:18:38 +01:00
Patrick Ohly
a027b439e5 DRA: add device taint eviction controller
The controller is derived from the node taint eviction controller.
In contrast to that controller it tracks the UID of pods to prevent
deleting the wrong pod when it got replaced.
2025-03-19 09:18:38 +01:00
Kubernetes Prow Robot
4dfed146e0 Merge pull request #130891 from pohly/dra-scheduler-plugin-unit-test-fix
DRA scheduler: fix potential panic during unit test verification
2025-03-18 20:34:16 -07:00
Eddie Torres
c766a52356 Implement KEP 4876 Mutable CSINode (#130007)
* Implement KEP-4876 Mutable CSINode Allocatable Count

Signed-off-by: torredil <torredil@amazon.com>

* Update TestGetNodeAllocatableUpdatePeriod

Signed-off-by: torredil <torredil@amazon.com>

* Implement CSINodeUpdater

Signed-off-by: torredil <torredil@amazon.com>

* Use sync.Once in csiNodeUpdater

Signed-off-by: torredil <torredil@amazon.com>

* ImVerify driver is installed before running periodic updates

Signed-off-by: torredil <torredil@amazon.com>

* Update NodeAllocatableUpdatePeriodSeconds type comment

Signed-off-by: torredil <torredil@amazon.com>

* Leverage apivalidation.ValidateImmutableField in ValidateCSINodeUpdate

Signed-off-by: torredil <torredil@amazon.com>

* Update strategy functions

Signed-off-by: torredil <torredil@amazon.com>

* Run hack/update-openapi-spec.sh

Signed-off-by: torredil <torredil@amazon.com>

* Update VolumeError.ErrorCode field

Signed-off-by: torredil <torredil@amazon.com>

* CSINodeUpdater improvements

Signed-off-by: torredil <torredil@amazon.com>

* Iron out concurrency in syncDriverUpdater

Signed-off-by: torredil <torredil@amazon.com>

* Run hack/update-openapi-spec.sh

Signed-off-by: torredil <torredil@amazon.com>

* Revise logging

Signed-off-by: torredil <torredil@amazon.com>

* Revise log in VerifyExhaustedResource

Signed-off-by: torredil <torredil@amazon.com>

* Update API validation

Signed-off-by: torredil <torredil@amazon.com>

* Add more code coverage

Signed-off-by: torredil <torredil@amazon.com>

* Fix pull-kubernetes-linter-hints

Signed-off-by: torredil <torredil@amazon.com>

* Update API types documentation

Signed-off-by: torredil <torredil@amazon.com>

* Update strategy and validation for new errorCode field

Signed-off-by: torredil <torredil@amazon.com>

* Update validation tests after strategy changes

Signed-off-by: torredil <torredil@amazon.com>

* Update VA status strategy

Signed-off-by: torredil <torredil@amazon.com>

---------

Signed-off-by: torredil <torredil@amazon.com>
2025-03-18 12:45:49 -07:00
Patrick Ohly
d95d6ba526 DRA scheduler: fix potential panic during unit test verification
If there was an unexpected status, the code extracting the expected error
message crashed with a panic. Happened once so far, for unknown reasons
because the unexpected status then didn't get logged.
2025-03-18 15:07:51 +01:00
Yuma Ogami
bc74476bdb Remove VolumeCapacityPriority feature gate 2025-03-17 00:49:58 +00:00
Yuma Ogami
43382b1b39 Switch control from VolumeCapacityPriority to StorageCapacityScoring
The tests and comments have also been updated because while
VolumeCapacityPriority preferred a node with the least allocatable,
StorageCapacityScoring preferred a node with the maximum allocatable.
2025-03-17 00:49:58 +00:00
bells17
f6ddee95f9 Add storage capacity scoring to VolumeBinding plugin 2025-03-17 00:49:58 +00:00
carlory
aab7a079fa make each scheduler test independent
Signed-off-by: carlory <baofa.fan@daocloud.io>
2025-03-13 14:39:50 +08:00
dom4ha
4deb4f2b5f Trigger rescheduling on delete event also when unscheduled pod is removed 2025-03-10 15:03:50 +00:00
Kubernetes Prow Robot
4806519423 Merge pull request #130622 from pohly/DRAPrioritizedList
DRA: Prioritized Alternatives in Device Requests, II
2025-03-10 06:51:51 -07:00
Kubernetes Prow Robot
c7088e6437 Merge pull request #130260 from Bowser1704/fix/skip-best-effort-pods
fix(scheduler): skip best-effort pods in BalancedAllocation PreScore
2025-03-07 01:11:45 -08:00
Patrick Ohly
dfb8ab6521 DRA scheduler: fail in PreFilter when DRAPrioritizedList is disabled and used
This was previously caught during Filter by the allocator check. Doing it
sooner avoids wasting resources on a pod which ultimately cannot get scheduled.

While at it, be a bit more clear about which feature is disabled. The user
might not know that.
2025-03-07 08:45:32 +01:00
Hongqi Yu
d76f40d2f3 fix(scheduler): skip best-effort pods in BalancedAllocation PreScore
- Refactored `PreScore` method in `balanced_allocation.go` to skip
  best-effort pods.
- Updated unit tests in `balanced_allocation_test.go` to check for
  the new status codes.
2025-03-07 13:13:02 +08:00
Kubernetes Prow Robot
9d45ea8b9d Merge pull request #128586 from mortent/DRAPrioritizedList
Prioritized Alternatives in Device Requests
2025-03-06 21:01:44 -08:00
Kubernetes Prow Robot
0f7becbc44 Merge pull request #130537 from saintube/scheduler-expose-nodeinfo-in-score
Expose NodeInfo to the ScorePlugin
2025-03-06 06:53:55 -08:00
saintube
afb4e96510 Expose NodeInfo to Score plugins
Co-authored-by: shenxin <rougang.hrg@alibaba-inc.com>
Signed-off-by: saintube <saintube@foxmail.com>
2025-03-04 17:57:14 +08:00
Kubernetes Prow Robot
58704903c5 Merge pull request #129887 from rhrmo/STOR-2270-make-failedscheduling-event-more-intuitive
Change volume affinity scheduling error message to be more intuitive
2025-03-03 22:51:48 -08:00
Richard Hrmo
526960f988 Change FailedScheduling Event message to be more intuitive 2025-03-03 16:56:18 +01:00
Morten Torkildsen
2229a78dfe DRA: Update allocator for Prioritized Alternatives in Device Requests 2025-02-28 19:30:10 +00:00
Kubernetes Prow Robot
b8c95e1954 Merge pull request #129688 from cpanato/update-main-go124
[go] Bump images, dependencies and versions to go 1.24.0
2025-02-27 09:10:30 -08:00
Kubernetes Prow Robot
facb1a8c55 Merge pull request #129905 from ania-borowiec/129778_replace_equal
Replace reflect.DeepEqual with cmp.Diff in pkg/scheduler tests
2025-02-26 08:24:30 -08:00
googs1025
239aad8e4b chore(scheduler): use framework.Features in scheduler plugins 2025-02-26 19:16:07 +08:00
Jordan Liggitt
8090db5dcf Switch to private instances of rand for seeding for tests 2025-02-26 11:27:10 +01:00
Ania Borowiec
4205f04ce3 Replace uses of reflect.DeepEqual with cmp.Diff in pkg/scheduler tests 2025-02-26 09:27:51 +00:00
Kubernetes Prow Robot
4032177faf Merge pull request #129557 from googs1025/feature/add_QueueingHint_for_VolumeAttachment_deletion_events
feature(scheduler): add queueinghint for volumeattachment deletion
2025-02-22 00:10:26 -08:00
googs1025
86f504284c feature(scheduler): add queueinghint for volumeattachment deletion 2025-02-22 14:57:41 +08:00
googs1025
004c5f5a39 chore: remove unnecessary check for node is zero 2025-02-18 10:24:26 +08:00
Kubernetes Prow Robot
fc268ecd09 Merge pull request #129823 from googs1025/chore/log_improve
fix(dra plugin): when there is no resourceclaim, return directly
2025-02-02 16:28:56 -08:00
googs1025
ed826dddfe fix(dra plugin): when there is no resourceclaim, return directly 2025-01-29 08:47:52 +08:00
Davanum Srinivas
4e05bc20db Linter to ensure go-cmp/cmp is used ONLY in tests
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-01-24 20:49:14 -05:00
Kubernetes Prow Robot
2056dbca18 Merge pull request #129697 from saza-ku/remove-pvc-not-found
chore: remove duplicated test case of `pvc not found`
2025-01-24 09:35:21 -08:00
googs1025
27ec5de863 chore(scheduler): improve log output for podtopologyspread filter plugin 2025-01-24 19:29:23 +08:00
saza-ku
e26fb1c393 remove duplicated test case of pvc not found 2025-01-20 01:52:35 +09:00
Kubernetes Prow Robot
0b789d7cca Merge pull request #129427 from macsko/improve_map_in_interpodaffinity_prefilter
Improve topologyToMatchedTermCount map in InterPodAffinity PreFilter
2025-01-10 10:40:33 -08:00
Maciej Skoczeń
2d82687114 Improve topologyToMatchedTermCount map in InterPodAffinity PreFilter 2025-01-10 10:55:49 +00:00
Paco Xu
2653caa248 fix dra test lint 2025-01-09 10:42:40 +08:00
googs1025
77eae7c34f feature(scheduler): remove dra plugin resourceslice QueueingHintFn 2025-01-08 16:24:28 +08:00
Kubernetes Prow Robot
1c2b2cce10 Merge pull request #129119 from macsko/fix_podtopologyspread_for_multiple_constraints_with_the_same_key
Fix PodTopologySpread matching pods counts for constraints with the same topologyKey
2025-01-01 11:04:14 +01:00
Maciej Skoczeń
c3a54926a4 Fix PodTopologySpread matching pods counts for constraints with the same topologyKey 2024-12-30 09:35:24 +00:00
Kubernetes Prow Robot
078664b424 Merge pull request #129023 from zhifei92/cleanup-actiontype
scheduler:  Rename UpdatePodTolerations for code style consistency
2024-12-12 05:28:52 +00:00
zhifei92
27608fa25d refactor(scheduler): Rename UpdatePodTolerations for code style consistency. 2024-11-29 13:13:09 +08:00
googs1025
c725e18e07 feature(scheduler): more fine-grained QHints for interpodaffinity plugin 2024-11-14 20:00:38 +08:00
ndixita
6db40446de Scheduler changes:
1. Use pod-level resource when feature is enabled and resources are set at pod-level
2. Edge case handling: When a pod defines only CPU or memory limits at pod-level (but not both), and container-level requests/limits are unset, the pod-level requests stay empty for the resource without a pod-limit. The container's request for that resource is then set to the default request value from schedutil.
2024-11-08 03:00:54 +00:00
Kensei Nakada
d4d91d4ace fix: use set methods 2024-11-07 14:09:35 +09:00
Kensei Nakada
a95b8b5085 fix: use Activate always 2024-11-07 14:09:35 +09:00
Kensei Nakada
677792663f fix: register Pod/Delete event at the preemption plugin 2024-11-07 14:09:35 +09:00
Kensei Nakada
fe3119fa69 make sure DefaultPreemption implements PreEnqueuePlugin 2024-11-07 14:09:35 +09:00
Kensei Nakada
69a8d0ec0b feature(KEP-4832): asynchronous preemption 2024-11-07 14:09:34 +09:00