Commit Graph

23166 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
d1289c72c1 Merge pull request #117719 from swatisehgal/devicemgr-recovery-1.27
[1.27] node: device-mgr: Fix recovery flow by ensuring healthy devices exist and pre-allocated devices are healthy
2023-05-11 11:53:05 -07:00
Kubernetes Prow Robot
1c7dc1a184 Merge pull request #117773 from xmudrii/go1204-127
[release-1.27] releng/go: Update images, dependencies and version to Go 1.20.4
2023-05-04 07:24:42 -07:00
Kubernetes Prow Robot
3f2a1f84ff Merge pull request #117246 from gnufied/automated-cherry-pick-of-#117216-upstream-release-1.27
Automated cherry pick of #117216: Fix azure disk e2e after migration
2023-05-04 03:14:42 -07:00
Marko Mudrinić
3324649c1c releng/go: Update images, dependencies and version to Go 1.20.4
Signed-off-by: Marko Mudrinić <mudrinic.mare@gmail.com>
2023-05-04 10:47:48 +02:00
Swati Sehgal
940b6892a1 node: device-plugin: e2e: Additional test cases
Additional test cases added:
Keeps device plugin assignments across pod and kubelet restarts (no device plugin re-registration)
Keeps device plugin assignments after the device plugin has re-registered (no kubelet or pod restart)

Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
2023-05-02 11:23:32 +01:00
Swati Sehgal
4cf566e32e node: device-plugin: add node reboot test scenario
Add a test suit to simulate node reboot (achieved by removing pods
using CRI API before kubelet is restarted).

Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
2023-05-02 11:23:31 +01:00
Swati Sehgal
d67481c478 node: device-plugin: e2e: Capture pod admission failure
This test captures that scenario where after kubelet restart,
application pod comes up and the device plugin pod hasn't re-registered
itself, the pod fails with admission error. It is worth noting that
once the device plugin pod has registered itself, another
application pod requesting devices ends up running
successfully.

For the test case where kubelet is restarted and device plugin
has re-registered without involving pod restart, since the
pod after kubelet restart ends up with admission error,
we cannot be certain the device that the second pod (pod2) would
get. As long as, it gets a device we consider the test to pass.

Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
2023-05-02 11:23:31 +01:00
Swati Sehgal
6f5e29e26c node: device-mgr: e2e: adapt to sample device plugin refactoring
These updates are to adapt to the sample device plugin
refactoring done here: 92e00203e0.

Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
2023-05-02 11:23:31 +01:00
Swati Sehgal
367e3d7c47 node: device-mgr: e2e: Update the e2e test to reproduce issue:109595
Breakdown of the steps implemented as part of this e2e test is as follows:
1. Create a file `registration` at path `/var/lib/kubelet/device-plugins/sample/`
2. Create sample device plugin with an environment variable with
   `REGISTER_CONTROL_FILE=/var/lib/kubelet/device-plugins/sample/registration` that
    waits for a client to delete the control file.
3. Trigger plugin registeration by deleting the abovementioned directory.
4. Create a test pod requesting devices exposed by the device plugin.
5. Stop kubelet.
6. Remove pods using CRI to ensure new pods are created after kubelet restart.
7. Restart kubelet.
8. Wait for the sample device plugin pod to be running. In this case,
   the registration is not triggered.
9. Ensure that resource capacity/allocatable exported by the device plugin is zero.
10. The test pod should fail with `UnexpectedAdmissionError`
11. Delete the test pod.
12. Delete the sample device plugin pod.
13. Remove `/var/lib/kubelet/device-plugins/sample/` and its content, the directory
    created to control registration

Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
2023-05-02 11:23:31 +01:00
Swati Sehgal
d241f58d8c node: device-mgr: e2e: Implement End to end test
This commit reuses e2e tests implmented as part of https://github.com/kubernetes/kubernetes/pull/110729.
The commit is borrowed from the aforementioned PR as is to preserve
authorship. Subsequent commit will update the end to end test to
simulate the problem this PR is trying to solve by reproducing
the issue: 109595.

Co-authored-by: Francesco Romani <fromani@redhat.com>
Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
2023-05-02 11:23:31 +01:00
Swati Sehgal
b157e1741f node: device-plugin: e2e: Add test case for kubelet restart
Capture explicitly a test case pertaining to kubelet restart
but with no pod restart and device plugin re-registration.

Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
2023-05-02 11:23:12 +01:00
Swati Sehgal
5278e9c02c node: device-plugin: e2e: Provide sleep intervals via constants
Based on whether the test case requires pod restart or not, the sleep
interval needs to be updated and we define constants to represent the two
sleep intervals that can be used in the corresponding test cases.

Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
Co-authored-by: Francesco Romani <fromani@redhat.com>
2023-05-02 11:23:12 +01:00
Swati Sehgal
b3c58acde9 node: device-plugin: e2e: Update test description to make it explicit
Explicitly state that the test involves kubelet restart and device plugin
re-registration (no pod restart)

