fix: remove headless service config when deleting cluster (#567)

see: https://github.com/zalando/postgres-operator/issues/566

Signed-off-by: Stephane Tang <hi@stang.sh>
This commit is contained in:
Stephane T 2019-05-21 12:49:34 +01:00 committed by Sergey Dudoladov
parent f3e1e80aaf
commit 1f4267eb05
1 changed files with 15 additions and 2 deletions

View File

@ -1004,8 +1004,8 @@ func (c *Cluster) deletePatroniClusterObjects() error {
if !c.patroniUsesKubernetes() { if !c.patroniUsesKubernetes() {
c.logger.Infof("not cleaning up Etcd Patroni objects on cluster delete") c.logger.Infof("not cleaning up Etcd Patroni objects on cluster delete")
} }
c.logger.Debugf("removing leftover Patroni objects (endpoints or configmaps)") c.logger.Debugf("removing leftover Patroni objects (endpoints, services and configmaps)")
for _, deleter := range []simpleActionWithResult{c.deletePatroniClusterEndpoints, c.deletePatroniClusterConfigMaps} { for _, deleter := range []simpleActionWithResult{c.deletePatroniClusterEndpoints, c.deletePatroniClusterServices, c.deletePatroniClusterConfigMaps} {
if err := deleter(); err != nil { if err := deleter(); err != nil {
return err return err
} }
@ -1037,6 +1037,19 @@ func (c *Cluster) deleteClusterObject(
return nil 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 { func (c *Cluster) deletePatroniClusterEndpoints() error {
get := func(name string) (spec.NamespacedName, error) { get := func(name string) (spec.NamespacedName, error) {
ep, err := c.KubeClient.Endpoints(c.Namespace).Get(name, metav1.GetOptions{}) ep, err := c.KubeClient.Endpoints(c.Namespace).Get(name, metav1.GetOptions{})