Commit Graph

538 Commits

Author SHA1 Message Date
Jan Chaloupka
cc5ec714c1 fix(SchedulerPreemption/Async): schedule all medium priority pods first so all low priority pods can be preempted
If not all medium priority pods are allowed to preempt low priority pods
first the high priority pods may occupy the low priority spot and
disallow medium priority pods to preempt all low priority pods. Thus
leaving some low priority pods without a DeletionTimestamp field set and
failing the "Check all low priority pods to be about to preempted."
check.
2025-11-20 17:03:23 +01:00
Maciej Skoczeń
54b6ab6747 e2e: Add tests for Workload API 2025-11-06 09:36:45 +00:00
Michael Aspinwall
84f85712be feat: Add matcher and conformance tests ensuring that RV is uint128 2025-10-01 00:01:50 +00:00
Michael Aspinwall
7c24e62d7c Add additional types for resource version comparison testing 2025-09-30 17:16:07 +00:00
Michael Aspinwall
37fcfcd29e feat: Add conformance tests for all resources for comparable resource version 2025-09-29 23:32:07 +00:00
ChengHao Yang
029d314e15 Replace NewIndexerInformerWatcher with NewIndexerInformerWatcherWithLogger
Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2025-09-12 01:44:02 +08:00
Jan Chaloupka
9fd545bcc4 [sig-scheduling] SchedulerPreemption [Serial] validates various priority Pods preempt expectedly with the async preemption: replace finalizers with preStop hook and TerminationGracePeriodSeconds
Finalizers do not work as expected when an informer with a field
selector is used. Any time a pod changing its state gets excluded by the
field selector a synthetic delete event is issues even though the pod
with a finalizer set is still present. Thus, making the scheduler
schedule the high and medium priority pods before any of the low
priority pod finalizers is removed. Instead, rely on preStop hook and
TerminationGracePeriodSeconds to keep all low priority pods long enough
included by the field selector so all high priority pods can set their
.status.nominatedNodeName field.

Also, update the check for how many medium priority pods are expected to
be scheduled. Each node can accept 10 pods of the given extended
resources. Given there's 5 high priority created per node, there's
always 5 times number of nodes spots left for the medium priority pods.
2025-05-13 15:06:04 +02:00
Elizabeth Martin Campos
4724870b97 test: remove implicit inclusion of "name" label in utils functions 2025-02-13 12:48:30 +01:00
carlory
060c653b53 scheduling e2e tests: add feature-gate label when these tests depend feature-gate 2024-12-06 17:22:43 +08:00
Kensei Nakada
9756a648b0 fix: move to a new way updating an extended resource 2024-11-07 14:09:35 +09:00
Kensei Nakada
ac5aacc5f6 fix: address reviews on e2e 2024-11-07 14:09:35 +09:00
Kensei Nakada
08e8403e2e feat: add the e2e test for the async preemption 2024-11-07 14:09:34 +09:00
Anish Shah
73f7c1908a test: refactor logic to add/remove extended resources 2024-10-18 16:53:52 -07:00
AxeZhan
8b15843d00 remove unused GetNonzeroRequests function 2024-10-10 23:52:25 +08:00
Kubernetes Prow Robot
75214d11d5 Merge pull request #127428 from googs1025/scheduler/plugin
chore(scheduler): refactor import package ordering in scheduler
2024-09-25 11:40:07 +01:00
Abhishek Kr Srivastav
95860cff1c Fix Go vet errors for master golang
Co-authored-by: Rajalakshmi-Girish <rajalakshmi.girish1@ibm.com>
Co-authored-by: Abhishek Kr Srivastav <Abhishek.kr.srivastav@ibm.com>
2024-09-20 12:36:38 +05:30
googs1025
69831b0043 chore(scheduler): refactor import package ordering 2024-09-18 20:31:03 +08:00
Michal Wozniak
25d938b481 Promote JobPodFailurePolicy and PodDisruptionConditions e2e tests to Conformance 2024-07-17 18:13:08 +02:00
Matthieu MOREL
7bccbaf996 fix: enable and fixes rules from testifylint on test package
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2024-06-30 05:44:47 +00:00
Davanum Srinivas
bf268f02a3 Remove gcp in-tree cloud provider and credential provider
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2024-05-01 09:03:53 -04:00
joey
cc19b33a95 add e2e test when a plugin (in-tree or out-of-tree) return non-existent/illegal nodes, the pod should be scheduled normally if suitable nodes exists
Signed-off-by: joey <zchengjoey@gmail.com>
2024-04-27 09:43:23 +08:00
huweiwen
6ec421e2cf test/e2e: do not use global variable for image
We have "-kube-test-repo-list" command line flag to override the image registry. If we store it in global variable, then that overriding cannot take effect.

