From 82a9a9640df6f38a6df6e83e65c7f71ce0e5652f Mon Sep 17 00:00:00 2001 From: Craig Condit Date: Wed, 6 Apr 2022 16:53:33 -0500 Subject: [PATCH] [YUNIKORN-1172] Clean up e2e test pods immediately --- test/e2e/framework/helpers/k8s/k8s_utils.go | 20 +++++++++++++++++-- .../recovery_and_restart_test.go | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/test/e2e/framework/helpers/k8s/k8s_utils.go b/test/e2e/framework/helpers/k8s/k8s_utils.go index 837a08e94..afa1c90e0 100644 --- a/test/e2e/framework/helpers/k8s/k8s_utils.go +++ b/test/e2e/framework/helpers/k8s/k8s_utils.go @@ -318,7 +318,10 @@ func (k *KubeCtl) isServiceAccountPresent(namespace string, svcAcctName string) } func (k *KubeCtl) DeleteNamespace(namespace string) error { - return k.clientSet.CoreV1().Namespaces().Delete(context.TODO(), namespace, metav1.DeleteOptions{}) + var secs int64 = 0 + return k.clientSet.CoreV1().Namespaces().Delete(context.TODO(), namespace, metav1.DeleteOptions{ + GracePeriodSeconds: &secs, + }) } func (k *KubeCtl) TearDownNamespace(namespace string) error { @@ -375,7 +378,10 @@ func (k *KubeCtl) CreatePod(pod *v1.Pod, namespace string) (*v1.Pod, error) { } func (k *KubeCtl) DeletePod(podName string, namespace string) error { - err := k.clientSet.CoreV1().Pods(namespace).Delete(context.TODO(), podName, metav1.DeleteOptions{}) + var secs int64 = 0 + err := k.clientSet.CoreV1().Pods(namespace).Delete(context.TODO(), podName, metav1.DeleteOptions{ + GracePeriodSeconds: &secs, + }) if err != nil { return err } @@ -384,6 +390,16 @@ func (k *KubeCtl) DeletePod(podName string, namespace string) error { return err } +func (k *KubeCtl) DeletePodGracefully(podName string, namespace string) error { + err := k.clientSet.CoreV1().Pods(namespace).Delete(context.TODO(), podName, metav1.DeleteOptions{}) + if err != nil { + return err + } + + err = k.WaitForPodTerminated(namespace, podName, 120*time.Second) + return err +} + // return a condition function that indicates whether the given pod is // currently in desired state func (k *KubeCtl) isPodInDesiredState(podName string, namespace string, state v1.PodPhase) wait.ConditionFunc { diff --git a/test/e2e/recovery_and_restart/recovery_and_restart_test.go b/test/e2e/recovery_and_restart/recovery_and_restart_test.go index b65bd0431..bb8125105 100644 --- a/test/e2e/recovery_and_restart/recovery_and_restart_test.go +++ b/test/e2e/recovery_and_restart/recovery_and_restart_test.go @@ -85,7 +85,7 @@ var _ = ginkgo.Describe("", func() { ginkgo.By("Restart the scheduler pod") schedulerPodName, err := kClient.GetSchedulerPod() Ω(err).NotTo(gomega.HaveOccurred()) - err = kClient.DeletePod(schedulerPodName, configmanager.YuniKornTestConfig.YkNamespace) + err = kClient.DeletePodGracefully(schedulerPodName, configmanager.YuniKornTestConfig.YkNamespace) Ω(err).NotTo(gomega.HaveOccurred()) err = kClient.WaitForPodBySelectorRunning(configmanager.YuniKornTestConfig.YkNamespace, fmt.Sprintf("component=%s", configmanager.YKScheduler), 10) Ω(err).NotTo(gomega.HaveOccurred())