// Wait for the load balancer to be created asynchronously, which is // currently indicated by ingress point(s) being added to the status. result, err = waitForLoadBalancerIngress(c, serviceName, ns) Expect(err).NotTo(HaveOccurred()) if len(result.Status.LoadBalancer.Ingress) != 1 { Failf("got unexpected number (%v) of ingress points for externally load balanced service: %v", result.Status.LoadBalancer.Ingress, result) } ingress := result.Status.LoadBalancer.Ingress[0] if len(result.Spec.Ports) != 1 { Failf("got unexpected len(Spec.Ports) for LoadBalancer service: %v", result) } port := result.Spec.Ports[0] if port.NodePort == 0 { Failf("got unexpected Spec.Ports[0].nodePort for LoadBalancer service: %v", result) } if !ServiceNodePortRange.Contains(port.NodePort) { Failf("got unexpected (out-of-range) port for LoadBalancer service: %v", result) } By("creating pod to be part of service " + serviceName) t.CreateWebserverRC(1) By("hitting the pod through the service's NodePort") testReachable(pickMinionIP(c), port.NodePort) By("hitting the pod through the service's external load balancer") testLoadBalancerReachable(ingress, inboundPort) }) It("should be able to create a functioning NodePort service", func() { serviceName := "nodeportservice-test"