And this can cause puzzling bugs, e.g.: containerIsUnused() function will compare incorrect image address.
2024-04-22 19:29:39 +08:00
Matt Karrmann
bcf42255bb Refactor and simplify WaitForPodsRunningReady; update callers to use new interface 2024-04-17 23:18:26 -05:00
Davanum Srinivas
ee64b30d05 Check taints as well for control-plane
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2024-03-08 07:17:21 -05:00
Davanum Srinivas
b1341c8795 Revert portion of the GPU testcase
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2024-03-07 12:39:04 -05:00
Davanum Srinivas
30857658e4 Adjust GPU test to work with latest nvidia daemonset
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2024-03-06 21:42:21 -05:00
Davanum Srinivas
7a236bd7e0 Add providerless tags appropriately in test/
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2024-01-07 08:16:05 -05:00
Patrick Ohly
f9ceab37ca e2e: pass context into pod helper functions
This ensures that progress reports and timeouts work.
2023-11-14 15:57:55 +01:00
Patrick Ohly
f2cfbf44b1 e2e: use framework labels
This changes the text registration so that tags for which the framework has a
dedicated API (features, feature gates, slow, serial, etc.) those APIs are
used.

Arbitrary, custom tags are still left in place for now.
2023-11-01 15:17:34 +01:00
penguin
82c0cbf6d8 e2e: stop using deprecated framework.ExpectNotEqual 2023-10-20 09:18:31 +08:00
Kubernetes Prow Robot
952a9cb060 Merge pull request #121174 from carlory/fix-120770
fix limitrange flaky test
2023-10-16 22:27:00 +02:00
carlory
a34d2f3b13 fix limitrange flaky test 2023-10-13 11:46:05 +08:00
Patrick Ohly
f2d34426f8 e2e: enhance SIGDescribe
framework.SIGDescribe is better because:
- Ginkgo uses the source code location of the test, not of the wrapper,
  when reporting progress.
- Additional annotations can be passed.

To make this a drop-in replacement, framework.SIGDescribe generates a function
that can be used instead of the former SIGDescribe functions.

