From 520ce44c551feda2ed9ac196889bf471eda8e640 Mon Sep 17 00:00:00 2001 From: pacoxu Date: Wed, 3 Mar 2021 14:44:27 +0800 Subject: [PATCH] skip test on External IP of NodePort in conformance test --- test/e2e/framework/service/jig.go | 27 ++++++++++++++++----------- test/e2e/network/service.go | 4 ++++ 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/test/e2e/framework/service/jig.go b/test/e2e/framework/service/jig.go index bb1f7ac68ec..e171a368fc5 100644 --- a/test/e2e/framework/service/jig.go +++ b/test/e2e/framework/service/jig.go @@ -64,6 +64,9 @@ type TestJig struct { Name string ID string Labels map[string]string + // ExternalIPs should be false for Conformance test + // Don't check nodeport on external addrs in conformance test, but in e2e test. + ExternalIPs bool } // NewTestJig allocates and inits a new TestJig. @@ -828,9 +831,8 @@ func testReachabilityOverExternalIP(externalIP string, sp v1.ServicePort, execPo return testEndpointReachability(externalIP, sp.Port, sp.Protocol, execPod) } -func testReachabilityOverNodePorts(nodes *v1.NodeList, sp v1.ServicePort, pod *v1.Pod, clusterIP string) error { +func testReachabilityOverNodePorts(nodes *v1.NodeList, sp v1.ServicePort, pod *v1.Pod, clusterIP string, externalIPs bool) error { internalAddrs := e2enode.CollectAddresses(nodes, v1.NodeInternalIP) - externalAddrs := e2enode.CollectAddresses(nodes, v1.NodeExternalIP) isClusterIPV4 := utilsnet.IsIPv4String(clusterIP) for _, internalAddr := range internalAddrs { @@ -851,14 +853,17 @@ func testReachabilityOverNodePorts(nodes *v1.NodeList, sp v1.ServicePort, pod *v return err } } - for _, externalAddr := range externalAddrs { - if isClusterIPV4 != utilsnet.IsIPv4String(externalAddr) { - framework.Logf("skipping testEndpointReachability() for external adddress %s as it does not match clusterIP (%s) family", externalAddr, clusterIP) - continue - } - err := testEndpointReachability(externalAddr, sp.NodePort, sp.Protocol, pod) - if err != nil { - return err + if externalIPs { + externalAddrs := e2enode.CollectAddresses(nodes, v1.NodeExternalIP) + for _, externalAddr := range externalAddrs { + if isClusterIPV4 != utilsnet.IsIPv4String(externalAddr) { + framework.Logf("skipping testEndpointReachability() for external adddress %s as it does not match clusterIP (%s) family", externalAddr, clusterIP) + continue + } + err := testEndpointReachability(externalAddr, sp.NodePort, sp.Protocol, pod) + if err != nil { + return err + } } } return nil @@ -969,7 +974,7 @@ func (j *TestJig) checkNodePortServiceReachability(svc *v1.Service, pod *v1.Pod) if err != nil { return err } - err = testReachabilityOverNodePorts(nodes, servicePort, pod, clusterIP) + err = testReachabilityOverNodePorts(nodes, servicePort, pod, clusterIP, j.ExternalIPs) if err != nil { return err } diff --git a/test/e2e/network/service.go b/test/e2e/network/service.go index 101b491ea24..407c2fd6e1a 100644 --- a/test/e2e/network/service.go +++ b/test/e2e/network/service.go @@ -914,6 +914,7 @@ var _ = common.SIGDescribe("Services", func() { ginkgo.By("creating a TCP service " + serviceName + " with type=ClusterIP in namespace " + ns) jig := e2eservice.NewTestJig(cs, ns, serviceName) + jig.ExternalIPs = true servicePort := 8080 tcpService, err := jig.CreateTCPServiceWithPort(nil, int32(servicePort)) framework.ExpectNoError(err) @@ -983,6 +984,7 @@ var _ = common.SIGDescribe("Services", func() { ginkgo.By("creating a TCP service " + serviceName + " with type=ClusterIP in namespace " + ns) jig := e2eservice.NewTestJig(cs, ns, serviceName) + jig.ExternalIPs = true servicePort := 8080 svc, err := jig.CreateTCPServiceWithPort(nil, int32(servicePort)) framework.ExpectNoError(err) @@ -1176,6 +1178,7 @@ var _ = common.SIGDescribe("Services", func() { } jig := e2eservice.NewTestJig(cs, ns, serviceName) + jig.ExternalIPs = true ginkgo.By("creating service " + serviceName + " with type=clusterIP in namespace " + ns) clusterIPService, err := jig.CreateTCPService(func(svc *v1.Service) { @@ -1204,6 +1207,7 @@ var _ = common.SIGDescribe("Services", func() { serviceName := "nodeport-update-service" ns := f.Namespace.Name jig := e2eservice.NewTestJig(cs, ns, serviceName) + jig.ExternalIPs = true ginkgo.By("creating a TCP service " + serviceName + " with type=ClusterIP in namespace " + ns) tcpService, err := jig.CreateTCPService(nil)