mirror of
https://github.com/cozystack/cozystack.git
synced 2026-11-09 22:13:18 +09:00
[Backport release-1.4] fix(objectstorage-controller): propagate Bucket readiness to BucketClaim (#2828)
# Description Backport of #2792 to `release-1.4`.
This commit is contained in:
1 file changed
+29
+29
@@ -0,0 +1,29 @@
|
||||
diff --git a/controller/pkg/bucketclaim/bucketclaim.go b/controller/pkg/bucketclaim/bucketclaim.go
|
||||
index 2b55c49..038cf28 100644
|
||||
--- a/controller/pkg/bucketclaim/bucketclaim.go
|
||||
+++ b/controller/pkg/bucketclaim/bucketclaim.go
|
||||
@@ -213,8 +213,23 @@ func (b *BucketClaimListener) provisionBucketClaimOperation(ctx context.Context,
|
||||
return b.recordError(inputBucketClaim, v1.EventTypeWarning, v1alpha1.FailedCreateBucket, err)
|
||||
}
|
||||
|
||||
+ // The Bucket for this claim may already exist from an earlier reconcile,
|
||||
+ // in which case the sidecar may have provisioned the backend and flipped
|
||||
+ // the Bucket to ready in the meantime. The controller does not watch
|
||||
+ // Buckets, so re-read the live object and propagate its readiness here;
|
||||
+ // otherwise the BucketClaim stays BucketReady=false forever (each resync
|
||||
+ // re-enters this branch, Create returns AlreadyExists, and the readiness
|
||||
+ // transition is never reflected), so BucketAccess can never be granted.
|
||||
+ createdBucket, getErr := b.buckets().Get(ctx, bucketName, metav1.GetOptions{})
|
||||
+ if getErr != nil {
|
||||
+ klog.V(3).ErrorS(getErr, "Error reading bucket after create",
|
||||
+ "bucket", bucketName,
|
||||
+ "bucketClaim", bucketClaim.ObjectMeta.Name)
|
||||
+ return b.recordError(inputBucketClaim, v1.EventTypeWarning, v1alpha1.FailedCreateBucket, getErr)
|
||||
+ }
|
||||
+
|
||||
bucketClaim.Status.BucketName = bucketName
|
||||
- bucketClaim.Status.BucketReady = false
|
||||
+ bucketClaim.Status.BucketReady = createdBucket.Status.BucketReady
|
||||
}
|
||||
|
||||
// Update status with retry logic for conflict errors
|
||||
Reference in new issue
Block a user