From 523675ff7140f9c2681e5fa270dfc89697910461 Mon Sep 17 00:00:00 2001 From: Camila Macedo Date: Sat, 14 Sep 2024 18:24:22 +0100 Subject: [PATCH] e2e-tests: fix/cleanup and add test to validate webhooks outside of the manager namespace - remove the steps to check webhook networkpolicy failures since those are not accurated. - cleanup the tests - add test to ensure that weebhoks are working well in namespaces which are not those where the webhook-service and manager are applied --- test/e2e/v4/plugin_cluster_test.go | 34 +++++++++++-------- .../.github/workflows/lint.yml | 0 .../.github/workflows/test-e2e.yml | 0 .../.github/workflows/test.yml | 0 4 files changed, 20 insertions(+), 14 deletions(-) rename testdata/{project-v4-multigroup-with-plugins => project-v4-multigroup}/.github/workflows/lint.yml (100%) rename testdata/{project-v4-multigroup-with-plugins => project-v4-multigroup}/.github/workflows/test-e2e.yml (100%) rename testdata/{project-v4-multigroup-with-plugins => project-v4-multigroup}/.github/workflows/test.yml (100%) diff --git a/test/e2e/v4/plugin_cluster_test.go b/test/e2e/v4/plugin_cluster_test.go index 2a9082365d3..8c47403369b 100644 --- a/test/e2e/v4/plugin_cluster_test.go +++ b/test/e2e/v4/plugin_cluster_test.go @@ -312,26 +312,32 @@ func Run(kbc *utils.TestContext, hasWebhook, isToUseInstaller, hasMetrics bool, ExpectWithOffset(1, count).To(BeNumerically("==", 5)) } - if hasWebhook && hasNetworkPolicies { - By("validating that webhooks from namespace without the label will fail") - - // Define the namespace name and CR sample file path - namespace := "test-namespace-without-webhook-label" - sampleFile := "path/to/your/sample-file.yaml" - - // Create the namespace - By("creating a namespace without the webhook: enabled label") + if hasWebhook { + By("creating a namespace") + namespace := "test-webhooks" _, err := kbc.Kubectl.Command("create", "namespace", namespace) Expect(err).NotTo(HaveOccurred(), "namespace should be created successfully") - // Apply the Custom Resource in the new namespace and expect it to fail - By("applying the CR in the namespace without the webhook: enabled label and expecting it to fail") + By("applying the CR in the created namespace") EventuallyWithOffset(1, func() error { - _, err = kbc.Kubectl.Apply(false, "-n", namespace, "-f", sampleFile) + _, err := kbc.Kubectl.Apply(false, "-n", namespace, "-f", sampleFile) return err - }, time.Minute, time.Second).Should(HaveOccurred(), "applying the CR should fail due to webhook call timeout") + }, 2*time.Minute, time.Second).ShouldNot(HaveOccurred(), + "apply in test-webhooks ns should not fail") + + By("validating that mutating webhooks are working fine outside of the manager's namespace") + cnt, err := kbc.Kubectl.Get( + false, + "-n", namespace, + "-f", sampleFile, + "-o", "go-template={{ .spec.count }}") + ExpectWithOffset(1, err).NotTo(HaveOccurred()) + + count, err := strconv.Atoi(cnt) + ExpectWithOffset(1, err).NotTo(HaveOccurred()) + ExpectWithOffset(1, count).To(BeNumerically("==", 5), + "the mutating webhook should set the count to 5") - // Cleanup: Remove the namespace By("removing the namespace") _, err = kbc.Kubectl.Command("delete", "namespace", namespace) Expect(err).NotTo(HaveOccurred(), "namespace should be removed successfully") diff --git a/testdata/project-v4-multigroup-with-plugins/.github/workflows/lint.yml b/testdata/project-v4-multigroup/.github/workflows/lint.yml similarity index 100% rename from testdata/project-v4-multigroup-with-plugins/.github/workflows/lint.yml rename to testdata/project-v4-multigroup/.github/workflows/lint.yml diff --git a/testdata/project-v4-multigroup-with-plugins/.github/workflows/test-e2e.yml b/testdata/project-v4-multigroup/.github/workflows/test-e2e.yml similarity index 100% rename from testdata/project-v4-multigroup-with-plugins/.github/workflows/test-e2e.yml rename to testdata/project-v4-multigroup/.github/workflows/test-e2e.yml diff --git a/testdata/project-v4-multigroup-with-plugins/.github/workflows/test.yml b/testdata/project-v4-multigroup/.github/workflows/test.yml similarity index 100% rename from testdata/project-v4-multigroup-with-plugins/.github/workflows/test.yml rename to testdata/project-v4-multigroup/.github/workflows/test.yml