package reconciler

import "k8s.io/kubernetes/pkg/controller/volume/attachdetach/reconciler"

Package reconciler implements interfaces that attempt to reconcile the desired state of the with the actual state of the world by triggering actions.

Index

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,
	disableForceDetachOnTimeout 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.

Source Files

reconciler.go

Version
v1.33.0 (latest)
Published
Apr 23, 2025
Platform
linux/amd64
Imports
19 packages
Last checked
5 hours ago

Tools for package owners.