windows.SIGDescribe contained some additional code to ensure that tests are
skipped when not running with a suitable node OS. This gets moved into a
separate wrapper generator, to allow using framework.SIGDescribe as intended.
To ensure that all callers were modified, the windows.sigDescribe isn't
exported anymore (wasn't necessary in the first place!).
2023-10-10 18:15:49 +02:00
Patrick Ohly
0e8a1f1816 e2e: remove redundant spaces in test names
The spaces are redundant because Ginkgo will add them itself when concatenating
the different test name components. Upcoming change in the framework will
enforce that there are no such redundant spaces.
2023-09-29 08:30:57 +02:00
Rei1010
f1051f34a7 Remove deprecated framework 2023-09-01 17:39:37 +08:00
SataQiu
5524f1651a using wait.PollUntilContextTimeout instead of deprecated wait.Poll/PollWithContext/PollImmediate/PollImmediateWithContext methods for scheduler 2023-08-24 18:35:59 +08:00
SataQiu
ef7d404702 using wait.PollUntilContextTimeout instead of deprecated wait.Poll for pkg/scheduler
using wait.PollUntilContextTimeout instead of deprecated wait.Poll for test/integration/scheduler

using wait.PollUntilContextTimeout instead of deprecated wait.Poll for test/e2e/scheduling

using wait.ConditionWithContextFunc for PodScheduled/PodIsGettingEvicted/PodScheduledIn/PodUnschedulable/PodSchedulingError
2023-08-17 17:25:09 +08:00
Kubernetes Prow Robot
de8c36cb56 Merge pull request #119502 from Songjoy/cleanup-e2e-scheduling-framework-equal
e2e_scheduling: stop using deprecated framework.ExpectEqual
2023-08-15 19:42:43 -07:00
Kubernetes Prow Robot
67c33faddd Merge pull request #117631 from skitt/intstr-fromint32-testing
Test: use new intstr functions
2023-08-15 15:16:27 -07:00
宋文杰
e9b69d1958 e2e_scheduling: stop using deprecated framework.ExpectEqual 2023-07-21 17:35:16 +08:00
Maciej Szulik
9dcc57ede6 Stop using deprecated API 2023-07-05 16:42:55 +02:00
Stanislav Laznicka
7f532891c9 e2e tests: set all PSa labels instead of just enforcing 2023-06-21 15:05:13 +02:00
Stephen Kitt
3418ceaca6 test: replace intstr.FromInt with intstr.FromInt32
This touches cases where FromInt() is used on numeric constants, or
values which are already int32s, or int variables which are defined
close by and can be changed to int32s with little impact.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2023-05-10 09:34:16 +02:00
sarab
8d18ae6fc2 Use the generic Set in scheduler 2023-04-09 11:34:17 +05:30
Wei Huang
72863f65d6 Graduate PodSchedulingReadiness to beta 2023-02-17 18:45:20 -08:00
Patrick Ohly
136f89dfc5 e2e: use error wrapping with %w
The recently introduced failure handling in ExpectNoError depends on error
wrapping: if an error prefix gets added with `fmt.Errorf("foo: %v", err)`, then
ExpectNoError cannot detect that the root cause is an assertion failure and
then will add another useless "unexpected error" prefix and will not dump the
additional failure information (currently the backtrace inside the E2E
framework).

Instead of manually deciding on a case-by-case basis where %w is needed, all
error wrapping was updated automatically with

    sed -i "s/fmt.Errorf\(.*\): '*\(%s\|%v\)'*\",\(.* err)\)/fmt.Errorf\1: %w\",\3/" $(git grep -l 'fmt.Errorf' test/e2e*)

This may be unnecessary in some cases, but it's not wrong.
2023-02-06 15:39:13 +01:00
Patrick Ohly
4d63e7d4d6 e2e: remove unused label filter from WaitForPodsRunningReady
None of the users of the functions passed anything other than nil or an empty
map and the implementation ignore the parameter - it seems like a candidate for
simplification.
2023-02-06 15:39:12 +01:00
Antonio Ojea
7f5ae1c0c1 Revert "e2e: wait for pods with gomega" 2023-02-06 12:08:22 +01:00
Kubernetes Prow Robot
85aa0057c6 Merge pull request #113298 from pohly/e2e-wait-for-pods-with-gomega
e2e: wait for pods with gomega
2023-02-04 05:26:29 -08:00
Patrick Ohly
222f655062 e2e: use error wrapping with %w
The recently introduced failure handling in ExpectNoError depends on error
wrapping: if an error prefix gets added with `fmt.Errorf("foo: %v", err)`, then
ExpectNoError cannot detect that the root cause is an assertion failure and
then will add another useless "unexpected error" prefix and will not dump the
additional failure information (currently the backtrace inside the E2E
framework).

Instead of manually deciding on a case-by-case basis where %w is needed, all
error wrapping was updated automatically with

    sed -i "s/fmt.Errorf\(.*\): '*\(%s\|%v\)'*\",\(.* err)\)/fmt.Errorf\1: %w\",\3/" $(git grep -l 'fmt.Errorf' test/e2e*)

This may be unnecessary in some cases, but it's not wrong.
2023-01-31 13:01:39 +01:00