@@ -207,8 +207,6 @@ func (c *Cluster) deleteConnectionPooler() (err error) {
207207 serviceName = service .Name
208208 }
209209
210- // set delete propagation policy to foreground, so that all the dependent
211- // will be deleted.
212210 err = c .KubeClient .
213211 Services (c .Namespace ).
214212 Delete (context .TODO (), serviceName , options )
@@ -221,6 +219,21 @@ func (c *Cluster) deleteConnectionPooler() (err error) {
221219
222220 c .logger .Infof ("Connection pooler service %q has been deleted" , serviceName )
223221
222+ // Repeat the same for the secret object
223+ secretName := c .credentialSecretName (c .OpConfig .ConnectionPooler .User )
224+
225+ secret , err := c .KubeClient .
226+ Secrets (c .Namespace ).
227+ Get (context .TODO (), secretName , metav1.GetOptions {})
228+
229+ if err != nil {
230+ c .logger .Debugf ("could not get connection pooler secret %q: %v" , secretName , err )
231+ } else {
232+ if err = c .deleteSecret (secret .UID , * secret ); err != nil {
233+ return fmt .Errorf ("could not delete pooler secret: %v" , err )
234+ }
235+ }
236+
224237 c .ConnectionPooler = nil
225238 return nil
226239}
@@ -730,14 +743,11 @@ func (c *Cluster) deleteSecrets() error {
730743 var errors []string
731744 errorCount := 0
732745 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 )
746+ err := c .deleteSecret (uid , * secret )
735747 if err != nil {
736- errors = append (errors , fmt .Sprintf ("could not delete secret %q: %v" , util . NameFromMeta ( secret . ObjectMeta ) , err ))
748+ errors = append (errors , fmt .Sprintf ("%v" , err ))
737749 errorCount ++
738750 }
739- c .logger .Infof ("secret %q has been deleted" , util .NameFromMeta (secret .ObjectMeta ))
740- c .Secrets [uid ] = nil
741751 }
742752
743753 if errorCount > 0 {
@@ -747,6 +757,20 @@ func (c *Cluster) deleteSecrets() error {
747757 return nil
748758}
749759
760+ func (c * Cluster ) deleteSecret (uid types.UID , secret v1.Secret ) error {
761+ c .setProcessName ("deleting secret" )
762+ secretName := util .NameFromMeta (secret .ObjectMeta )
763+ c .logger .Debugf ("deleting secret %q" , secretName )
764+ err := c .KubeClient .Secrets (secret .Namespace ).Delete (context .TODO (), secret .Name , c .deleteOptions )
765+ if err != nil {
766+ return fmt .Errorf ("could not delete secret %q: %v" , secretName , err )
767+ }
768+ c .logger .Infof ("secret %q has been deleted" , secretName )
769+ c .Secrets [uid ] = nil
770+
771+ return nil
772+ }
773+
750774func (c * Cluster ) createRoles () (err error ) {
751775 // TODO: figure out what to do with duplicate names (humans and robots) among pgUsers
752776 return c .syncRoles ()
0 commit comments