Skip to content

Commit fe40ed4

Browse files
authored
set max back off duration for reconcilers (#3510)
1 parent 8df648e commit fe40ed4

File tree

8 files changed

+21
-8
lines changed

8 files changed

+21
-8
lines changed

pkg/syncer/cnsoperator/controller/cnsfileaccessconfig/cnsfileaccessconfig_controller.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -854,7 +854,8 @@ func recordEvent(ctx context.Context, r *ReconcileCnsFileAccessConfig,
854854
case v1.EventTypeWarning:
855855
// Double backOff duration.
856856
backOffDurationMapMutex.Lock()
857-
backOffDuration[namespacedName] = backOffDuration[namespacedName] * 2
857+
backOffDuration[namespacedName] = min(backOffDuration[namespacedName]*2,
858+
cnsoperatortypes.MaxBackOffDurationForReconciler)
858859
r.recorder.Event(instance, v1.EventTypeWarning, "CnsFileAccessConfigFailed", msg)
859860
backOffDurationMapMutex.Unlock()
860861
case v1.EventTypeNormal:

pkg/syncer/cnsoperator/controller/cnsnodevmattachment/cnsnodevmattachment_controller.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -928,7 +928,8 @@ func recordEvent(ctx context.Context, r *ReconcileCnsNodeVMAttachment,
928928
case v1.EventTypeWarning:
929929
// Double backOff duration.
930930
backOffDurationMapMutex.Lock()
931-
backOffDuration[namespacedName] = backOffDuration[namespacedName] * 2
931+
backOffDuration[namespacedName] = min(backOffDuration[namespacedName]*2,
932+
cnsoperatortypes.MaxBackOffDurationForReconciler)
932933
backOffDurationMapMutex.Unlock()
933934
r.recorder.Event(instance, v1.EventTypeWarning, "NodeVMAttachFailed", msg)
934935
log.Error(msg)

pkg/syncer/cnsoperator/controller/cnsnodevmbatchattachment/cnsnodevmbatchattachment_controller.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,8 @@ func recordEvent(ctx context.Context, r *Reconciler,
529529
case v1.EventTypeWarning:
530530
// Double backOff duration.
531531
backOffDurationMapMutex.Lock()
532-
backOffDuration[namespacedName] = backOffDuration[namespacedName] * 2
532+
backOffDuration[namespacedName] = min(backOffDuration[namespacedName]*2,
533+
cnsoperatortypes.MaxBackOffDurationForReconciler)
533534
backOffDurationMapMutex.Unlock()
534535
r.recorder.Event(instance, v1.EventTypeWarning, "NodeVmBatchAttachFailed", msg)
535536
log.Error(msg)

pkg/syncer/cnsoperator/controller/cnsregistervolume/cnsregistervolume_controller.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import (
4141
"sigs.k8s.io/controller-runtime/pkg/manager"
4242
"sigs.k8s.io/controller-runtime/pkg/reconcile"
4343
"sigs.k8s.io/controller-runtime/pkg/source"
44+
cnsoperatortypes "sigs.k8s.io/vsphere-csi-driver/v3/pkg/syncer/cnsoperator/types"
4445

4546
clientConfig "sigs.k8s.io/controller-runtime/pkg/client/config"
4647

@@ -1010,7 +1011,8 @@ func recordEvent(ctx context.Context, r *ReconcileCnsRegisterVolume,
10101011
case v1.EventTypeWarning:
10111012
// Double backOff duration.
10121013
backOffDurationMapMutex.Lock()
1013-
backOffDuration[namespacedName] = backOffDuration[namespacedName] * 2
1014+
backOffDuration[namespacedName] = min(backOffDuration[namespacedName]*2,
1015+
cnsoperatortypes.MaxBackOffDurationForReconciler)
10141016
r.recorder.Event(instance, v1.EventTypeWarning, "CnsRegisterVolumeFailed", msg)
10151017
backOffDurationMapMutex.Unlock()
10161018
case v1.EventTypeNormal:

pkg/syncer/cnsoperator/controller/cnsunregistervolume/controller.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import (
3636
"sigs.k8s.io/controller-runtime/pkg/manager"
3737
"sigs.k8s.io/controller-runtime/pkg/reconcile"
3838
"sigs.k8s.io/controller-runtime/pkg/source"
39+
cnsoperatortypes "sigs.k8s.io/vsphere-csi-driver/v3/pkg/syncer/cnsoperator/types"
3940

4041
apis "sigs.k8s.io/vsphere-csi-driver/v3/pkg/apis/cnsoperator"
4142
v1a1 "sigs.k8s.io/vsphere-csi-driver/v3/pkg/apis/cnsoperator/cnsunregistervolume/v1alpha1"
@@ -50,7 +51,6 @@ import (
5051

5152
const (
5253
defaultMaxWorkerThreads = 10
53-
maxBackOffDuration = 5 * time.Minute
5454
)
5555

5656
var (
@@ -332,7 +332,8 @@ func recordEvent(ctx context.Context, r *Reconciler,
332332
case v1.EventTypeWarning:
333333
// Double backOff duration.
334334
backOffDurationMapMutex.Lock()
335-
backOffDuration[namespacedName] = min(backOffDuration[namespacedName]*2, maxBackOffDuration)
335+
backOffDuration[namespacedName] = min(backOffDuration[namespacedName]*2,
336+
cnsoperatortypes.MaxBackOffDurationForReconciler)
336337
r.recorder.Event(instance, v1.EventTypeWarning, "CnsUnregisterVolumeFailed", msg)
337338
backOffDurationMapMutex.Unlock()
338339
case v1.EventTypeNormal:

pkg/syncer/cnsoperator/controller/cnsvolumemetadata/cnsvolumemetadata_controller.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,8 @@ func recordEvent(ctx context.Context, r *ReconcileCnsVolumeMetadata,
507507
case v1.EventTypeWarning:
508508
// Double backOff duration.
509509
backOffDurationMapMutex.Lock()
510-
backOffDuration[namespacedName] = backOffDuration[namespacedName] * 2
510+
backOffDuration[namespacedName] = min(backOffDuration[namespacedName]*2,
511+
cnsoperatortypes.MaxBackOffDurationForReconciler)
511512
backOffDurationMapMutex.Unlock()
512513
r.recorder.Event(instance, v1.EventTypeWarning, "UpdateFailed", msg)
513514
log.Error(msg)

pkg/syncer/cnsoperator/controller/csinodetopology/csinodetopology_controller.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import (
4040
"sigs.k8s.io/controller-runtime/pkg/predicate"
4141
"sigs.k8s.io/controller-runtime/pkg/reconcile"
4242
"sigs.k8s.io/controller-runtime/pkg/source"
43+
cnsoperatortypes "sigs.k8s.io/vsphere-csi-driver/v3/pkg/syncer/cnsoperator/types"
4344

4445
"sigs.k8s.io/vsphere-csi-driver/v3/pkg/common/cns-lib/node"
4546
volumes "sigs.k8s.io/vsphere-csi-driver/v3/pkg/common/cns-lib/volume"
@@ -466,7 +467,8 @@ func updateCRStatus(ctx context.Context, r *ReconcileCSINodeTopology, instance *
466467
case csinodetopologyv1alpha1.CSINodeTopologyError:
467468
// Increase backoff duration for the instance.
468469
backOffDurationMapMutex.Lock()
469-
backOffDuration[namespacedName] = backOffDuration[namespacedName] * 2
470+
backOffDuration[namespacedName] = min(backOffDuration[namespacedName]*2,
471+
cnsoperatortypes.MaxBackOffDurationForReconciler)
470472
backOffDurationMapMutex.Unlock()
471473

472474
// Record an event on the CR.

pkg/syncer/cnsoperator/types/types.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ limitations under the License.
1616

1717
package types
1818

19+
import "time"
20+
1921
const (
2022
// CNSFinalizer is the finalizer on CNSNodeVmAttachment and CnsVolumeMetadata controllers
2123
CNSFinalizer = "cns.vmware.com"
@@ -41,4 +43,6 @@ const (
4143
LabelVirtualMachineName = "vm.consumer.storage.com/name"
4244
// Label that points to a StoragePolicyReservation CR name. This is added to CNSRegisterVolume CR and PVC.
4345
LabelStoragePolicyReservationName = "quota.storage.vmware.com/storagepolicyreservation-name"
46+
// MaxBackOffDurationForReconciler for supervisor APIs is set to 5 minutes
47+
MaxBackOffDurationForReconciler = 5 * time.Minute
4448
)

0 commit comments

Comments
 (0)