Documentation
¶
Index ¶
- Constants
- Variables
- func CheckPVCUsingPopulators(pvc *v1.PersistentVolumeClaim) (bool, error)
- func CheckVolumeSatisfyClaim(volume *v1.PersistentVolume, claim *v1.PersistentVolumeClaim) error
- func CreateAvailablePersistentVolumeIndex(fieldIndexer client.FieldIndexer) error
- func CreateCommonIndexes(mgr manager.Manager) error
- func FindConditionByType(conditionType cdiv1.DataVolumeConditionType, ...) *cdiv1.DataVolumeCondition
- func NewImportController(ctx context.Context, mgr manager.Manager, log logr.Logger, ...) (controller.Controller, error)
- func NewPopulatorController(ctx context.Context, mgr manager.Manager, log logr.Logger, ...) (controller.Controller, error)
- func NewPvcCloneController(ctx context.Context, mgr manager.Manager, log logr.Logger, clonerImage string, ...) (controller.Controller, error)
- func NewSnapshotCloneController(ctx context.Context, mgr manager.Manager, log logr.Logger, clonerImage string, ...) (controller.Controller, error)
- func NewUploadController(ctx context.Context, mgr manager.Manager, log logr.Logger, ...) (controller.Controller, error)
- func RenderPvc(ctx context.Context, client client.Client, pvc *v1.PersistentVolumeClaim) error
- func UpdateReadyCondition(conditions []cdiv1.DataVolumeCondition, status corev1.ConditionStatus, ...) []cdiv1.DataVolumeCondition
- type CloneReconcilerBase
- type Event
- type ImportReconciler
- type PopulatorReconciler
- type PvcCloneReconciler
- type ReconcilerBase
- type SnapshotCloneReconciler
- type UploadReconciler
Constants ¶
const ( // ErrUnableToClone provides a const to indicate some errors are blocking the clone ErrUnableToClone = "ErrUnableToClone" // CloneScheduled provides a const to indicate clone is scheduled CloneScheduled = "CloneScheduled" // CloneInProgress provides a const to indicate clone is in progress CloneInProgress = "CloneInProgress" // SnapshotForSmartCloneInProgress provides a const to indicate snapshot creation for smart-clone is in progress SnapshotForSmartCloneInProgress = "SnapshotForSmartCloneInProgress" // CloneFromSnapshotSourceInProgress provides a const to indicate clone from snapshot source is in progress CloneFromSnapshotSourceInProgress = "CloneFromSnapshotSourceInProgress" // SnapshotForSmartCloneCreated provides a const to indicate snapshot creation for smart-clone has been completed SnapshotForSmartCloneCreated = "SnapshotForSmartCloneCreated" // CSICloneInProgress provides a const to indicate csi volume clone is in progress CSICloneInProgress = "CSICloneInProgress" // CloneFailed provides a const to indicate clone has failed CloneFailed = "CloneFailed" // CloneSucceeded provides a const to indicate clone has succeeded CloneSucceeded = "CloneSucceeded" // MessageCloneScheduled provides a const to form clone is scheduled message MessageCloneScheduled = "Cloning from %s/%s into %s/%s scheduled" // MessageCloneInProgress provides a const to form clone is in progress message MessageCloneInProgress = "Cloning from %s/%s into %s/%s in progress" // MessageCloneFailed provides a const to form clone has failed message MessageCloneFailed = "Cloning from %s/%s into %s/%s failed" // MessageCloneSucceeded provides a const to form clone has succeeded message MessageCloneSucceeded = "Successfully cloned from %s/%s into %s/%s" // MessageSmartCloneInProgress provides a const to form snapshot for smart-clone is in progress message MessageSmartCloneInProgress = "Creating snapshot for smart-clone is in progress (for pvc %s/%s)" // MessageCloneFromSnapshotSourceInProgress provides a const to form clone from snapshot source is in progress message MessageCloneFromSnapshotSourceInProgress = "Creating PVC from snapshot source is in progress (for %s %s/%s)" // MessageCsiCloneInProgress provides a const to form a CSI Volume Clone in progress message MessageCsiCloneInProgress = "CSI Volume clone in progress (for pvc %s/%s)" // ExpansionInProgress is const representing target PVC expansion ExpansionInProgress = "ExpansionInProgress" // MessageExpansionInProgress is a const for reporting target expansion MessageExpansionInProgress = "Expanding PersistentVolumeClaim for DataVolume %s/%s" // NamespaceTransferInProgress is const representing target PVC transfer NamespaceTransferInProgress = "NamespaceTransferInProgress" // MessageNamespaceTransferInProgress is a const for reporting target transfer MessageNamespaceTransferInProgress = "Transferring PersistentVolumeClaim for DataVolume %s/%s" // SizeDetectionPodCreated provides a const to indicate that the size-detection pod has been created (reason) SizeDetectionPodCreated = "SizeDetectionPodCreated" // MessageSizeDetectionPodCreated provides a const to indicate that the size-detection pod has been created (message) MessageSizeDetectionPodCreated = "Size-detection pod created" // SizeDetectionPodNotReady reports that the size-detection pod has not finished its execution (reason) SizeDetectionPodNotReady = "SizeDetectionPodNotReady" // MessageSizeDetectionPodNotReady reports that the size-detection pod has not finished its execution (message) MessageSizeDetectionPodNotReady = "The size detection pod is not finished yet" // ImportPVCNotReady reports that it's not yet possible to access the source PVC (reason) ImportPVCNotReady = "ImportPVCNotReady" // MessageImportPVCNotReady reports that it's not yet possible to access the source PVC (message) MessageImportPVCNotReady = "The source PVC is not fully imported" // CloneValidationFailed reports that a clone wasn't admitted by our validation mechanism (reason) CloneValidationFailed = "CloneValidationFailed" // MessageCloneValidationFailed reports that a clone wasn't admitted by our validation mechanism (message) MessageCloneValidationFailed = "The clone doesn't meet the validation requirements" // CloneWithoutSource reports that the source of a clone doesn't exists (reason) CloneWithoutSource = "CloneWithoutSource" // MessageCloneWithoutSource reports that the source of a clone doesn't exists (message) MessageCloneWithoutSource = "The source %s %s doesn't exist" // PrepClaimInProgress is const representing target PVC prep PrepClaimInProgress = "PrepClaimInProgress" // MessagePrepClaimInProgress is a const for reporting target prep MessagePrepClaimInProgress = "Prepping PersistentVolumeClaim for DataVolume %s/%s" // RebindInProgress is const representing target PVC rebind RebindInProgress = "RebindInProgress" // MessageRebindInProgress is a const for reporting target rebind MessageRebindInProgress = "Rebinding PersistentVolumeClaim for DataVolume %s/%s" // NoPopulator reports CDI populator is not used so we fallback to host-assisted cloning (reason) NoPopulator = "NoPopulator" // NoPopulatorMessage reports CDI populator is not used so we fallback to host-assisted cloning (message) NoPopulatorMessage = "In tree storage class does not support snapshot/clone" // AnnCSICloneRequest annotation associates object with CSI Clone Request AnnCSICloneRequest = "cdi.kubevirt.io/CSICloneRequest" // AnnVirtualImageSize annotation contains the Virtual Image size of a PVC used for host-assisted cloning AnnVirtualImageSize = "cdi.Kubervirt.io/virtualSize" // AnnSourceCapacity annotation contains the storage capacity of a PVC used for host-assisted cloning AnnSourceCapacity = "cdi.Kubervirt.io/sourceCapacity" )
const ( // ErrResourceExists provides a const to indicate a resource exists error ErrResourceExists = "ErrResourceExists" // ErrResourceMarkedForDeletion provides a const to indicate a resource marked for deletion error ErrResourceMarkedForDeletion = "ErrResourceMarkedForDeletion" // ErrClaimLost provides a const to indicate a claim is lost ErrClaimLost = "ErrClaimLost" // MessageResourceMarkedForDeletion provides a const to form a resource marked for deletion error message MessageResourceMarkedForDeletion = "Resource %q marked for deletion" // MessageResourceExists provides a const to form a resource exists error message MessageResourceExists = "Resource %q already exists and is not managed by DataVolume" // MessageErrClaimLost provides a const to form claim lost message MessageErrClaimLost = "PVC %s lost" )
const ( // ExternalPopulationSucceeded provides a const to indicate that the external population of the PVC has succeeded (reason) ExternalPopulationSucceeded = "ExternalPopulationSucceeded" // MessageExternalPopulationSucceeded provides a const to indicate that the external population of the PVC has succeeded (message) MessageExternalPopulationSucceeded = "PVC %s successfully populated by %s" // NoAnyVolumeDataSource provides a const to indicate that the AnyVolumeDataSource feature gate is not enabled (reason) NoAnyVolumeDataSource = "NoAnyVolumeDataSource" // MessageNoAnyVolumeDataSource provides a const to indicate that the AnyVolumeDataSource feature gate is not enabled (message) MessageNoAnyVolumeDataSource = "AnyVolumeDataSource feature gate is not enabled: External population not supported" // NoCSIDriverForExternalPopulation provides a const to indicate that no CSI drivers were found for external population (reason) NoCSIDriverForExternalPopulation = "NoCSIDriverForExternalPopulation" // MessageNoCSIDriverForExternalPopulation provides a const to indicate that no CSI drivers were found for external population (message) MessageNoCSIDriverForExternalPopulation = "No CSI drivers were found: External population not supported" )
const ( // ImportScheduled provides a const to indicate import is scheduled ImportScheduled = "ImportScheduled" // ImportInProgress provides a const to indicate an import is in progress ImportInProgress = "ImportInProgress" // ImportFailed provides a const to indicate import has failed ImportFailed = "ImportFailed" // ImportSucceeded provides a const to indicate import has succeeded ImportSucceeded = "ImportSucceeded" // MessageImportScheduled provides a const to form import is scheduled message MessageImportScheduled = "Import into %s scheduled" // MessageImportInProgress provides a const to form import is in progress message MessageImportInProgress = "Import into %s in progress" // MessageImportFailed provides a const to form import has failed message MessageImportFailed = "Failed to import into PVC %s" // MessageImportSucceeded provides a const to form import has succeeded message MessageImportSucceeded = "Successfully imported into PVC %s" )
const ( // UploadScheduled provides a const to indicate upload is scheduled UploadScheduled = "UploadScheduled" // UploadReady provides a const to indicate upload is in progress UploadReady = "UploadReady" // UploadFailed provides a const to indicate upload has failed UploadFailed = "UploadFailed" // UploadSucceeded provides a const to indicate upload has succeeded UploadSucceeded = "UploadSucceeded" // MessageUploadScheduled provides a const to form upload is scheduled message MessageUploadScheduled = "Upload into %s scheduled" // MessageUploadReady provides a const to form upload is ready message MessageUploadReady = "Upload into %s ready" // MessageUploadFailed provides a const to form upload has failed message MessageUploadFailed = "Upload into %s failed" // MessageUploadSucceeded provides a const to form upload has succeeded message MessageUploadSucceeded = "Successfully uploaded into %s" // MessageSizeDetectionPodFailed provides a const to indicate that the size-detection pod wasn't able to obtain the image size MessageSizeDetectionPodFailed = "Size-detection pod failed due to %s" )
const ( // AnnOwnedByDataVolume annotation has the owner DataVolume name AnnOwnedByDataVolume = "cdi.kubevirt.io/ownedByDataVolume" // MessageErrStorageClassNotFound provides a const to indicate the PVC spec is missing accessMode and no storageClass to choose profile MessageErrStorageClassNotFound = "PVC spec is missing accessMode and no storageClass to choose profile" )
const (
//AnnSmartCloneRequest sets our expected annotation for a CloneRequest
AnnSmartCloneRequest = "k8s.io/SmartCloneRequest"
)
Variables ¶
var ErrInvalidTermMsg = fmt.Errorf("the termination message from the size-detection pod is not-valid")
ErrInvalidTermMsg reports that the termination message from the size-detection pod doesn't exists or is not a valid quantity
var ( // ErrStorageClassNotFound indicates the PVC spec is missing accessMode and no storageClass to choose profile ErrStorageClassNotFound = errors.New(MessageErrStorageClassNotFound) )
Functions ¶
func CheckPVCUsingPopulators ¶ added in v1.57.0
func CheckPVCUsingPopulators(pvc *v1.PersistentVolumeClaim) (bool, error)
CheckPVCUsingPopulators returns true if pvc has dataSourceRef and has the usePopulator annotation
func CheckVolumeSatisfyClaim ¶ added in v1.59.0
func CheckVolumeSatisfyClaim(volume *v1.PersistentVolume, claim *v1.PersistentVolumeClaim) error
CheckVolumeSatisfyClaim checks if the volume requested by the claim satisfies the requirements of the claim adapted from k8s.io/kubernetes/pkg/controller/volume/persistentvolume/pv_controller.go
func CreateAvailablePersistentVolumeIndex ¶ added in v1.59.0
func CreateAvailablePersistentVolumeIndex(fieldIndexer client.FieldIndexer) error
CreateAvailablePersistentVolumeIndex adds storage class name index for available PersistentVolumes
func CreateCommonIndexes ¶
CreateCommonIndexes creates indexes used by all controllers
func FindConditionByType ¶
func FindConditionByType(conditionType cdiv1.DataVolumeConditionType, conditions []cdiv1.DataVolumeCondition) *cdiv1.DataVolumeCondition
FindConditionByType finds condition by type
func NewImportController ¶
func NewImportController( ctx context.Context, mgr manager.Manager, log logr.Logger, installerLabels map[string]string, ) (controller.Controller, error)
NewImportController creates a new instance of the datavolume import controller
func NewPopulatorController ¶
func NewPopulatorController(ctx context.Context, mgr manager.Manager, log logr.Logger, installerLabels map[string]string) (controller.Controller, error)
NewPopulatorController creates a new instance of the datavolume external population controller
func NewPvcCloneController ¶
func NewPvcCloneController( ctx context.Context, mgr manager.Manager, log logr.Logger, clonerImage string, importerImage string, pullPolicy string, tokenPublicKey *rsa.PublicKey, tokenPrivateKey *rsa.PrivateKey, installerLabels map[string]string, ) (controller.Controller, error)
NewPvcCloneController creates a new instance of the datavolume clone controller
func NewSnapshotCloneController ¶
func NewSnapshotCloneController( ctx context.Context, mgr manager.Manager, log logr.Logger, clonerImage string, importerImage string, pullPolicy string, tokenPublicKey *rsa.PublicKey, tokenPrivateKey *rsa.PrivateKey, installerLabels map[string]string, ) (controller.Controller, error)
NewSnapshotCloneController creates a new instance of the datavolume clone controller
func NewUploadController ¶
func NewUploadController( ctx context.Context, mgr manager.Manager, log logr.Logger, installerLabels map[string]string, ) (controller.Controller, error)
NewUploadController creates a new instance of the datavolume upload controller
func UpdateReadyCondition ¶
func UpdateReadyCondition(conditions []cdiv1.DataVolumeCondition, status corev1.ConditionStatus, message, reason string) []cdiv1.DataVolumeCondition
UpdateReadyCondition updates the ready condition
Types ¶
type CloneReconcilerBase ¶
type CloneReconcilerBase struct { ReconcilerBase // contains filtered or unexported fields }
CloneReconcilerBase members
type Event ¶
type Event struct {
// contains filtered or unexported fields
}
Event represents DV controller event
type PopulatorReconciler ¶
type PopulatorReconciler struct {
ReconcilerBase
}
PopulatorReconciler members
type PvcCloneReconciler ¶
type PvcCloneReconciler struct {
CloneReconcilerBase
}
PvcCloneReconciler members
type ReconcilerBase ¶
type ReconcilerBase struct {
// contains filtered or unexported fields
}
ReconcilerBase members
type SnapshotCloneReconciler ¶
type SnapshotCloneReconciler struct {
CloneReconcilerBase
}
SnapshotCloneReconciler members