Revert "add e2e test for Service ExternalIPs"

This reverts commit 0ed8fd6dc9.

It turns out that ExternalIPs are not allowed to be reachable from
pods until the IP is present in the node.
However, due to a kube-proxy limitation it was working in environment
that used CNIs without bridges for the pods.
This commit is contained in:
Antonio Ojea 2020-11-05 10:35:24 +01:00
parent e0a51c9e6b
commit 76a9c8695a
2 changed files with 0 additions and 44 deletions

View File

@ -829,10 +829,6 @@ func testReachabilityOverClusterIP(clusterIP string, sp v1.ServicePort, execPod
return nil
}
func testReachabilityOverExternalIP(externalIP string, sp v1.ServicePort, execPod *v1.Pod) error {
return testEndpointReachability(externalIP, sp.Port, sp.Protocol, execPod)
}
func testReachabilityOverNodePorts(nodes *v1.NodeList, sp v1.ServicePort, pod *v1.Pod, clusterIP string) error {
internalAddrs := e2enode.CollectAddresses(nodes, v1.NodeInternalIP)
externalAddrs := e2enode.CollectAddresses(nodes, v1.NodeExternalIP)
@ -915,7 +911,6 @@ func testEndpointReachability(endpoint string, port int32, protocol v1.Protocol,
func (j *TestJig) checkClusterIPServiceReachability(svc *v1.Service, pod *v1.Pod) error {
clusterIP := svc.Spec.ClusterIP
servicePorts := svc.Spec.Ports
externalIPs := svc.Spec.ExternalIPs
err := j.waitForAvailableEndpoint(ServiceEndpointsTimeout)
if err != nil {
@ -931,14 +926,6 @@ func (j *TestJig) checkClusterIPServiceReachability(svc *v1.Service, pod *v1.Pod
if err != nil {
return err
}
if len(externalIPs) > 0 {
for _, externalIP := range externalIPs {
err = testReachabilityOverExternalIP(externalIP, servicePort, pod)
if err != nil {
return err
}
}
}
}
return nil
}

View File

@ -1179,37 +1179,6 @@ var _ = SIGDescribe("Services", func() {
framework.ExpectNoError(err)
})
/*
Create a ClusterIP service with an External IP that is not assigned to an interface.
The IP ranges here are reserved for documentation according to
[RFC 5737](https://tools.ietf.org/html/rfc5737) Section 3 and should not be used by any host.
*/
ginkgo.It("should be possible to connect to a service via ExternalIP when the external IP is not assigned to a node", func() {
serviceName := "externalip-test"
ns := f.Namespace.Name
externalIP := "203.0.113.250"
if framework.TestContext.ClusterIsIPv6() {
externalIP = "2001:DB8::cb00:71fa"
}
jig := e2eservice.NewTestJig(cs, ns, serviceName)
ginkgo.By("creating service " + serviceName + " with type=clusterIP in namespace " + ns)
clusterIPService, err := jig.CreateTCPService(func(svc *v1.Service) {
svc.Spec.Type = v1.ServiceTypeClusterIP
svc.Spec.ExternalIPs = []string{externalIP}
svc.Spec.Ports = []v1.ServicePort{
{Port: 80, Name: "http", Protocol: v1.ProtocolTCP, TargetPort: intstr.FromInt(9376)},
}
})
framework.ExpectNoError(err)
err = jig.CreateServicePods(2)
framework.ExpectNoError(err)
execPod := e2epod.CreateExecPodOrFail(cs, ns, "execpod", nil)
err = jig.CheckServiceReachability(clusterIPService, execPod)
framework.ExpectNoError(err)
})
// TODO: Get rid of [DisabledForLargeClusters] tag when issue #56138 is fixed.
ginkgo.It("should be able to change the type and ports of a service [Slow] [DisabledForLargeClusters]", func() {
// requires cloud load-balancer support