From 78730ef57258bbe3ac5356d02c91135e921e9d85 Mon Sep 17 00:00:00 2001 From: Felix Kunde Date: Wed, 12 Feb 2020 10:21:42 +0100 Subject: [PATCH] wait for endpoint deletion, too --- pkg/cluster/resources.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pkg/cluster/resources.go b/pkg/cluster/resources.go index d666f5d62..38ba16d37 100644 --- a/pkg/cluster/resources.go +++ b/pkg/cluster/resources.go @@ -414,6 +414,23 @@ func (c *Cluster) updateService(role PostgresRole, newService *v1.Service) error return fmt.Errorf("could not delete service %q: %v", serviceName, err) } + if role == Master { + err = retryutil.Retry(c.OpConfig.ResourceCheckInterval, c.OpConfig.ResourceCheckTimeout, + func() (bool, error) { + _, err2 := c.KubeClient.Endpoints(c.Namespace).Get(c.endpointName(role), metav1.GetOptions{}) + if err2 == nil { + return false, nil + } + if k8sutil.ResourceNotFound(err2) { + return true, nil + } + return false, err2 + }) + if err != nil { + return fmt.Errorf("could not delete endpoint %q: %v", currentEndpoint, err) + } + } + // make sure we clear the stored service and endpoint status if the subsequent create fails. c.Services[role] = nil c.Endpoints[role] = nil