mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-11 21:12:07 +00:00
Deflake services e2e
Picking a nodePort needs to be more robust than "add one to an existing port and hope it works". Now we try all ports in the range if we have to.
This commit is contained in:
parent
f1f250c6b4
commit
ed1f2d75e9
@ -504,15 +504,22 @@ var _ = Describe("Services", func() {
|
||||
By("hitting the pod through the service's LoadBalancer")
|
||||
testLoadBalancerReachable(ingress1, 80)
|
||||
|
||||
By("changing service " + serviceName + " update NodePort")
|
||||
nodePort2 := nodePort1 - 1
|
||||
if !ServiceNodePortRange.Contains(nodePort2) {
|
||||
//Check for (unlikely) assignment at bottom of range
|
||||
nodePort2 = nodePort1 + 1
|
||||
By("changing service " + serviceName + ": update NodePort")
|
||||
nodePort2 := 0
|
||||
for i := 1; i < ServiceNodePortRange.Size; i++ {
|
||||
offs1 := nodePort1 - ServiceNodePortRange.Base
|
||||
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())
|
||||
|
||||
if service.Spec.Type != api.ServiceTypeLoadBalancer {
|
||||
|
Loading…
Reference in New Issue
Block a user