From c1a2fa1a058a604d7df36a4457ade7470ad2eed7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Andr=C3=A9?= Date: Fri, 17 Jul 2026 11:03:33 +0900 Subject: [PATCH] test: don't delete namespaces in unit tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Namespace deletion is asynchronous — a deleted namespace enters a Terminating state before being fully removed. If the next test's GenerateName produces a suffix that collides with a still-Terminating namespace, the API server returns a hard error rather than retrying with a new name. Since all unit tests run against an envtest API server that is torn down in AfterSuite, explicit namespace deletion is unnecessary. Remove the DeferCleanup blocks that delete namespaces to eliminate the flake. Closes #850 --- internal/controllers/floatingip/suite_test.go | 3 --- internal/controllers/image/suite_test.go | 3 --- internal/controllers/image/upload_test.go | 3 --- internal/controllers/router/suite_test.go | 3 --- internal/controllers/routerinterface/suite_test.go | 3 --- internal/controllers/subnet/suite_test.go | 3 --- test/apivalidations/suite_test.go | 5 ----- 7 files changed, 23 deletions(-) diff --git a/internal/controllers/floatingip/suite_test.go b/internal/controllers/floatingip/suite_test.go index f1a7eb8fa..706b46ee7 100644 --- a/internal/controllers/floatingip/suite_test.go +++ b/internal/controllers/floatingip/suite_test.go @@ -86,9 +86,6 @@ var _ = Describe("EnvTest sanity check", func() { // Create the namespace Expect(k8sClient.Create(ctx, namespace)).To(Succeed(), "create namespace") - DeferCleanup(func() { - Expect(k8sClient.Delete(ctx, namespace)).To(Succeed(), "delete namespace") - }) // Check the result namespaceResult := &corev1.Namespace{} diff --git a/internal/controllers/image/suite_test.go b/internal/controllers/image/suite_test.go index 4b1fa4de2..63de7576e 100644 --- a/internal/controllers/image/suite_test.go +++ b/internal/controllers/image/suite_test.go @@ -86,9 +86,6 @@ var _ = Describe("EnvTest sanity check", func() { // Create the namespace Expect(k8sClient.Create(ctx, namespace)).To(Succeed(), "create namespace") - DeferCleanup(func() { - Expect(k8sClient.Delete(ctx, namespace)).To(Succeed(), "delete namespace") - }) // Check the result namespaceResult := &corev1.Namespace{} diff --git a/internal/controllers/image/upload_test.go b/internal/controllers/image/upload_test.go index cfdb2a5f5..a703f07f2 100644 --- a/internal/controllers/image/upload_test.go +++ b/internal/controllers/image/upload_test.go @@ -160,9 +160,6 @@ var _ = Describe("Upload tests", Ordered, func() { namespace = &corev1.Namespace{} namespace.SetGenerateName("test-") Expect(k8sClient.Create(ctx, namespace)).To(Succeed(), "create namespace") - DeferCleanup(func() { - Expect(k8sClient.Delete(ctx, namespace)).To(Succeed(), "delete namespace") - }) mockCtrl = gomock.NewController(GinkgoT()) actuator = &imageActuator{ diff --git a/internal/controllers/router/suite_test.go b/internal/controllers/router/suite_test.go index 02433215f..c852871d8 100644 --- a/internal/controllers/router/suite_test.go +++ b/internal/controllers/router/suite_test.go @@ -86,9 +86,6 @@ var _ = Describe("EnvTest sanity check", func() { // Create the namespace Expect(k8sClient.Create(ctx, namespace)).To(Succeed(), "create namespace") - DeferCleanup(func() { - Expect(k8sClient.Delete(ctx, namespace)).To(Succeed(), "delete namespace") - }) // Check the result namespaceResult := &corev1.Namespace{} diff --git a/internal/controllers/routerinterface/suite_test.go b/internal/controllers/routerinterface/suite_test.go index 8c93ac434..6c7d7cb26 100644 --- a/internal/controllers/routerinterface/suite_test.go +++ b/internal/controllers/routerinterface/suite_test.go @@ -86,9 +86,6 @@ var _ = Describe("EnvTest sanity check", func() { // Create the namespace Expect(k8sClient.Create(ctx, namespace)).To(Succeed(), "create namespace") - DeferCleanup(func() { - Expect(k8sClient.Delete(ctx, namespace)).To(Succeed(), "delete namespace") - }) // Check the result namespaceResult := &corev1.Namespace{} diff --git a/internal/controllers/subnet/suite_test.go b/internal/controllers/subnet/suite_test.go index 847b93590..9bb667a55 100644 --- a/internal/controllers/subnet/suite_test.go +++ b/internal/controllers/subnet/suite_test.go @@ -86,9 +86,6 @@ var _ = Describe("EnvTest sanity check", func() { // Create the namespace Expect(k8sClient.Create(ctx, namespace)).To(Succeed(), "create namespace") - DeferCleanup(func() { - Expect(k8sClient.Delete(ctx, namespace)).To(Succeed(), "delete namespace") - }) // Check the result namespaceResult := &corev1.Namespace{} diff --git a/test/apivalidations/suite_test.go b/test/apivalidations/suite_test.go index 595c4a95f..7c11a73cf 100644 --- a/test/apivalidations/suite_test.go +++ b/test/apivalidations/suite_test.go @@ -27,7 +27,6 @@ import ( . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/discovery" @@ -149,10 +148,6 @@ func createNamespace() *corev1.Namespace { namespace := corev1.Namespace{} namespace.GenerateName = "test-" Expect(k8sClient.Create(ctx, &namespace)).To(Succeed(), "Namespace creation should succeed") - DeferCleanup(func() { - By("Deleting namespace") - Expect(k8sClient.Delete(ctx, &namespace, client.PropagationPolicy(metav1.DeletePropagationForeground))).To(Succeed(), "Namespace deletion should succeed") - }) By(fmt.Sprintf("Using namespace %s", namespace.Name)) return &namespace }