We remove the part of the code where we wait for the pod to restart as this
test case should no longer involve pod restart.

In addition to that, we use `waitForNodeReady` instead of `WaitForAllNodesSchedulable`
for ensuring that the node is ready for pods to be scheduled on it.

Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
Co-authored-by: Francesco Romani <fromani@redhat.com>
2023-05-02 11:23:12 +01:00
Swati Sehgal
0cd0fe70aa node: device-plugin: e2e: Isolate test to pod restart scenario
Rather than testing out for both pod restart and kubelet restart,
we change the tests to just handle pod restart scenario.

Clarify the test purpose and add extra check to tighten the test.

We would be adding additional tests to cover kubelet restart scenarios
in subsequent commits.

Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
Signed-off-by: Francesco Romani <fromani@redhat.com>
2023-05-02 11:23:11 +01:00
Swati Sehgal
ed8d4e1d6a node: device-plugin: e2e: Annotate device check with error message
With this change the error message are more helpful and easier
to troubleshoot in case of test failures.

Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
2023-05-02 11:23:11 +01:00
Swati Sehgal
4899dc75dd node: device-plugins: e2e: s/devLen/expectedSampleDevsAmount
We rename to make the intent more explicit;
We make it global to be able to reuse the value all across the module
(e.g. to check the node readiness) later on.

Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
Co-authored-by: Francesco Romani <fromani@redhat.com>
2023-05-02 11:23:11 +01:00
Swati Sehgal
c81ec1ae5b node: device-plugins: e2e: Refactor parse log to return string and error
Rather than only returning a string forcing us to log failure with
`framework.Fail`, we return a string and error to handle error cases
more conventionally. This enables us to use the `parseLog` function
inside `Eventually` and `Consistently` blocks, or in general to delegate
the error processing and enable better composability.

Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
Co-authored-by: Francesco Romani <fromani@redhat.com>
2023-05-02 11:23:11 +01:00
Kubernetes Prow Robot
3c10a89212 Merge pull request #117433 from bobbypage/automated-cherry-pick-of-#117019-upstream-release-1.27
Automated cherry pick of #117019: kubelet: Mark new terminal pods as non-finished in pod worker
2023-05-01 12:46:11 -07:00
Jordan Liggitt
d0514936f3 Fix stomping os env in kubectl e2e tests 2023-04-19 09:31:28 +02:00
David Porter
ae07535c85 test: Add node e2e to restart kubelet while pod is terminating
Add a regression test for https://issues.k8s.io/116925. The test
exercises the following:

1) Start a restart never pod which will exit with
   `v1.PodSucceeded` phase.
2) Start a graceful deletion of the pod (set a deletion timestamp)
3) Restart the kubelet as soon as the kubelet reports the pod is
   terminal (but before the pod is deleted).
4) Verify that after kubelet restart, the pod is deleted.

As of v1.27, there is a delay between the pod being marked terminal
phaes, and the status manager deleting the pod. If the kubelet is
restarted in the middle, after starting up again, the kubelet needs to
ensure the pod will be deleted on the API server.

