diff --git a/test/e2e/bundle_test.go b/test/e2e/bundle_test.go index bbf52f2..dabd111 100644 --- a/test/e2e/bundle_test.go +++ b/test/e2e/bundle_test.go @@ -367,6 +367,9 @@ func createNamespaceAndDeployFunction() TestNamespace { out, err := utils.RunFuncDeploy(repoDir, utils.WithNamespace(ns)) Expect(err).NotTo(HaveOccurred()) _, _ = fmt.Fprint(GinkgoWriter, out) + DeferCleanup(func() { + _, _ = utils.RunFunc("delete", "--path", repoDir, "--namespace", ns) + }) // Push updated func.yaml back to repo err = utils.CommitAndPush(repoDir, "Update func.yaml after deploy", "func.yaml") diff --git a/test/e2e/func_deploy_test.go b/test/e2e/func_deploy_test.go index 1e84cec..50175c9 100644 --- a/test/e2e/func_deploy_test.go +++ b/test/e2e/func_deploy_test.go @@ -159,6 +159,10 @@ func createSSHFunctionAndExpectReady( err = k8sClient.Create(ctx, function) Expect(err).NotTo(HaveOccurred()) + utils.DeferCleanupOnSuccess(func() { + _, _ = utils.RunCmd("kubectl", "delete", "function", function.Name, "--namespace", function.Namespace) + }) + Eventually(functionBecomesReady(function.Name, functionNamespace)).Should(Succeed()) return function.Name } @@ -216,13 +220,6 @@ var _ = Describe("Operator", func() { AfterEach(func() { logFailedTestDetails(functionName, functionNamespace) - - // Cleanup function resource - if functionName != "" { - cmd := exec.Command("kubectl", "delete", "function", functionName, "-n", functionNamespace, "--ignore-not-found") - _, err := utils.Run(cmd) - Expect(err).NotTo(HaveOccurred()) - } }) It("should mark the function as ready", func() { @@ -242,6 +239,10 @@ var _ = Describe("Operator", func() { err := k8sClient.Create(ctx, function) Expect(err).NotTo(HaveOccurred()) + utils.DeferCleanupOnSuccess(func() { + _, _ = utils.RunCmd("kubectl", "delete", "function", function.Name, "--namespace", function.Namespace) + }) + functionName = function.Name Eventually(functionBecomesReady(functionName, functionNamespace)).Should(Succeed()) @@ -296,13 +297,6 @@ var _ = Describe("Operator", func() { AfterEach(func() { logFailedTestDetails(functionName, functionNamespace) - - // Cleanup function resource - if functionName != "" { - cmd := exec.Command("kubectl", "delete", "function", functionName, "-n", functionNamespace, "--ignore-not-found") - _, err := utils.Run(cmd) - Expect(err).NotTo(HaveOccurred()) - } }) It("should mark the function as ready", func() { @@ -323,6 +317,10 @@ var _ = Describe("Operator", func() { err := k8sClient.Create(ctx, function) Expect(err).NotTo(HaveOccurred()) + utils.DeferCleanupOnSuccess(func() { + _, _ = utils.RunCmd("kubectl", "delete", "function", function.Name, "--namespace", function.Namespace) + }) + functionName = function.Name Eventually(functionBecomesReady(functionName, functionNamespace)).Should(Succeed()) @@ -356,12 +354,7 @@ var _ = Describe("Operator", func() { }) AfterEach(func() { - // Cleanup function resource - if functionName != "" { - cmd := exec.Command("kubectl", "delete", "function", functionName, "-n", functionNamespace, "--ignore-not-found") - _, err := utils.Run(cmd) - Expect(err).NotTo(HaveOccurred()) - } + logFailedTestDetails(functionName, functionNamespace) }) It("should mark the function as not ready", func() { @@ -381,6 +374,10 @@ var _ = Describe("Operator", func() { err := k8sClient.Create(ctx, function) Expect(err).NotTo(HaveOccurred()) + utils.DeferCleanupOnSuccess(func() { + _, _ = utils.RunCmd("kubectl", "delete", "function", function.Name, "--namespace", function.Namespace) + }) + functionName = function.Name Eventually(functionNotDeployed(functionName, functionNamespace), 2*time.Minute).Should(Succeed()) @@ -435,13 +432,6 @@ var _ = Describe("Operator", func() { AfterEach(func() { logFailedTestDetails(functionName, functionNamespace) - - // Cleanup function resource - if functionName != "" { - cmd := exec.Command("kubectl", "delete", "function", functionName, "-n", functionNamespace, "--ignore-not-found") - _, err := utils.Run(cmd) - Expect(err).NotTo(HaveOccurred()) - } }) Context("using token authentication", func() { @@ -481,6 +471,10 @@ var _ = Describe("Operator", func() { err = k8sClient.Create(ctx, function) Expect(err).NotTo(HaveOccurred()) + utils.DeferCleanupOnSuccess(func() { + _, _ = utils.RunCmd("kubectl", "delete", "function", function.Name, "--namespace", function.Namespace) + }) + functionName = function.Name Eventually(functionBecomesReady(functionName, functionNamespace)).Should(Succeed()) @@ -504,6 +498,10 @@ var _ = Describe("Operator", func() { err := k8sClient.Create(ctx, function) Expect(err).NotTo(HaveOccurred()) + utils.DeferCleanupOnSuccess(func() { + _, _ = utils.RunCmd("kubectl", "delete", "function", function.Name, "--namespace", function.Namespace) + }) + functionName = function.Name Eventually(functionNotReadyWithAuthError(functionName, functionNamespace), 2*time.Minute).Should(Succeed()) @@ -548,6 +546,10 @@ var _ = Describe("Operator", func() { err = k8sClient.Create(ctx, function) Expect(err).NotTo(HaveOccurred()) + utils.DeferCleanupOnSuccess(func() { + _, _ = utils.RunCmd("kubectl", "delete", "function", function.Name, "--namespace", function.Namespace) + }) + functionName = function.Name Eventually(functionBecomesReady(functionName, functionNamespace)).Should(Succeed()) @@ -571,6 +573,10 @@ var _ = Describe("Operator", func() { err := k8sClient.Create(ctx, function) Expect(err).NotTo(HaveOccurred()) + utils.DeferCleanupOnSuccess(func() { + _, _ = utils.RunCmd("kubectl", "delete", "function", function.Name, "--namespace", function.Namespace) + }) + functionName = function.Name Eventually(functionNotReadyWithAuthError(functionName, functionNamespace), 2*time.Minute).Should(Succeed()) @@ -636,12 +642,6 @@ var _ = Describe("Operator", func() { AfterEach(func() { logFailedTestDetails(functionName, functionNamespace) - - if functionName != "" { - cmd := exec.Command("kubectl", "delete", "function", functionName, "-n", functionNamespace, "--ignore-not-found") - _, err := utils.Run(cmd) - Expect(err).NotTo(HaveOccurred()) - } }) It("should mark the function as ready with SSH key auth", func() { @@ -714,12 +714,6 @@ var _ = Describe("Operator", func() { AfterEach(func() { logFailedTestDetails(functionName, functionNamespace) - - if functionName != "" { - cmd := exec.Command("kubectl", "delete", "function", functionName, "-n", functionNamespace, "--ignore-not-found") - _, err := utils.Run(cmd) - Expect(err).NotTo(HaveOccurred()) - } }) It("should mark the function as ready when SSH key authSecretRef is provided", func() { @@ -743,6 +737,10 @@ var _ = Describe("Operator", func() { err := k8sClient.Create(ctx, function) Expect(err).NotTo(HaveOccurred()) + utils.DeferCleanupOnSuccess(func() { + _, _ = utils.RunCmd("kubectl", "delete", "function", function.Name, "--namespace", function.Namespace) + }) + functionName = function.Name Eventually(functionNotReadyWithAuthError(functionName, functionNamespace), 2*time.Minute).Should(Succeed()) diff --git a/test/e2e/func_middleware_update_test.go b/test/e2e/func_middleware_update_test.go index bca973e..3e92724 100644 --- a/test/e2e/func_middleware_update_test.go +++ b/test/e2e/func_middleware_update_test.go @@ -97,13 +97,6 @@ var _ = Describe("Middleware Update", func() { AfterEach(func() { logFailedTestDetails(functionName, functionNamespace) - - // Cleanup function resource - if functionName != "" { - cmd := exec.Command("kubectl", "delete", "function", functionName, "-n", functionNamespace, "--ignore-not-found") - _, err := utils.Run(cmd) - Expect(err).NotTo(HaveOccurred()) - } }) It("should update the middleware and mark the function as ready", func() { @@ -188,6 +181,10 @@ var _ = Describe("Middleware Update", func() { err = k8sClient.Create(ctx, fn) Expect(err).NotTo(HaveOccurred()) + utils.DeferCleanupOnSuccess(func() { + _, _ = utils.RunCmd("kubectl", "delete", "function", fn.Name, "--namespace", fn.Namespace) + }) + functionName = fn.Name Eventually(functionBecomesReady(functionName, functionNamespace)).Should(Succeed()) @@ -335,13 +332,6 @@ var _ = Describe("Middleware Update", func() { AfterEach(func() { logFailedTestDetails(functionName, functionNamespace) - - // Cleanup function resource - if functionName != "" { - cmd := exec.Command("kubectl", "delete", "function", functionName, "-n", functionNamespace, "--ignore-not-found") - _, err := utils.Run(cmd) - Expect(err).NotTo(HaveOccurred()) - } }) It("should reconcile functions without explicit autoUpdateMiddleware when ConfigMap changes", func() { @@ -379,6 +369,11 @@ var _ = Describe("Middleware Update", func() { err = k8sClient.Create(ctx, fn) Expect(err).NotTo(HaveOccurred()) + + utils.DeferCleanupOnSuccess(func() { + _, _ = utils.RunCmd("kubectl", "delete", "function", fn.Name, "--namespace", fn.Namespace) + }) + functionName = fn.Name By("Waiting for Function to become ready with middleware updates disabled") @@ -492,6 +487,9 @@ var _ = Describe("Middleware Update", func() { err = k8sClient.Create(ctx, fn) Expect(err).NotTo(HaveOccurred()) + utils.DeferCleanupOnSuccess(func() { + _, _ = utils.RunCmd("kubectl", "delete", "function", fn.Name, "--namespace", fn.Namespace) + }) functionName = fn.Name By("Waiting for Function to become ready") diff --git a/test/utils/utils.go b/test/utils/utils.go index 40dadd0..6defed0 100644 --- a/test/utils/utils.go +++ b/test/utils/utils.go @@ -47,6 +47,12 @@ func Run(cmd *exec.Cmd) (string, error) { return string(output), nil } +func RunCmd(cmd string, args ...string) (string, error) { + c := exec.Command(cmd, args...) + + return Run(c) +} + // GetNonEmptyLines converts given command output string into individual objects // according to line breakers, and ignores the empty elements in it. func GetNonEmptyLines(output string) []string {