Documentation ¶
Overview ¶
Package reconciler implements interfaces that attempt to reconcile the desired state of the with the actual state of the world by triggering actions.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Reconciler ¶
type Reconciler interface { // Starts running the reconciliation loop which executes periodically, checks // if volumes that should be attached are attached and volumes that should // be detached are detached. If not, it will trigger attach/detach // operations to rectify. Run(ctx context.Context) }
Reconciler runs a periodic loop to reconcile the desired state of the world with the actual state of the world by triggering attach detach operations. Note: This is distinct from the Reconciler implemented by the kubelet volume manager. This reconciles state for the attach/detach controller. That reconciles state for the kubelet volume manager.
func NewReconciler ¶
func NewReconciler( loopPeriod time.Duration, maxWaitForUnmountDuration time.Duration, syncDuration time.Duration, disableReconciliationSync bool, desiredStateOfWorld cache.DesiredStateOfWorld, actualStateOfWorld cache.ActualStateOfWorld, attacherDetacher operationexecutor.OperationExecutor, nodeStatusUpdater statusupdater.NodeStatusUpdater, nodeLister corelisters.NodeLister, recorder record.EventRecorder) Reconciler
NewReconciler returns a new instance of Reconciler that waits loopPeriod between successive executions. loopPeriod is the amount of time the reconciler loop waits between successive executions. maxWaitForUnmountDuration is the max amount of time the reconciler will wait for the volume to be safely unmounted, after this it will detach the volume anyway (to handle crashed/unavailable nodes). If during this time the volume becomes used by a new pod, the detach request will be aborted and the timer cleared.