Skip to content

Commit 8b8d222

Browse files
committed
Fixing the finalizer of bucketclaim in bucket delete
1 parent 7fbbdbe commit 8b8d222

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

Diff for: pkg/bucket/bucket_controller.go

+25
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,8 @@ func (b *BucketListener) Update(ctx context.Context, old, new *v1alpha1.Bucket)
237237
}
238238

239239
// Delete attemps to delete a bucket. This function must be idempotent
240+
// Delete function is called when the bucket was not able to add finalizers while creation.
241+
// Hence we will take care of removing the BucketClaim finalizer before deleting the Bucket object.
240242
// Return values
241243
// nil - Bucket successfully deleted
242244
// non-nil err - Internal error [requeue'd with exponential backoff]
@@ -246,6 +248,29 @@ func (b *BucketListener) Delete(ctx context.Context, inputBucket *v1alpha1.Bucke
246248
"bucketclass", inputBucket.Spec.BucketClassName,
247249
)
248250

251+
if inputBucket.Spec.BucketClaim != nil {
252+
klog.V(3).Infof("Removing dependent BucketClaim finalizer")
253+
ref := inputBucket.Spec.BucketClaim
254+
255+
bucketClaim, err := b.bucketClaims(ref.Namespace).Get(ctx, ref.Name, metav1.GetOptions{})
256+
if err != nil {
257+
klog.V(3).ErrorS(err, "Error getting bucketClaim for removing finalizer",
258+
"bucket", inputBucket.ObjectMeta.Name,
259+
"bucketClaim", ref.Name)
260+
return err
261+
}
262+
263+
if controllerutil.RemoveFinalizer(bucketClaim, consts.BCFinalizer) {
264+
_, err := b.bucketClaims(bucketClaim.ObjectMeta.Namespace).UpdateStatus(ctx, bucketClaim, metav1.UpdateOptions{})
265+
if err != nil {
266+
klog.V(3).ErrorS(err, "Error removing bucketClaim finalizer",
267+
"bucket", inputBucket.ObjectMeta.Name,
268+
"bucketClaim", bucketClaim.ObjectMeta.Name)
269+
return err
270+
}
271+
}
272+
}
273+
249274
return nil
250275

251276
}

0 commit comments

Comments
 (0)