mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +00:00
Merge pull request #18532 from thockin/deflake-svcs-e2e
Deflake services e2e
This commit is contained in:
commit
6e29e84e14
@ -504,29 +504,36 @@ var _ = Describe("Services", func() {
|
|||||||
By("hitting the pod through the service's LoadBalancer")
|
By("hitting the pod through the service's LoadBalancer")
|
||||||
testLoadBalancerReachable(ingress1, 80)
|
testLoadBalancerReachable(ingress1, 80)
|
||||||
|
|
||||||
By("changing service " + serviceName + " update NodePort")
|
By("changing service " + serviceName + ": update NodePort")
|
||||||
nodePort2 := nodePort1 - 1
|
nodePort2 := 0
|
||||||
if !ServiceNodePortRange.Contains(nodePort2) {
|
for i := 1; i < ServiceNodePortRange.Size; i++ {
|
||||||
//Check for (unlikely) assignment at bottom of range
|
offs1 := nodePort1 - ServiceNodePortRange.Base
|
||||||
nodePort2 = nodePort1 + 1
|
offs2 := (offs1 + i) % ServiceNodePortRange.Size
|
||||||
|
nodePort2 = ServiceNodePortRange.Base + offs2
|
||||||
|
service, err = updateService(f.Client, f.Namespace.Name, serviceName, func(s *api.Service) {
|
||||||
|
s.Spec.Ports[0].NodePort = nodePort2
|
||||||
|
})
|
||||||
|
if err != nil && strings.Contains(err.Error(), "provided port is already allocated") {
|
||||||
|
Logf("nodePort %d is busy, will retry", nodePort2)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// Otherwise err was nil or err was a real error
|
||||||
|
break
|
||||||
}
|
}
|
||||||
service, err = updateService(f.Client, f.Namespace.Name, serviceName, func(s *api.Service) {
|
|
||||||
s.Spec.Ports[0].NodePort = nodePort2
|
|
||||||
})
|
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
if service.Spec.Type != api.ServiceTypeLoadBalancer {
|
if service.Spec.Type != api.ServiceTypeLoadBalancer {
|
||||||
Failf("got unexpected Spec.Type for updated-NodePort service: %v", service)
|
Failf("got unexpected Spec.Type for updated-LoadBalancer service: %v", service)
|
||||||
}
|
}
|
||||||
if len(service.Spec.Ports) != 1 {
|
if len(service.Spec.Ports) != 1 {
|
||||||
Failf("got unexpected len(Spec.Ports) for updated-NodePort service: %v", service)
|
Failf("got unexpected len(Spec.Ports) for updated-LoadBalancer service: %v", service)
|
||||||
}
|
}
|
||||||
port = service.Spec.Ports[0]
|
port = service.Spec.Ports[0]
|
||||||
if port.NodePort != nodePort2 {
|
if port.NodePort != nodePort2 {
|
||||||
Failf("got unexpected Spec.Ports[0].nodePort for NodePort service: %v", service)
|
Failf("got unexpected Spec.Ports[0].nodePort for LoadBalancer service: %v", service)
|
||||||
}
|
}
|
||||||
if len(service.Status.LoadBalancer.Ingress) != 1 {
|
if len(service.Status.LoadBalancer.Ingress) != 1 {
|
||||||
Failf("got unexpected len(Status.LoadBalancer.Ingress) for NodePort service: %v", service)
|
Failf("got unexpected len(Status.LoadBalancer.Ingress) for LoadBalancer service: %v", service)
|
||||||
}
|
}
|
||||||
|
|
||||||
By("hitting the pod through the service's updated NodePort")
|
By("hitting the pod through the service's updated NodePort")
|
||||||
@ -541,7 +548,7 @@ var _ = Describe("Services", func() {
|
|||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
|
||||||
ingress2 := service.Status.LoadBalancer.Ingress[0]
|
ingress2 := service.Status.LoadBalancer.Ingress[0]
|
||||||
if testLoadBalancerReachableInTime(ingress2, 80, 5*time.Second) {
|
if testLoadBalancerReachable(ingress2, 80) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user