Commit Graph

3012 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
29bf17b6cf Merge pull request #129168 from kannon92/drop-node-features
[KEP-3041] - remove nodefeatures from k/k repo
2025-01-23 12:07:29 -08:00
Kubernetes Prow Robot
4f979c9db8 Merge pull request #129010 from ffromani/e2e-fix-device-plugin-reboot-test
node: e2e: fix device plugin reboot test
2025-01-23 12:07:22 -08:00
Kubernetes Prow Robot
a271299643 Merge pull request #129717 from esotsal/fix-128837
testing: Fix pod delete timeout failures after InPlacePodVerticalScaling Graduate to Beta commit
2025-01-21 15:50:47 -08:00
Kubernetes Prow Robot
0d988d7209 Merge pull request #129619 from ffromani/sig-node-approvers-ffromani
Self-nominating ffromani as approver for sig-node container and resource managers
2025-01-21 15:50:36 -08:00
Kubernetes Prow Robot
3d2ee2fbb7 Merge pull request #129609 from carlory/cleanup-exec-utils
Move some exec helper functions from framework/volume to framework/pod
2025-01-21 09:00:37 -08:00
Sotiris Salloumis
c5fc4193bb Fix pod delete issues in podresize tests 2025-01-21 07:25:14 +01:00
Kevin Hannon
bae4122f56 deprecate nodefeature for feature labels 2025-01-20 17:02:59 -05:00
carlory
8b4eae24ab Move some exec helper functions from framework/volume to framework/pod 2025-01-18 21:42:42 +08:00
Kubernetes Prow Robot
2d0a4f7556 Merge pull request #129166 from kannon92/move-node-features-to-features
[KEP-3041]: deprecate nodefeature for feature labels
2025-01-14 20:02:33 -08:00
Francesco Romani
8221e28e4d Add ffromani as approver for kubelet resource managers and their tests
Signed-off-by: Francesco Romani <fromani@redhat.com>
2025-01-14 13:18:40 +01:00
Kevin Hannon
ca4529574e remove node special feature typos 2024-12-20 16:33:45 -05:00
Kubernetes Prow Robot
4c466d8f98 Merge pull request #129095 from borg-land/cni-bucket-change
fetch cni plugins from GitHub releases
2024-12-18 13:40:08 +01:00
Kevin Hannon
8495df64b2 deprecate nodefeature for feature labels 2024-12-17 13:58:12 -05:00
Kevin Hannon
6a608c3cdb drop NodeSpecialFeature and NodeAlphaFeature from e2e-node 2024-12-16 09:29:04 -05:00
Kubernetes Prow Robot
5cc6f6633f Merge pull request #129070 from zhifei92/fix-typo
e2e_node: Simplify the code logic
2024-12-13 12:24:25 +01:00
Kubernetes Prow Robot
e8615e2712 Merge pull request #129054 from pohly/remove-import-name
remove import doc comments
2024-12-12 09:58:35 +01:00
Kubernetes Prow Robot
c0862c3184 Merge pull request #129105 from carlory/sig-scheduling
scheduling e2e tests: add feature-gate label when these tests depend feature-gate
2024-12-12 06:40:25 +00:00
carlory
060c653b53 scheduling e2e tests: add feature-gate label when these tests depend feature-gate 2024-12-06 17:22:43 +08:00
upodroid
dce863e5e6 fetch cni plugins from GitHub releases 2024-12-05 13:31:35 +03:00
Francesco Romani
29d26297a1 e2e: node: fix misleading device plugin test
We have a e2e test which tries to ensure device plugin assignments to pods are kept
across node reboots. And this tests is permafailing since many weeks at
time of writing (xref: #128443).

Problem is: closer inspection reveals the test was well intentioned, but
puzzling:
The test runs a pod, then restarts the kubelet, then _expects the pod to
end up in admission failure_ and yet _ensure the device assignment is
kept_! https://github.com/kubernetes/kubernetes/blob/v1.32.0-rc.0/test/e2e_node/device_plugin_test.go#L97

A reader can legitmately wonder if this means the device will be kept busy forever?

This is not the case, luckily. The test however embodied the behavior at
time of the kubelet, in turn caused by #103979

Device manager used to record the last admitted pod and forcibly added
to the list of active pod. The retention logic had space for exactly one
pod, the last which attempted admission.

This retention prevented the cleanup code
(see: https://github.com/kubernetes/kubernetes/blob/v1.32.0-rc.0/pkg/kubelet/cm/devicemanager/manager.go#L549
compare to: https://github.com/kubernetes/kubernetes/blob/v1.31.0-rc.0/pkg/kubelet/cm/devicemanager/manager.go#L549)
to clear the registration, so the device was still (mis)reported
allocated to the failed pod.

This fact was in turn leveraged by the test in question:
the test uses the podresources API to learn about the device assignment,
and because of the chain of events above the pod failed admission yet
was still reported as owning the device.

What happened however was the next pod trying admission would have
replaced the previous pod in the device manager data, so the previous
pod was no longer forced to be added into the active list, so its
assignment were correctly cleared once the cleanup code runs;
And the cleanup code is run, among other things, every time device
manager is asked to allocated devices and every time podresources API
queries the device assignment

Later, in PR https://github.com/kubernetes/kubernetes/pull/120661
the forced retention logic was removed from all the resource managers,
thus also from device manager, and this is what caused the permafailure.

Because all of the above, it should be evident that the e2e test was
actually enforcing a very specific and not really work-as-intended
behavior, which was also overall quite puzzling for users.

The best we can do is to fix the test to record and ensure that
pods which did fail admission _do not_ retain device assignment.

Unfortunately, we _cannot_ guarantee the desirable property that
pod going running retain their device assignment across node reboots.

In the kubelet restart flow, all pods race to be admitted. There's no
order enforced between device plugin pods and application pods.
Unless an application pod is lucky enough to _lose_ the race with both
the device plugin (to go running before the app pod does) and _also_
with the kubelet (which needs to set devices healthy before the pod
tries admission).

Signed-off-by: Francesco Romani <fromani@redhat.com>
2024-12-04 17:06:27 +01:00
zhifei92
cb74323e07 refactor: Simplify the code logic. 2024-12-03 20:31:09 +08:00
Patrick Ohly
8a908e0c0b remove import doc comments
The "// import <path>" comment has been superseded by Go modules.
We don't have to remove them, but doing so has some advantages:

- They are used inconsistently, which is confusing.
- We can then also remove the (currently broken) hack/update-vanity-imports.sh.
- Last but not least, it would be a first step towards avoiding the k8s.io domain.

This commit was generated with
   sed -i -e 's;^package \(.*\) // import.*;package \1;' $(git grep -l '^package.*// import' | grep -v 'vendor/')

Everything was included, except for
   package labels // import k8s.io/kubernetes/pkg/util/labels
because that package is marked as "read-only".
2024-12-02 16:59:34 +01:00
HirazawaUi
53e9f29d29 Fix kubelet e2e tests incorrect message 2024-12-01 22:45:29 +08:00
Paco Xu
59dfb0e779 skip if cri proxy is disabled/undefined 2024-11-19 11:17:07 +08:00
Laura Lorenz
9ab0d81d76 Now that sleep is shorter, only expect to reach 3 within 30s
Focused too much on the container restart one in commit that fixed that

Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-13 01:39:58 +00:00
Laura Lorenz
59f9858086 Move function specific to container restart test inline
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-12 23:59:30 +00:00
Laura Lorenz
529d5ba9d3 Don't overly indirect image name
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-12 23:34:57 +00:00
Laura Lorenz
8e7b2af712 Use a better util
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-12 23:30:03 +00:00
Laura Lorenz
285d433dea Clearer image pull test and utils
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-12 23:30:00 +00:00
Laura Lorenz
e03d0f60ef Orient tests to run faster, but tolerate infra slowdowns up to 5 minutes
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-12 21:48:28 +00:00
Laura Lorenz
d293c5088f Fix spelling
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-12 21:12:20 +00:00
Laura Lorenz
1da8ca816e Extract restart number properly
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-12 20:00:11 +00:00
Laura Lorenz
2732d57e33 Missed refactor of container name here
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-12 19:50:11 +00:00
Laura Lorenz
e6059d7386 Fix typecheck and verify
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-12 19:48:38 +00:00
Laura Lorenz
f032068ef7 Focus on restart numbers instead of timing
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-12 07:12:24 +00:00
Laura Lorenz
bad037b505 Formatting
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-12 04:48:10 +00:00
Laura Lorenz
15bae1eadf Add container restart test too
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-12 04:30:46 +00:00
Laura Lorenz
fc4ac5efeb Move image pull backoff test to be with other image pull tests
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-12 01:27:44 +00:00
Laura Lorenz
2479d91f2a Fix test to count pull tries
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-12 01:27:34 +00:00
Laura Lorenz
6ef05dbd01 The idea of how this test should work
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-11 17:55:41 +00:00
Laura Lorenz
6337a28a68 Organize into its own context
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-11 17:55:41 +00:00
Laura Lorenz
f913b7afe8 Adding imagepull backoff test
Signed-off-by: Laura Lorenz <lauralorenz@google.com>
2024-11-11 17:55:41 +00:00
Kubernetes Prow Robot
1dd81aa1c9 Merge pull request #126653 from zhifei92/fix-podstatus
fix the issue of losing the pending phase after a node restart.
2024-11-07 21:06:54 +00:00
Kubernetes Prow Robot
ef37cb503b Merge pull request #128634 from thockin/remove_PodHostIPs_gate_for_1.32
Remove PodHostIPs feature gates
2024-11-07 13:47:54 +00:00
zhifei92
bed96b4eb6 fix: fix the issue of losing the pending phase after a node restart. 2024-11-07 21:10:11 +08:00
Lan Liang
6e5a3cde50 Remove PodHostIPs feature gates.
Signed-off-by: Lan Liang <gcslyp@gmail.com>
2024-11-06 23:10:36 -08:00
Kubernetes Prow Robot
6cc3570466 Merge pull request #128190 from HarshalNeelkamal/external-jwt
Add plugin and key-cache for ExternalJWTSigner integration
2024-11-07 06:29:45 +00:00
Kubernetes Prow Robot
c462d4c8e5 Merge pull request #126096 from utam0k/support-disabling-oom-group-kill
kubelet: new kubelet config option for disabling group oom kill
2024-11-07 06:29:36 +00:00
Harshal Neelkamal
6fdacf0411 Add plugin and key-cache for ExternalJWTSigner integration 2024-11-07 03:16:23 +00:00
utam0k
4f909c14a0 kubelet: new kubelet config option for disabling group oom kill
Signed-off-by: utam0k <k0ma@utam0k.jp>
2024-11-07 12:03:04 +09:00