From d09eb7b259fc6608bbe33b362b7595dde8b08e11 Mon Sep 17 00:00:00 2001 From: Felix Kunde Date: Tue, 11 Feb 2020 17:31:01 +0100 Subject: [PATCH] on service change recreate service before endpoint --- pkg/cluster/resources.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/pkg/cluster/resources.go b/pkg/cluster/resources.go index c94a7bb46..d666f5d62 100644 --- a/pkg/cluster/resources.go +++ b/pkg/cluster/resources.go @@ -417,6 +417,15 @@ func (c *Cluster) updateService(role PostgresRole, newService *v1.Service) error // make sure we clear the stored service and endpoint status if the subsequent create fails. c.Services[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 { // create the new endpoint using the addresses obtained from the previous one endpointSpec := c.generateEndpoint(role, currentEndpoint.Subsets) @@ -428,13 +437,6 @@ func (c *Cluster) updateService(role PostgresRole, newService *v1.Service) error c.Endpoints[role] = ep } - 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 - return nil }