@@ -207,8 +207,6 @@ func (c *Cluster) deleteConnectionPooler() (err error) {
207
207
serviceName = service .Name
208
208
}
209
209
210
- // set delete propagation policy to foreground, so that all the dependent
211
- // will be deleted.
212
210
err = c .KubeClient .
213
211
Services (c .Namespace ).
214
212
Delete (context .TODO (), serviceName , options )
@@ -221,6 +219,21 @@ func (c *Cluster) deleteConnectionPooler() (err error) {
221
219
222
220
c .logger .Infof ("Connection pooler service %q has been deleted" , serviceName )
223
221
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
+
224
237
c .ConnectionPooler = nil
225
238
return nil
226
239
}
@@ -730,14 +743,11 @@ func (c *Cluster) deleteSecrets() error {
730
743
var errors []string
731
744
errorCount := 0
732
745
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 )
735
747
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 ))
737
749
errorCount ++
738
750
}
739
- c .logger .Infof ("secret %q has been deleted" , util .NameFromMeta (secret .ObjectMeta ))
740
- c .Secrets [uid ] = nil
741
751
}
742
752
743
753
if errorCount > 0 {
@@ -747,6 +757,20 @@ func (c *Cluster) deleteSecrets() error {
747
757
return nil
748
758
}
749
759
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
+
750
774
func (c * Cluster ) createRoles () (err error ) {
751
775
// TODO: figure out what to do with duplicate names (humans and robots) among pgUsers
752
776
return c .syncRoles ()
0 commit comments