mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-26 12:46:06 +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:
@@ -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 {
|
||||
|
Reference in New Issue
Block a user