From ae24846c4879e4d576a39096fd8da774e3d9aac7 Mon Sep 17 00:00:00 2001 From: carlory Date: Thu, 2 Nov 2023 18:29:53 +0800 Subject: [PATCH] add comments for switch of syncUnboundClaim --- pkg/controller/volume/persistentvolume/pv_controller.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/controller/volume/persistentvolume/pv_controller.go b/pkg/controller/volume/persistentvolume/pv_controller.go index 2002c62db4f..8ee7afdb329 100644 --- a/pkg/controller/volume/persistentvolume/pv_controller.go +++ b/pkg/controller/volume/persistentvolume/pv_controller.go @@ -346,7 +346,7 @@ func (ctrl *PersistentVolumeController) syncUnboundClaim(ctx context.Context, cl } if volume == nil { logger.V(4).Info("Synchronizing unbound PersistentVolumeClaim, no volume found", "PVC", klog.KObj(claim)) - // No PV could be found + // No PV could be found. Try to provision one if possible. // OBSERVATION: pvc is "Pending", will retry logger.V(4).Info("Attempting to assign storage class to unbound PersistentVolumeClaim", "PVC", klog.KObj(claim)) @@ -363,10 +363,15 @@ func (ctrl *PersistentVolumeController) syncUnboundClaim(ctx context.Context, cl switch { case delayBinding && !storagehelpers.IsDelayBindingProvisioning(claim): + // Scheduler does not observe any pod using this claim. if err = ctrl.emitEventForUnboundDelayBindingClaim(claim); err != nil { return err } case storagehelpers.GetPersistentVolumeClaimClass(claim) != "": + // The provisionClaim function may start a new asynchronous operation to provision a volume, + // or the operation is already running. The claim will be updated in the asynchronous operation, + // so the branch should be returned directly and the bind operation is expected to continue in + // the next sync loop. if err = ctrl.provisionClaim(ctx, claim); err != nil { return err }