From b54d2eae2f400105f0bedd7f2ec9691f9c2baa2f Mon Sep 17 00:00:00 2001 From: Jay Deokar Date: Wed, 11 Oct 2023 16:06:56 +0000 Subject: [PATCH] Graceful termination for service connectivity tests --- .../resources/k8s/resources/deployment.go | 5 +++ .../resources/k8s/resources/service.go | 5 +++ .../cni/service_connectivity_test.go | 33 ++++++++++++------- 3 files changed, 31 insertions(+), 12 deletions(-) diff --git a/test/framework/resources/k8s/resources/deployment.go b/test/framework/resources/k8s/resources/deployment.go index a6336af578..a74f994ae5 100644 --- a/test/framework/resources/k8s/resources/deployment.go +++ b/test/framework/resources/k8s/resources/deployment.go @@ -60,6 +60,11 @@ func (d *defaultDeploymentManager) CreateAndWaitTillDeploymentIsReady(deployment func (d *defaultDeploymentManager) DeleteAndWaitTillDeploymentIsDeleted(deployment *v1.Deployment) error { ctx := context.Background() err := d.k8sClient.Delete(ctx, deployment) + + if errors.IsNotFound(err) { + return nil + } + if err != nil { return err } diff --git a/test/framework/resources/k8s/resources/service.go b/test/framework/resources/k8s/resources/service.go index 6f58cd3322..6af6d951c1 100644 --- a/test/framework/resources/k8s/resources/service.go +++ b/test/framework/resources/k8s/resources/service.go @@ -72,6 +72,11 @@ func (s *defaultServiceManager) CreateService(ctx context.Context, service *v1.S func (s *defaultServiceManager) DeleteAndWaitTillServiceDeleted(ctx context.Context, service *v1.Service) error { err := s.k8sClient.Delete(ctx, service) + + if errors.IsNotFound(err) { + return nil + } + if err != nil { return err } diff --git a/test/integration/cni/service_connectivity_test.go b/test/integration/cni/service_connectivity_test.go index 0fb431c0a3..f085baa101 100644 --- a/test/integration/cni/service_connectivity_test.go +++ b/test/integration/cni/service_connectivity_test.go @@ -35,7 +35,7 @@ const ( ) // Verifies connectivity to deployment behind different service types -var _ = Describe("[CANARY] test service connectivity", func() { +var _ = Describe("[CANARY] test service connectivity", FlakeAttempts(3), func() { var err error // Deployment running the http server @@ -99,7 +99,7 @@ var _ = Describe("[CANARY] test service connectivity", func() { fmt.Fprintf(GinkgoWriter, "created service\n: %+v\n", service.Status) By("sleeping for some time to allow service to become ready") - time.Sleep(3 * utils.PollIntervalLong) + time.Sleep(utils.PollIntervalLong) testerContainer = manifest.NewBusyBoxContainerBuilder(f.Options.TestImageRegistry). Command([]string{"wget"}). @@ -145,17 +145,26 @@ var _ = Describe("[CANARY] test service connectivity", func() { }) JustAfterEach(func() { - err := f.K8sResourceManagers.JobManager().DeleteAndWaitTillJobIsDeleted(testerJob) - Expect(err).ToNot(HaveOccurred()) - - err = f.K8sResourceManagers.JobManager().DeleteAndWaitTillJobIsDeleted(negativeTesterJob) - Expect(err).ToNot(HaveOccurred()) - err = f.K8sResourceManagers.ServiceManager().DeleteAndWaitTillServiceDeleted(context.Background(), service) - Expect(err).ToNot(HaveOccurred()) - - err = f.K8sResourceManagers.DeploymentManager().DeleteAndWaitTillDeploymentIsDeleted(deployment) - Expect(err).ToNot(HaveOccurred()) + if testerJob != nil { + err := f.K8sResourceManagers.JobManager().DeleteAndWaitTillJobIsDeleted(testerJob) + Expect(err).ToNot(HaveOccurred()) + } + + if negativeTesterJob != nil { + err = f.K8sResourceManagers.JobManager().DeleteAndWaitTillJobIsDeleted(negativeTesterJob) + Expect(err).ToNot(HaveOccurred()) + } + + if service != nil { + err = f.K8sResourceManagers.ServiceManager().DeleteAndWaitTillServiceDeleted(context.Background(), service) + Expect(err).ToNot(HaveOccurred()) + } + + if deployment != nil { + err = f.K8sResourceManagers.DeploymentManager().DeleteAndWaitTillDeploymentIsDeleted(deployment) + Expect(err).ToNot(HaveOccurred()) + } // Sleep for IP cooldown period to ensure IPs are added back to datastore for future test runs time.Sleep(5 * time.Second)