diff --git a/test/e2e_node/dra_test.go b/test/e2e_node/dra_test.go index a6f0977e4fa..4a2c065b612 100644 --- a/test/e2e_node/dra_test.go +++ b/test/e2e_node/dra_test.go @@ -947,7 +947,7 @@ var _ = framework.SIGDescribe("node")(framework.WithLabel("DRA"), feature.Dynami ginkgo.It("should not add health status to Pod when feature gate is disabled", func(ctx context.Context) { ginkgo.By("Starting a test driver") - newKubeletPlugin(ctx, f.ClientSet, getNodeName(ctx, f), driverName, withHealthService(false)) + kubeletPlugin := newKubeletPlugin(ctx, f.ClientSet, getNodeName(ctx, f), driverName, withHealthService(false)) className := "gate-disabled-class" claimName := "gate-disabled-claim" @@ -976,6 +976,10 @@ var _ = framework.SIGDescribe("node")(framework.WithLabel("DRA"), feature.Dynami } return fmt.Errorf("could not find container 'testcontainer' in pod status") }).WithContext(ctx).WithTimeout(30*time.Second).WithPolling(2*time.Second).Should(gomega.Succeed(), "The allocatedResourcesStatus field should be absent when the feature gate is disabled") + // Clean up and wait for the system to settle before the test ends + ginkgo.By("Cleaning up pod and waiting for resources to be unprepared") + e2epod.DeletePodOrFail(ctx, f.ClientSet, pod.Namespace, pod.Name) + gomega.Eventually(kubeletPlugin.GetGRPCCalls).WithTimeout(retryTestTimeout).Should(testdrivergomega.NodeUnprepareResourcesSucceeded) }) }) }) @@ -1383,10 +1387,10 @@ func createHealthTestPodAndClaim(ctx context.Context, f *framework.Framework, dr } _, err := f.ClientSet.ResourceV1().DeviceClasses().Create(ctx, dc, metav1.CreateOptions{}) framework.ExpectNoError(err, "failed to create DeviceClass "+className) - ginkgo.DeferCleanup(func() { - err := f.ClientSet.ResourceV1().ResourceClaims(f.Namespace.Name).Delete(context.Background(), claimName, metav1.DeleteOptions{}) + ginkgo.DeferCleanup(func(ctx context.Context) { + err := f.ClientSet.ResourceV1().DeviceClasses().Delete(ctx, className, metav1.DeleteOptions{}) if err != nil && !apierrors.IsNotFound(err) { - framework.Failf("Failed to delete ResourceClaim %s: %v", claimName, err) + framework.Failf("Failed to delete DeviceClass %s: %v", className, err) } }) ginkgo.By(fmt.Sprintf("Creating ResourceClaim %q", claimName)) @@ -1408,8 +1412,8 @@ func createHealthTestPodAndClaim(ctx context.Context, f *framework.Framework, dr _, err = f.ClientSet.ResourceV1().ResourceClaims(f.Namespace.Name).Create(ctx, claim, metav1.CreateOptions{}) framework.ExpectNoError(err, "failed to create ResourceClaim "+claimName) - ginkgo.DeferCleanup(func() { - err := f.ClientSet.ResourceV1().ResourceClaims(f.Namespace.Name).Delete(context.Background(), claimName, metav1.DeleteOptions{}) + ginkgo.DeferCleanup(func(ctx context.Context) { + err := f.ClientSet.ResourceV1().ResourceClaims(f.Namespace.Name).Delete(ctx, claimName, metav1.DeleteOptions{}) if err != nil && !apierrors.IsNotFound(err) { framework.Failf("Failed to delete ResourceClaim %s: %v", claimName, err) } @@ -1441,8 +1445,8 @@ func createHealthTestPodAndClaim(ctx context.Context, f *framework.Framework, dr // Create the pod on the API server to assign the real UID. createdPod, err := f.ClientSet.CoreV1().Pods(f.Namespace.Name).Create(ctx, pod, metav1.CreateOptions{}) framework.ExpectNoError(err, "failed to create Pod "+podName) - ginkgo.DeferCleanup(func() { - e2epod.DeletePodOrFail(context.Background(), f.ClientSet, createdPod.Namespace, createdPod.Name) + ginkgo.DeferCleanup(func(ctx context.Context) { + e2epod.DeletePodOrFail(ctx, f.ClientSet, createdPod.Namespace, createdPod.Name) }) ginkgo.By(fmt.Sprintf("Allocating claim %q to pod %q with its real UID", claimName, podName))