do not error out on deleting Patroni cluster objects

This commit is contained in:
Felix Kunde 2022-03-29 11:05:06 +02:00
parent 2c4e5db334
commit aa8b4bf365
1 changed files with 19 additions and 19 deletions

View File

@ -1564,7 +1564,7 @@ func (c *Cluster) Unlock() {
c.mu.Unlock() c.mu.Unlock()
} }
type simpleActionWithResult func() error type simpleActionWithResult func()
type clusterObjectGet func(name string) (spec.NamespacedName, error) type clusterObjectGet func(name string) (spec.NamespacedName, error)
@ -1586,38 +1586,38 @@ func (c *Cluster) deletePatroniClusterObjects() error {
c.logger.Debugf("removing leftover Patroni objects (endpoints / services and configmaps)") c.logger.Debugf("removing leftover Patroni objects (endpoints / services and configmaps)")
for _, deleter := range actionsList { for _, deleter := range actionsList {
if err := deleter(); err != nil { deleter()
return err
}
} }
return nil return nil
} }
func (c *Cluster) deleteClusterObject( func deleteClusterObject(
get clusterObjectGet, get clusterObjectGet,
del clusterObjectDelete, del clusterObjectDelete,
objType string) error { objType string,
clusterName string,
logger *logrus.Entry) {
for _, suffix := range patroniObjectSuffixes { for _, suffix := range patroniObjectSuffixes {
name := fmt.Sprintf("%s-%s", c.Name, suffix) name := fmt.Sprintf("%s-%s", clusterName, suffix)
if namespacedName, err := get(name); err == nil { namespacedName, err := get(name)
c.logger.Debugf("deleting Patroni cluster object %q with name %q", if err == nil {
logger.Debugf("deleting %s %q",
objType, namespacedName) objType, namespacedName)
if err = del(name); err != nil { if err = del(name); err != nil {
return fmt.Errorf("could not delete Patroni cluster object %q with name %q: %v", logger.Warningf("could not delete %s %q: %v",
objType, namespacedName, err) objType, namespacedName, err)
} }
} else if !k8sutil.ResourceNotFound(err) { } else if !k8sutil.ResourceNotFound(err) {
return fmt.Errorf("could not fetch Patroni Endpoint %q: %v", logger.Warningf("could not fetch %s %q: %v",
namespacedName, err) objType, namespacedName, err)
} }
} }
return nil
} }
func (c *Cluster) deletePatroniClusterServices() error { func (c *Cluster) deletePatroniClusterServices() {
get := func(name string) (spec.NamespacedName, error) { get := func(name string) (spec.NamespacedName, error) {
svc, err := c.KubeClient.Services(c.Namespace).Get(context.TODO(), name, metav1.GetOptions{}) svc, err := c.KubeClient.Services(c.Namespace).Get(context.TODO(), name, metav1.GetOptions{})
return util.NameFromMeta(svc.ObjectMeta), err return util.NameFromMeta(svc.ObjectMeta), err
@ -1627,10 +1627,10 @@ func (c *Cluster) deletePatroniClusterServices() error {
return c.KubeClient.Services(c.Namespace).Delete(context.TODO(), name, c.deleteOptions) return c.KubeClient.Services(c.Namespace).Delete(context.TODO(), name, c.deleteOptions)
} }
return c.deleteClusterObject(get, deleteServiceFn, "service") deleteClusterObject(get, deleteServiceFn, "service", c.Name, c.logger)
} }
func (c *Cluster) deletePatroniClusterEndpoints() error { func (c *Cluster) deletePatroniClusterEndpoints() {
get := func(name string) (spec.NamespacedName, error) { get := func(name string) (spec.NamespacedName, error) {
ep, err := c.KubeClient.Endpoints(c.Namespace).Get(context.TODO(), name, metav1.GetOptions{}) ep, err := c.KubeClient.Endpoints(c.Namespace).Get(context.TODO(), name, metav1.GetOptions{})
return util.NameFromMeta(ep.ObjectMeta), err return util.NameFromMeta(ep.ObjectMeta), err
@ -1640,10 +1640,10 @@ func (c *Cluster) deletePatroniClusterEndpoints() error {
return c.KubeClient.Endpoints(c.Namespace).Delete(context.TODO(), name, c.deleteOptions) return c.KubeClient.Endpoints(c.Namespace).Delete(context.TODO(), name, c.deleteOptions)
} }
return c.deleteClusterObject(get, deleteEndpointFn, "endpoint") deleteClusterObject(get, deleteEndpointFn, "endpoint", c.Name, c.logger)
} }
func (c *Cluster) deletePatroniClusterConfigMaps() error { func (c *Cluster) deletePatroniClusterConfigMaps() {
get := func(name string) (spec.NamespacedName, error) { get := func(name string) (spec.NamespacedName, error) {
cm, err := c.KubeClient.ConfigMaps(c.Namespace).Get(context.TODO(), name, metav1.GetOptions{}) cm, err := c.KubeClient.ConfigMaps(c.Namespace).Get(context.TODO(), name, metav1.GetOptions{})
return util.NameFromMeta(cm.ObjectMeta), err return util.NameFromMeta(cm.ObjectMeta), err
@ -1653,5 +1653,5 @@ func (c *Cluster) deletePatroniClusterConfigMaps() error {
return c.KubeClient.ConfigMaps(c.Namespace).Delete(context.TODO(), name, c.deleteOptions) return c.KubeClient.ConfigMaps(c.Namespace).Delete(context.TODO(), name, c.deleteOptions)
} }
return c.deleteClusterObject(get, deleteConfigMapFn, "configmap") deleteClusterObject(get, deleteConfigMapFn, "configmap", c.Name, c.logger)
} }