From 28bacf31e18542abb0d739a0d2c04d3ce129283f Mon Sep 17 00:00:00 2001 From: Brad Davidson Date: Fri, 7 Feb 2025 19:28:51 +0000 Subject: [PATCH] Fix e2e ingress IP helper Signed-off-by: Brad Davidson --- tests/e2e/testutils.go | 12 +++++++----- tests/e2e/wasm/wasm_test.go | 11 ++++++++--- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/tests/e2e/testutils.go b/tests/e2e/testutils.go index 0d471666cb68..ee1696b60cfd 100644 --- a/tests/e2e/testutils.go +++ b/tests/e2e/testutils.go @@ -342,15 +342,17 @@ func FetchExternalIPs(kubeconfig string, servicename string) ([]string, error) { return externalIPs, nil } -func FetchIngressIP(kubeconfig string) ([]string, error) { - cmd := "kubectl get ing ingress -o jsonpath='{.status.loadBalancer.ingress[*].ip}' --kubeconfig=" + kubeconfig +func FetchIngressIP(namespace, name, kubeconfig string) ([]string, error) { + cmd := fmt.Sprintf("kubectl get ingress -n %s %s -o jsonpath='{.status.loadBalancer.ingress[*].ip}' --kubeconfig=%s", namespace, name, kubeconfig) res, err := RunCommand(cmd) if err != nil { return nil, err } - ingressIP := strings.Trim(res, " ") - ingressIPs := strings.Split(ingressIP, " ") - return ingressIPs, nil + res := strings.TrimSpace(res) + if res = "" { + return nil, fmt.Errorf("no IPs found for ingress %s/%s", namespace, name) + } + return strings.Split(res, " "), nil } func (v VagrantNode) FetchNodeExternalIP() (string, error) { diff --git a/tests/e2e/wasm/wasm_test.go b/tests/e2e/wasm/wasm_test.go index 60c42625e004..47f7abe6345d 100644 --- a/tests/e2e/wasm/wasm_test.go +++ b/tests/e2e/wasm/wasm_test.go @@ -97,9 +97,14 @@ var _ = Describe("Verify K3s can run Wasm workloads", Ordered, func() { }) It("Interact with Wasm applications", func() { - ingressIPs, err := e2e.FetchIngressIP(tc.KubeConfigFile) - Expect(err).NotTo(HaveOccurred()) - Expect(ingressIPs).To(HaveLen(1)) + var ingressIPs []string + var err error + + Eventually(func() { + ingressIPs, err = e2e.FetchIngressIP("default", "ingress", tc.KubeConfigFile) + Expect(err).NotTo(HaveOccurred()) + Expect(ingressIPs).To(HaveLen(1)) + }, "120s", "5s").Should(Succeed()) endpoints := []string{"slight/hello", "spin/go-hello", "spin/hello"} for _, endpoint := range endpoints {