Signed-off-by: David Porter <david@porter.me>
2023-04-18 01:22:51 -07:00
Hemant Kumar
d977e7e0db Fix azure disk e2e after migration 2023-04-12 11:38:23 -04:00
Marko Mudrinić
b19c362bf5 Update distroless-iptables to v0.2.3
Signed-off-by: Marko Mudrinić <mudrinic.mare@gmail.com>
2023-04-06 01:37:14 +02:00
Marko Mudrinić
2a69edb43d [go] Bump images, dependencies and versions to go 1.20.3
Signed-off-by: Marko Mudrinić <mudrinic.mare@gmail.com>
2023-04-05 23:46:34 +02:00
Michal Wozniak
b5dd5f1f3a Investigate and fix the handling of Succeeded pods in DaemonSet 2023-04-04 19:21:15 +02:00
Tim Allclair
7537cec567 Fix MatchConditions webhook validation testing (#116784)
* Fix MatchConditions webhook validation testing

* #squash verify error type

* #squash fix duplicate registration

* #squash uncomment validation test
2023-03-21 21:38:35 -07:00
Kubernetes Prow Robot
8dd3807f4d Merge pull request #116770 from alexzielenski/agg-discovery-err-sources
Fix aggregated discovery race when using CRD and Aggregated APIService under same group
2023-03-21 15:18:12 -07:00
Alexander Zielenski
933dfe3a51 use longer timeouts to avoid flakes on heavily loaded systems 2023-03-21 14:18:34 -07:00
Alexander Zielenski
0740b11073 allow multiple sources to add/remove from discovery without clobbering each other 2023-03-21 14:14:23 -07:00
Kubernetes Prow Robot
6ec366261c Merge pull request #116658 from Riaankl/add-get-resources-endpoint
Add 12 get * V1APIResources to file pending_eligible_endpoints.yaml
2023-03-21 12:28:11 -07:00
Kubernetes Prow Robot
956fa9b9ce Merge pull request #116785 from enj/enj/i/clean_front_proxy_headers
Clear front proxy headers after authentication is complete
2023-03-21 11:30:11 -07:00
Monis Khan
e9866d2794 Clear front proxy headers after authentication is complete
This matches the logic we have for the Authorization header as well
as the impersonation headers.

Signed-off-by: Monis Khan <mok@microsoft.com>
2023-03-21 10:51:22 -04:00
Tim Allclair
9cce3fa107 Deflake GC e2e test 2023-03-20 16:09:30 -07:00
Kubernetes Prow Robot
15894cfc85 Merge pull request #116550 from alculquicondor/fix-bind-uid
Preserve UID and ResourceVersion in BindingREST
2023-03-20 08:49:20 -07:00
Kubernetes Prow Robot
fe91bc257b Merge pull request #116554 from atiratree/eviction-resource-version-fix
API-initiated eviction: handle deleteOptions correctly
2023-03-17 16:59:15 -07:00
Filip Křepinský
51c0e2374f API-initiated eviction: handle deleteOptions correctly
when adding a DisruptionTarget condition into a pod that will be deleted

- handle ResourceVersion and Preconditions correctly
- handle DryRun option correctly

Co-authored-by: Jordan Liggitt jordan@liggitt.net
2023-03-17 22:18:07 +01:00
Michal Wozniak
3d68f362c3 Give terminal phase correctly to all pods that will not be restarted 2023-03-16 21:25:29 +01:00
Kubernetes Prow Robot
a34e37c996 Merge pull request #113218 from ahmedtd/kep-3257
Add certificates.k8s.io/v1alpha1 ClusterTrustBundle
2023-03-16 11:13:20 -07:00
Sathyanarayanan Saravanamuthu
c84c8add70 Decouple batch/job back-off logic from workqueues (#114768)
* batch/job: decouple backoff from workqueue

Signed-off-by: Sathyanarayanan Saravanamuthu <sathyanarays@vmware.com>

* Resolving review comments

* Resolving more review comments

* Resolving review comments

Signed-off-by: Sathyanarayanan Saravanamuthu <sathyanarays@vmware.com>

* Computing finish time to now when FinishedAt is unix epoch

* Addressing review comments

Signed-off-by: Sathyanarayanan Saravanamuthu <sathyanarays@vmware.com>

---------

Signed-off-by: Sathyanarayanan Saravanamuthu <sathyanarays@vmware.com>
2023-03-16 10:15:21 -07:00
Taahir Ahmed
51f759aa05 ClusterTrustBundles: kube-apiserver integration tests 2023-03-15 20:19:48 -07:00
Kubernetes Prow Robot
742316ee21 Merge pull request #116631 from bobbypage/standalone-repro
test: Update standalone test in node e2e
2023-03-15 18:27:26 -07:00
Kubernetes Prow Robot
6711a81f02 Merge pull request #116657 from pacoxu/fix-explain
make `kubectl explan` test tolerate either  "RESOURCE" or "FIELD"
2023-03-15 14:43:05 -07:00
David Porter
6ead3e3945 test: Update standalone test in node e2e
* Slightly changed pod spec to repro issue #116262
* Refactor test to ensure that the static pod is deleted even if the
  test fails

Signed-off-by: David Porter <david@porter.me>
2023-03-15 14:00:39 -07:00
Kubernetes Prow Robot
ad4cbd4c85 Merge pull request #116628 from SergeyKanzhelev/fixStandaloneTest
fix standalone test
2023-03-15 13:47:17 -07:00
Paco Xu
b3690bf637 accept either FIELD or RESOURCE for kubectl explain to meet skew policy 2023-03-16 03:38:43 +08:00
Kubernetes Prow Robot
2ae7bc36de Merge pull request #116664 from logicalhan/md
update documentation for metrics for 1.27
2023-03-15 12:20:43 -07:00
Kubernetes Prow Robot
20e8b20b75 Merge pull request #116569 from tukwila/validate_testVols
check if test volumes created
2023-03-15 12:20:31 -07:00
Han Kang
9d27f5c934 update documentation for metrics for 1.27 2023-03-15 10:10:02 -07:00
Riaan Kleinhans
0b09566dcf Update pending_eligible_endpoints.yaml 2023-03-16 04:17:37 +13:00
Madhav Jivrajani
88b498f23e test/e2e: Improve kubectl subresource e2e test
We now get structured output using jsonpath for the
name and version fields of the node object and then
compare the outputs.

Signed-off-by: Madhav Jivrajani <madhav.jiv@gmail.com>
2023-03-15 17:27:34 +05:30
Kubernetes Prow Robot
50070e664b Merge pull request #116626 from nilekhc/fix-kmsv2-healthz-flake
[KMSv2] fix: increases timeout to avoid flake
2023-03-14 20:28:34 -07:00