# Functions

AddCommonClaimLabels adds common labels to a pvc.
AddCommonLabels adds common labels to a resource.
AddOwnershipLabel adds owner label.
GetCommonDriver returns the name of the CSI driver shared by all PVCs.
GetCompatibleVolumeSnapshotClass returns a VolumeSnapshotClass name that works for all PVCs Note the last PVC passed is considered the target PVC for logs and events.
GetDriverFromVolume returns the CSI driver name for a PVC.
GetGlobalCloneStrategyOverride returns the global clone strategy override.
GetStorageClassForClaim returns the storageclass for a PVC.
IsDataSourcePVC checks for PersistentVolumeClaim source kind.
IsDataSourceSnapshot checks for Snapshot source kind.
IsSourceClaimReady checks that PVC exists, is bound, and is not being used.
SameVolumeMode returns true if all pvcs have the same volume mode.

# Constants

CloneValidationFailed reports that a clone wasn't admitted by our validation mechanism (reason).
CloneWithoutSource reports that the source of a clone doesn't exists (reason).
CSIClonePhaseName is the name of the csi clone phase.
ErrorPhaseName is the phase when the clone is in error.
HostClonePhaseName is the name of the host clone phase.
IncompatibleProvisioners reports that the provisioners are incompatible (reason).
IncompatibleVolumeModes reports that the volume modes of source and target are incompatible (reason).
MessageCloneValidationFailed reports that a clone wasn't admitted by our validation mechanism (message).
MessageCloneWithoutSource reports that the source of a clone doesn't exists (message).
MessageIncompatibleProvisioners reports that the provisioners are incompatible (message).
MessageIncompatibleVolumeModes reports that the volume modes of source and target are incompatible (message).
MessageNoProvisionerMatch reports that the storageclass provisioner does not match the volumesnapshotcontent driver (message).
MessageNoVolumeExpansion reports that no volume expansion is possible (message).
MessageNoVolumeSnapshotClass reports that no compatible volumesnapshotclass was found (message).
NoProvisionerMatch reports that the storageclass provisioner does not match the volumesnapshotcontent driver (reason).
NoVolumeExpansion reports that no volume expansion is possible (reason).
NoVolumeSnapshotClass reports that no compatible volumesnapshotclass was found (reason).
PendingPhaseName is the phase when the clone is pending.
PrepClaimPhaseName is the name of the prep claim phase.
RebindPhaseName is the name of the rebind phase.
SnapshotClonePhaseName is the name of the snapshot clone phase.
SnapshotPhaseName is the name of the snapshot phase.
SucceededPhaseName is the phase when the clone is succeeded.

# Structs

ChooseStrategyArgs are args for ChooseStrategy function.
ChooseStrategyResult is result returned by ChooseStrategy function.
CSIClonePhase is responsible for csi cloning a pvc.
HostClonePhase creates and monitors a dumb clone operation.
IsSourceClaimReadyArgs are arguments for IsSourceClaimReady.
PhaseStatus contains phase status data.
PlanArgs are args to plan clone op for populator.
Planner plans clone operations.
PrepClaimPhase is responsible for prepping a PVC for rebind.
RebindPhase binds a PV from one PVC to another.
SnapshotClonePhase waits for a snapshot to be ready and creates a PVC from it.
SnapshotPhase snapshots a PVC.

# Interfaces

Phase is the interface implemented by all clone phases.
StatusReporter allows a phase to report status.