only error out at the end
This commit is contained in:
parent
78730ef572
commit
ce28bf1cc4
|
|
@ -414,6 +414,8 @@ func (c *Cluster) updateService(role PostgresRole, newService *v1.Service) error
|
||||||
return fmt.Errorf("could not delete service %q: %v", serviceName, err)
|
return fmt.Errorf("could not delete service %q: %v", serviceName, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// wait until the service is truly deleted
|
||||||
|
c.logger.Debugf("waiting for endpoint to be deleted")
|
||||||
if role == Master {
|
if role == Master {
|
||||||
err = retryutil.Retry(c.OpConfig.ResourceCheckInterval, c.OpConfig.ResourceCheckTimeout,
|
err = retryutil.Retry(c.OpConfig.ResourceCheckInterval, c.OpConfig.ResourceCheckTimeout,
|
||||||
func() (bool, error) {
|
func() (bool, error) {
|
||||||
|
|
@ -425,7 +427,7 @@ func (c *Cluster) updateService(role PostgresRole, newService *v1.Service) error
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
return false, err2
|
return false, err2
|
||||||
})
|
})return
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("could not delete endpoint %q: %v", currentEndpoint, err)
|
return fmt.Errorf("could not delete endpoint %q: %v", currentEndpoint, err)
|
||||||
}
|
}
|
||||||
|
|
@ -435,23 +437,27 @@ func (c *Cluster) updateService(role PostgresRole, newService *v1.Service) error
|
||||||
c.Services[role] = nil
|
c.Services[role] = nil
|
||||||
c.Endpoints[role] = nil
|
c.Endpoints[role] = nil
|
||||||
|
|
||||||
// create new service
|
|
||||||
svc, err := c.KubeClient.Services(serviceName.Namespace).Create(newService)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("could not create service %q: %v", serviceName, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
c.Services[role] = svc
|
|
||||||
|
|
||||||
if role == Master {
|
if role == Master {
|
||||||
// create the new endpoint using the addresses obtained from the previous one
|
// create the new endpoint using the addresses obtained from the previous one
|
||||||
endpointSpec := c.generateEndpoint(role, currentEndpoint.Subsets)
|
endpointSpec := c.generateEndpoint(role, currentEndpoint.Subsets)
|
||||||
ep, err := c.KubeClient.Endpoints(endpointSpec.Namespace).Create(endpointSpec)
|
ep, err := c.KubeClient.Endpoints(endpointSpec.Namespace).Create(endpointSpec)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("could not create endpoint %q: %v", endpointName, err)
|
c.logger.Errorf("could not create endpoint %q: %v", endpointName, err)
|
||||||
|
} else {
|
||||||
|
c.Endpoints[role] = ep
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
c.Endpoints[role] = ep
|
// create new service
|
||||||
|
svc, err := c.KubeClient.Services(serviceName.Namespace).Create(newService)
|
||||||
|
if err != nil {
|
||||||
|
c.logger.Errorf("could not create service %q: %v", serviceName, err)
|
||||||
|
} else {
|
||||||
|
c.Services[role] = svc
|
||||||
|
}
|
||||||
|
|
||||||
|
if c.Services[role] == nil || c.Endpoints[role] == nil {
|
||||||
|
return fmt.Errorf("could not update service")
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue