Skip to content

Commit 3759634

Browse files
FxKuFelix Kunde
andauthored
delete secrets the right way (zalando#1054)
* delete secrets the right way * make a one function * continue deleting secrets even if one delete fails Co-authored-by: Felix Kunde <felix.kunde@zalando.de>
1 parent b80f976 commit 3759634

File tree

2 files changed

+20
-13
lines changed

2 files changed

+20
-13
lines changed

pkg/cluster/cluster.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -797,10 +797,8 @@ func (c *Cluster) Delete() {
797797
c.logger.Warningf("could not delete statefulset: %v", err)
798798
}
799799

800-
for _, obj := range c.Secrets {
801-
if err := c.deleteSecret(obj); err != nil {
802-
c.logger.Warningf("could not delete secret: %v", err)
803-
}
800+
if err := c.deleteSecrets(); err != nil {
801+
c.logger.Warningf("could not delete secrets: %v", err)
804802
}
805803

806804
if err := c.deletePodDisruptionBudget(); err != nil {

pkg/cluster/resources.go

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -725,17 +725,26 @@ func (c *Cluster) deleteEndpoint(role PostgresRole) error {
725725
return nil
726726
}
727727

728-
func (c *Cluster) deleteSecret(secret *v1.Secret) error {
729-
c.setProcessName("deleting secret %q", util.NameFromMeta(secret.ObjectMeta))
730-
c.logger.Debugf("deleting secret %q", util.NameFromMeta(secret.ObjectMeta))
731-
err := c.KubeClient.Secrets(secret.Namespace).Delete(context.TODO(), secret.Name, c.deleteOptions)
732-
if err != nil {
733-
return err
728+
func (c *Cluster) deleteSecrets() error {
729+
c.setProcessName("deleting secrets")
730+
var errors []string
731+
errorCount := 0
732+
for uid, secret := range c.Secrets {
733+
c.logger.Debugf("deleting secret %q", util.NameFromMeta(secret.ObjectMeta))
734+
err := c.KubeClient.Secrets(secret.Namespace).Delete(context.TODO(), secret.Name, c.deleteOptions)
735+
if err != nil {
736+
errors = append(errors, fmt.Sprintf("could not delete secret %q: %v", util.NameFromMeta(secret.ObjectMeta), err))
737+
errorCount++
738+
}
739+
c.logger.Infof("secret %q has been deleted", util.NameFromMeta(secret.ObjectMeta))
740+
c.Secrets[uid] = nil
734741
}
735-
c.logger.Infof("secret %q has been deleted", util.NameFromMeta(secret.ObjectMeta))
736-
delete(c.Secrets, secret.UID)
737742

738-
return err
743+
if errorCount > 0 {
744+
return fmt.Errorf("could not delete all secrets: %v", errors)
745+
}
746+
747+
return nil
739748
}
740749

741750
func (c *Cluster) createRoles() (err error) {

0 commit comments

Comments
 (0)