@@ -276,9 +276,45 @@ func (r *BucketReconciler) handleUpdate(
276276 // we reset the quota using the value from CR ("override" is present, "default" if not)
277277
278278 // Choosing between override / default
279- quotaToResetTo := bucketResource .Spec .Quota .Override
279+ quotaToResetTo , convertionSucceed := bucketResource .Spec .Quota .Override .AsInt64 ()
280+ if ! convertionSucceed {
281+ logger .Error (
282+ err ,
283+ "An error occurred while getting quotas override as int64 for ressource" ,
284+ "bucketName" ,
285+ bucketResource .Spec .Name ,
286+ "NamespacedName" ,
287+ req .NamespacedName .String (),
288+ )
289+ return r .SetReconciledCondition (
290+ ctx ,
291+ req ,
292+ bucketResource ,
293+ s3v1alpha1 .Unreachable ,
294+ "An error occurred while creating bucket" ,
295+ err ,
296+ )
297+ }
280298 if quotaToResetTo == 0 {
281- quotaToResetTo = bucketResource .Spec .Quota .Default
299+ quotaToResetTo , convertionSucceed = bucketResource .Spec .Quota .Default .AsInt64 ()
300+ if ! convertionSucceed {
301+ logger .Error (
302+ err ,
303+ "An error occurred while getting default quotas as int64 for ressource" ,
304+ "bucketName" ,
305+ bucketResource .Spec .Name ,
306+ "NamespacedName" ,
307+ req .NamespacedName .String (),
308+ )
309+ return r .SetReconciledCondition (
310+ ctx ,
311+ req ,
312+ bucketResource ,
313+ s3v1alpha1 .Unreachable ,
314+ "An error occurred while creating bucket" ,
315+ err ,
316+ )
317+ }
282318 }
283319
284320 if effectiveQuota != quotaToResetTo {
@@ -428,7 +464,26 @@ func (r *BucketReconciler) handleCreation(
428464 }
429465
430466 // Setting quotas
431- err = s3Client .SetQuota (bucketResource .Spec .Name , bucketResource .Spec .Quota .Default )
467+ quotas , convertionSucceed := bucketResource .Spec .Quota .Default .AsInt64 ()
468+ if ! convertionSucceed {
469+ logger .Error (
470+ err ,
471+ "An error occurred while getting quotas as int64 for ressource" ,
472+ "bucketName" ,
473+ bucketResource .Spec .Name ,
474+ "NamespacedName" ,
475+ req .NamespacedName .String (),
476+ )
477+ return r .SetReconciledCondition (
478+ ctx ,
479+ req ,
480+ bucketResource ,
481+ s3v1alpha1 .CreationFailure ,
482+ "An error occurred while creating bucket" ,
483+ err ,
484+ )
485+ }
486+ err = s3Client .SetQuota (bucketResource .Spec .Name , quotas )
432487 if err != nil {
433488 logger .Error (
434489 err ,
0 commit comments