diff --git a/test/e2e_node/deleted_pods_test.go b/test/e2e_node/deleted_pods_test.go index 85cc049782d..dc179980065 100644 --- a/test/e2e_node/deleted_pods_test.go +++ b/test/e2e_node/deleted_pods_test.go @@ -20,7 +20,6 @@ import ( "context" "fmt" "strings" - "time" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -163,11 +162,20 @@ var _ = SIGDescribe("Deleted pods handling", framework.WithNodeConformance(), fu } trap _term SIGTERM + touch /tmp/trap-marker wait $PID exit 0 `, }, + ReadinessProbe: &v1.Probe{ + PeriodSeconds: 1, + ProbeHandler: v1.ProbeHandler{ + Exec: &v1.ExecAction{ + Command: []string{"/bin/sh", "-c", "cat /tmp/trap-marker"}, + }, + }, + }, }, }, }, @@ -178,13 +186,11 @@ var _ = SIGDescribe("Deleted pods handling", framework.WithNodeConformance(), fu ginkgo.By("set up cleanup of the finalizer") ginkgo.DeferCleanup(e2epod.NewPodClient(f).RemoveFinalizer, pod.Name, testFinalizer) - ginkgo.By("Waiting for the pod to be running") - err := e2epod.WaitForPodNameRunningInNamespace(ctx, f.ClientSet, pod.Name, f.Namespace.Name) + ginkgo.By(fmt.Sprintf("Waiting for the pod (%v/%v) to be running and with the SIGTERM trap registered", pod.Namespace, pod.Name)) + err := e2epod.WaitTimeoutForPodReadyInNamespace(ctx, f.ClientSet, pod.Name, f.Namespace.Name, f.Timeouts.PodStart) framework.ExpectNoError(err, "Failed to await for the pod to be running: %q", pod.Name) ginkgo.By(fmt.Sprintf("Deleting the pod (%v/%v) to set a deletion timestamp", pod.Namespace, pod.Name)) - // wait a little bit to make sure the we are inside the while and that the trap is registered - time.Sleep(time.Second) err = e2epod.NewPodClient(f).Delete(ctx, pod.Name, metav1.DeleteOptions{}) framework.ExpectNoError(err, "Failed to delete the pod: %q", pod.Name) diff --git a/test/e2e_node/restart_test.go b/test/e2e_node/restart_test.go index aa8194f44e9..ab24297483f 100644 --- a/test/e2e_node/restart_test.go +++ b/test/e2e_node/restart_test.go @@ -296,6 +296,8 @@ var _ = SIGDescribe("Restart", framework.WithSerial(), framework.WithSlow(), fra } trap _term SIGTERM + touch /tmp/trap-marker + wait $PID trap - TERM @@ -305,6 +307,14 @@ var _ = SIGDescribe("Restart", framework.WithSerial(), framework.WithSlow(), fra exit 0 `, }, + ReadinessProbe: &v1.Probe{ + PeriodSeconds: 1, + ProbeHandler: v1.ProbeHandler{ + Exec: &v1.ExecAction{ + Command: []string{"/bin/sh", "-c", "cat /tmp/trap-marker"}, + }, + }, + }, }, }, }, @@ -312,8 +322,8 @@ var _ = SIGDescribe("Restart", framework.WithSerial(), framework.WithSlow(), fra ginkgo.By(fmt.Sprintf("Creating a pod (%v/%v) with restart policy: %v", f.Namespace.Name, podName, podSpec.Spec.RestartPolicy)) pod := e2epod.NewPodClient(f).Create(ctx, podSpec) - ginkgo.By(fmt.Sprintf("Waiting for the pod (%v/%v) to be running", f.Namespace.Name, pod.Name)) - err := e2epod.WaitForPodNameRunningInNamespace(ctx, f.ClientSet, pod.Name, f.Namespace.Name) + ginkgo.By(fmt.Sprintf("Waiting for the pod (%v/%v) to be running, and with the SIGTERM trap registered", f.Namespace.Name, pod.Name)) + err := e2epod.WaitTimeoutForPodReadyInNamespace(ctx, f.ClientSet, pod.Name, f.Namespace.Name, f.Timeouts.PodStart) framework.ExpectNoError(err, "Failed to await for the pod to be running: (%v/%v)", f.Namespace.Name, pod.Name) w := &cache.ListWatch{ @@ -326,7 +336,6 @@ var _ = SIGDescribe("Restart", framework.WithSerial(), framework.WithSlow(), fra framework.ExpectNoError(err, "Failed to list pods in namespace: %s", f.Namespace.Name) ginkgo.By(fmt.Sprintf("Deleting the pod (%v/%v) to set a deletion timestamp", pod.Namespace, pod.Name)) - time.Sleep(time.Second) err = e2epod.NewPodClient(f).Delete(ctx, pod.Name, metav1.DeleteOptions{GracePeriodSeconds: &gracePeriod}) framework.ExpectNoError(err, "Failed to delete the pod: %q", pod.Name)