Merge pull request #133790 from Jpsassine/fix-leaky-resource-health-test

Fix flaky resource claim metrics test
This commit is contained in:
Kubernetes Prow Robot
2025-09-11 04:40:07 -07:00
committed by GitHub

View File

@@ -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))