From 1f4267eb054699ef91374e33e40317355bf8caee Mon Sep 17 00:00:00 2001 From: Stephane T Date: Tue, 21 May 2019 12:49:34 +0100 Subject: [PATCH] fix: remove headless service config when deleting cluster (#567) see: https://github.com/zalando/postgres-operator/issues/566 Signed-off-by: Stephane Tang --- pkg/cluster/cluster.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/pkg/cluster/cluster.go b/pkg/cluster/cluster.go index 9cbc46e70..e75002a7f 100644 --- a/pkg/cluster/cluster.go +++ b/pkg/cluster/cluster.go @@ -1004,8 +1004,8 @@ func (c *Cluster) deletePatroniClusterObjects() error { if !c.patroniUsesKubernetes() { c.logger.Infof("not cleaning up Etcd Patroni objects on cluster delete") } - c.logger.Debugf("removing leftover Patroni objects (endpoints or configmaps)") - for _, deleter := range []simpleActionWithResult{c.deletePatroniClusterEndpoints, c.deletePatroniClusterConfigMaps} { + c.logger.Debugf("removing leftover Patroni objects (endpoints, services and configmaps)") + for _, deleter := range []simpleActionWithResult{c.deletePatroniClusterEndpoints, c.deletePatroniClusterServices, c.deletePatroniClusterConfigMaps} { if err := deleter(); err != nil { return err } @@ -1037,6 +1037,19 @@ func (c *Cluster) deleteClusterObject( return nil } +func (c *Cluster) deletePatroniClusterServices() error { + get := func(name string) (spec.NamespacedName, error) { + svc, err := c.KubeClient.Services(c.Namespace).Get(name, metav1.GetOptions{}) + return util.NameFromMeta(svc.ObjectMeta), err + } + + deleteServiceFn := func(name string) error { + return c.KubeClient.Services(c.Namespace).Delete(name, c.deleteOptions) + } + + return c.deleteClusterObject(get, deleteServiceFn, "service") +} + func (c *Cluster) deletePatroniClusterEndpoints() error { get := func(name string) (spec.NamespacedName, error) { ep, err := c.KubeClient.Endpoints(c.Namespace).Get(name, metav1.GetOptions{})