Skip to content

Commit

Permalink
e2e-tests: fix test to ensure networkpolicies protection for webhooks
Browse files Browse the repository at this point in the history
The current implementation is not accurate. The changes of this
commit fix the respective check.
  • Loading branch information
camilamacedo86 committed Sep 14, 2024
1 parent 174b2c9 commit a950f28
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions test/e2e/v4/plugin_cluster_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -314,24 +314,31 @@ func Run(kbc *utils.TestContext, hasWebhook, isToUseInstaller, hasMetrics bool,

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")
_, 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")
EventuallyWithOffset(1, func() error {
_, 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")
}, time.Minute, time.Second).ShouldNot(HaveOccurred(), "should apply the CR")

By("validating that mutating webhooks will not work due missing webhook namespace label")
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("==", 1),
"the mutating webhook should set the count to 1 since namespace has no label")

// Cleanup: Remove the namespace
By("removing the namespace")
_, err = kbc.Kubectl.Command("delete", "namespace", namespace)
Expect(err).NotTo(HaveOccurred(), "namespace should be removed successfully")
Expand Down

0 comments on commit a950f28

Please sign in to comment.