@@ -120,8 +120,21 @@ func (r *ReconcilePostgresUser) Reconcile(request reconcile.Request) (reconcile.
120120 // Deletion logic
121121 if instance .GetDeletionTimestamp () != nil {
122122 if instance .Status .Succeeded && instance .Status .PostgresRole != "" {
123- err := r .pg .DropRole (instance .Status .PostgresRole , instance .Status .PostgresGroup ,
124- instance .Status .DatabaseName , reqLogger )
123+ // Initialize database name for connection with default database
124+ // in case postgres cr isn't here anymore
125+ db := r .pg .GetDefaultDatabase ()
126+ // Search Postgres CR
127+ postgres , err := r .getPostgresCR (instance )
128+ // Check if error exists and not a not found error
129+ if err != nil && ! errors .IsNotFound (err ) {
130+ return reconcile.Result {}, err
131+ }
132+ // Check if postgres cr is found and not in deletion state
133+ if postgres != nil && ! postgres .GetDeletionTimestamp ().IsZero () {
134+ db = instance .Status .DatabaseName
135+ }
136+ err = r .pg .DropRole (instance .Status .PostgresRole , instance .Status .PostgresGroup ,
137+ db , reqLogger )
125138 if err != nil {
126139 return reconcile.Result {}, err
127140 }
@@ -194,7 +207,7 @@ func (r *ReconcilePostgresUser) Reconcile(request reconcile.Request) (reconcile.
194207 if err != nil {
195208 return r .requeue (instance , err )
196209 }
197- err = r .addOwnerRef (instance )
210+ err = r .addOwnerRef (reqLogger , instance )
198211 if err != nil {
199212 return r .requeue (instance , err )
200213 }
@@ -241,7 +254,7 @@ func (r *ReconcilePostgresUser) addFinalizer(reqLogger logr.Logger, m *dbv1alpha
241254 // Update CR
242255 err := r .client .Update (context .TODO (), m )
243256 if err != nil {
244- reqLogger .Error (err , "failed to update Posgres with finalizer" )
257+ reqLogger .Error (err , "failed to update PosgresUser with finalizer" )
245258 return err
246259 }
247260 }
@@ -300,19 +313,18 @@ func (r *ReconcilePostgresUser) getPostgresCR(instance *dbv1alpha1.PostgresUser)
300313 return & database , nil
301314}
302315
303- func (r * ReconcilePostgresUser ) addOwnerRef (instance * dbv1alpha1.PostgresUser ) error {
316+ func (r * ReconcilePostgresUser ) addOwnerRef (reqLogger logr.Logger , instance * dbv1alpha1.PostgresUser ) error {
317+ // Search postgres database CR
304318 pg , err := r .getPostgresCR (instance )
305319 if err != nil {
306320 return err
307321 }
308- isTrue := true
309- instance .OwnerReferences = append (instance .OwnerReferences , metav1.OwnerReference {
310- APIVersion : pg .APIVersion ,
311- Kind : pg .Kind ,
312- Name : pg .Name ,
313- UID : pg .UID ,
314- Controller : & isTrue ,
315- BlockOwnerDeletion : & isTrue ,
316- })
317- return nil
322+ // Update owners
323+ err = controllerutil .SetControllerReference (pg , instance , r .scheme )
324+ if err != nil {
325+ return err
326+ }
327+ // Update CR
328+ err = r .client .Update (context .TODO (), instance )
329+ return err
318330}
0 commit comments