Merge pull request #129582 from aojea/service_nodeport

e2e services: avoid panic on service creation retry
This commit is contained in:
Kubernetes Prow Robot 2025-01-13 01:22:33 -08:00 committed by GitHub
commit 5e220e4041
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1680,16 +1680,17 @@ var _ = common.SIGDescribe("Services", func() {
}
}()
service := t.BuildServiceSpec()
service.Spec.Type = v1.ServiceTypeNodePort
var service *v1.Service
baseService := t.BuildServiceSpec()
baseService.Spec.Type = v1.ServiceTypeNodePort
numberOfRetries := 5
ginkgo.By("creating service " + serviceName + " with type NodePort in namespace " + ns)
var err error
for i := 0; i < numberOfRetries; i++ {
port, err := e2eservice.GetUnusedStaticNodePort()
framework.ExpectNoError(err, "Static node port allocator was not able to find a free nodeport.")
service.Spec.Ports[0].NodePort = port
service, err = t.CreateService(service)
baseService.Spec.Ports[0].NodePort = port
service, err = t.CreateService(baseService)
// We will later delete this service and then recreate it with same nodeport. We need to ensure that
// another e2e test doesn't start listening on our old nodeport and conflicts re-creation of service
// hence we use ReserveStaticNodePort.