diff --git a/pkg/cluster/cluster.go b/pkg/cluster/cluster.go index 44c3e9b62..ef728a728 100644 --- a/pkg/cluster/cluster.go +++ b/pkg/cluster/cluster.go @@ -797,10 +797,8 @@ func (c *Cluster) Delete() { c.logger.Warningf("could not delete statefulset: %v", err) } - for _, obj := range c.Secrets { - if err := c.deleteSecret(obj); err != nil { - c.logger.Warningf("could not delete secret: %v", err) - } + if err := c.deleteSecrets(); err != nil { + c.logger.Warningf("could not delete secrets: %v", err) } if err := c.deletePodDisruptionBudget(); err != nil { diff --git a/pkg/cluster/resources.go b/pkg/cluster/resources.go index 5c35058c2..6353b617f 100644 --- a/pkg/cluster/resources.go +++ b/pkg/cluster/resources.go @@ -725,7 +725,19 @@ func (c *Cluster) deleteEndpoint(role PostgresRole) error { return nil } -func (c *Cluster) deleteSecret(secret *v1.Secret) error { +func (c *Cluster) deleteSecrets() error { + c.setProcessName("deleting secrets") + for uid := range c.Secrets { + if err := c.deleteSecret(uid); err != nil { + return err + } + } + + return nil +} + +func (c *Cluster) deleteSecret(uid types.UID) error { + secret := c.Secrets[uid] c.setProcessName("deleting secret %q", util.NameFromMeta(secret.ObjectMeta)) c.logger.Debugf("deleting secret %q", util.NameFromMeta(secret.ObjectMeta)) err := c.KubeClient.Secrets(secret.Namespace).Delete(context.TODO(), secret.Name, c.deleteOptions) @@ -733,7 +745,7 @@ func (c *Cluster) deleteSecret(secret *v1.Secret) error { return err } c.logger.Infof("secret %q has been deleted", util.NameFromMeta(secret.ObjectMeta)) - delete(c.Secrets, secret.UID) + c.Secrets[uid] = nil return err }