From 85d5b4bd4aa8702fdec2cec470e97efa2d39a8b0 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Wed, 8 May 2024 10:25:49 -0400 Subject: [PATCH] Skip source IP preservation checks for Proxy-type load balancers To be revisited --- test/e2e/network/loadbalancer.go | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/test/e2e/network/loadbalancer.go b/test/e2e/network/loadbalancer.go index ab25df8a5d2..863a84bc7dd 100644 --- a/test/e2e/network/loadbalancer.go +++ b/test/e2e/network/loadbalancer.go @@ -927,11 +927,6 @@ var _ = common.SIGDescribe("LoadBalancers", feature.LoadBalancer, func() { }) var _ = common.SIGDescribe("LoadBalancers ExternalTrafficPolicy: Local", feature.LoadBalancer, framework.WithSlow(), func() { - // FIXME: What are the expected semantics of requesting an - // "ExternalTrafficPolicy: Local" service from a cloud provider that does not - // support that? What are the expected semantics of "ExternalTrafficPolicy: Local" - // on `IPMode: Proxy`-type LoadBalancers? - f := framework.NewDefaultFramework("esipp") f.NamespacePodSecurityLevel = admissionapi.LevelBaseline var loadBalancerCreateTimeout time.Duration @@ -987,6 +982,14 @@ var _ = common.SIGDescribe("LoadBalancers ExternalTrafficPolicy: Local", feature framework.ExpectNoError(err) }) + // FIXME: figure out the actual expected semantics for + // "ExternalTrafficPolicy: Local" + "IPMode: Proxy". + // https://issues.k8s.io/123714 + ingress := &svc.Status.LoadBalancer.Ingress[0] + if ingress.IP == "" || (ingress.IPMode != nil && *ingress.IPMode == v1.LoadBalancerIPModeProxy) { + e2eskipper.Skipf("LoadBalancer uses 'Proxy' IPMode") + } + svcTCPPort := int(svc.Spec.Ports[0].Port) ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0]) @@ -1133,6 +1136,14 @@ var _ = common.SIGDescribe("LoadBalancers ExternalTrafficPolicy: Local", feature framework.ExpectNoError(err) }) + // FIXME: figure out the actual expected semantics for + // "ExternalTrafficPolicy: Local" + "IPMode: Proxy". + // https://issues.k8s.io/123714 + ingress := &svc.Status.LoadBalancer.Ingress[0] + if ingress.IP == "" || (ingress.IPMode != nil && *ingress.IPMode == v1.LoadBalancerIPModeProxy) { + e2eskipper.Skipf("LoadBalancer uses 'Proxy' IPMode") + } + ingressIP := e2eservice.GetIngressPoint(&svc.Status.LoadBalancer.Ingress[0]) port := strconv.Itoa(int(svc.Spec.Ports[0].Port)) ipPort := net.JoinHostPort(ingressIP, port)