From 8e7eb560230d989e17b257e208608896aed43abf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=BCttler?= Date: Wed, 4 Feb 2026 12:04:42 +0100 Subject: [PATCH] Fallback to ExternalIP in tests. Make test code behave like [GetNodeHostIPs()](https://pkg.go.dev/k8s.io/kubernetes/pkg/util/node#GetNodeHostIPs) First try InternalIP, then ExternalIP. --- test/e2e/network/hostport.go | 3 +++ test/e2e/network/service.go | 10 ++++++++-- test/e2e/scheduling/predicates.go | 7 +++++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/test/e2e/network/hostport.go b/test/e2e/network/hostport.go index 22f9033e38c..56b2fb2cedc 100644 --- a/test/e2e/network/hostport.go +++ b/test/e2e/network/hostport.go @@ -78,6 +78,9 @@ var _ = common.SIGDescribe("HostPort", func() { randomNode := &nodes.Items[rand.Intn(len(nodes.Items))] ips := e2enode.GetAddressesByTypeAndFamily(randomNode, v1.NodeInternalIP, family) + if len(ips) == 0 { + ips = e2enode.GetAddressesByTypeAndFamily(randomNode, v1.NodeExternalIP, family) + } if len(ips) == 0 { framework.Failf("Failed to get NodeIP") } diff --git a/test/e2e/network/service.go b/test/e2e/network/service.go index e8b67f08e62..4ae4c72ceb2 100644 --- a/test/e2e/network/service.go +++ b/test/e2e/network/service.go @@ -4215,7 +4215,10 @@ func execAffinityTestForSessionAffinityTimeout(ctx context.Context, f *framework family = v1.IPv6Protocol } svcIP = e2enode.FirstAddressByTypeAndFamily(nodes, v1.NodeInternalIP, family) - gomega.Expect(svcIP).NotTo(gomega.BeEmpty(), "failed to get Node internal IP for family: %s", family) + if svcIP == "" { + svcIP = e2enode.FirstAddressByTypeAndFamily(nodes, v1.NodeExternalIP, family) + } + gomega.Expect(svcIP).NotTo(gomega.BeEmpty(), "failed to get Node IP for family: %s", family) servicePort = int(svc.Spec.Ports[0].NodePort) } else { svcIP = svc.Spec.ClusterIP @@ -4298,7 +4301,10 @@ func execAffinityTestForNonLBServiceWithOptionalTransition(ctx context.Context, family = v1.IPv6Protocol } svcIP = e2enode.FirstAddressByTypeAndFamily(nodes, v1.NodeInternalIP, family) - gomega.Expect(svcIP).NotTo(gomega.BeEmpty(), "failed to get Node internal IP for family: %s", family) + if svcIP == "" { + svcIP = e2enode.FirstAddressByTypeAndFamily(nodes, v1.NodeExternalIP, family) + } + gomega.Expect(svcIP).NotTo(gomega.BeEmpty(), "failed to get Node IP for family: %s", family) servicePort = int(svc.Spec.Ports[0].NodePort) } else { svcIP = svc.Spec.ClusterIP diff --git a/test/e2e/scheduling/predicates.go b/test/e2e/scheduling/predicates.go index c66f7bb3a67..f76f114c541 100644 --- a/test/e2e/scheduling/predicates.go +++ b/test/e2e/scheduling/predicates.go @@ -1268,8 +1268,11 @@ func getNodeHostIP(ctx context.Context, f *framework.Framework, nodeName string) framework.ExpectNoError(err) ips := e2enode.GetAddressesByTypeAndFamily(node, v1.NodeInternalIP, family) if len(ips) == 0 { - framework.Failf("No address by type (%s) and family (%s) on node (%s) found.", - v1.NodeInternalIP, family, nodeName) + ips = e2enode.GetAddressesByTypeAndFamily(node, v1.NodeExternalIP, family) + } + if len(ips) == 0 { + framework.Failf("No address by family (%s) on node (%s) found.", + family, nodeName) } return ips[0] }