The module lifecycle stage: Generally available version
The module has requirements for installation
Deckhouse Platform installs CRDs but does not remove them when a module is disabled. If you no longer need the created CRDs, delete them.
VolumeSnapshotClass
Short names: vsclass, vsclasses
Scope: Cluster
-
stringdeletionPolicy
Controls the deletion behavior of VolumeSnapshotContent and its physical snapshot when the bound VolumeSnapshot is deleted. Supported values:
Retain: VolumeSnapshotContent and its physical snapshot on the underlying storage system are preserved.Delete: VolumeSnapshotContent and its physical snapshot on the underlying storage system are removed.
Allowed values:
Delete,Retain -
stringdriverName of the storage driver that handles this VolumeSnapshotClass.
-
objectparametersKey-value map of driver-specific parameters used when creating snapshots. Parameters are not interpreted by Kubernetes.
-
stringdeletionPolicy
Controls the deletion behavior of VolumeSnapshotContent and its physical snapshot when the bound VolumeSnapshot is deleted. Supported values:
Retain: VolumeSnapshotContent and its physical snapshot on the underlying storage system are preserved.Delete: VolumeSnapshotContent and its physical snapshot on the underlying storage system are removed.
Allowed values:
Delete,Retain -
stringdriverName of the storage driver that handles this VolumeSnapshotClass.
-
objectparametersKey-value map of driver-specific parameters used when creating snapshots. Parameters are not interpreted by Kubernetes.
VolumeSnapshotContent
Short names: vsc, vscs
Scope: Cluster
-
objectspecProperties of VolumeSnapshotContent created by the underlying storage system.
-
stringspec.deletionPolicy
Required value
Controls deletion behavior of VolumeSnapshotContent and its physical snapshot when the bound VolumeSnapshot is deleted. Supported values:
Retain: VolumeSnapshotContent and its physical snapshot on the underlying storage system are preserved.Delete: VolumeSnapshotContent and its physical snapshot on the underlying storage system are removed.
For dynamically provisioned snapshots, automatically filled by the CSI snapshotter sidecar with the
DeletionPolicyfield defined in the corresponding VolumeSnapshotClass. For pre-existing snapshots, users must specify when creating the VolumeSnapshotContent object.Allowed values:
Delete,Retain -
stringspec.driver
Required value
CSI driver name used to create the physical snapshot on the underlying storage system. Must be the same as the name returned by the CSI GetPluginName() call for that driver. -
objectspec.source
Required value
Specifies whether the snapshot is (or should be) dynamically provisioned or already exists and requires a Kubernetes object representation. Immutable after creation.-
stringspec.source.snapshotHandleCSI
snapshot_idof a pre-existing snapshot on the underlying storage system for which a Kubernetes object representation was (or should be) created. Immutable. -
stringspec.source.volumeHandleCSI
volume_idof the volume from which a snapshot should be dynamically taken. Immutable.
-
-
stringspec.sourceVolumeModeMode of the volume whose snapshot is taken. Can be either
FilesystemorBlock. If not specified, the source volume’s mode is unknown. Immutable. -
stringspec.volumeSnapshotClassNameVolumeSnapshotClass name from which this snapshot was (or will be) created. After provisioning, the VolumeSnapshotClass may be deleted or recreated with different values and should not be referenced post-snapshot creation.
-
objectspec.volumeSnapshotRefVolumeSnapshot object (hereinafter referred to as the referent) to which this VolumeSnapshotContent is bound.
VolumeSnapshot.Spec.VolumeSnapshotContentNamefield must reference this VolumeSnapshotContent name for the bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent object, name and namespace of the VolumeSnapshot object must be provided for binding. Immutable after creation.-
stringspec.volumeSnapshotRef.apiVersionAPI version of the referent.
-
stringspec.volumeSnapshotRef.fieldPathIf referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as
desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like:spec.containers{name}(wherenamerefers to the name of the container that triggered the event) or if no container name is specifiedspec.containers[2](container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. -
stringspec.volumeSnapshotRef.kindKind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
stringspec.volumeSnapshotRef.nameName of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
stringspec.volumeSnapshotRef.namespaceNamespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
-
stringspec.volumeSnapshotRef.resourceVersionSpecific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
-
stringspec.volumeSnapshotRef.uidUID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
-
-
-
objectstatusCurrent information of a snapshot.
-
integerstatus.creationTimeTimestamp when the point-in-time snapshot is taken by the underlying storage system. For dynamic snapshot creation, filled by the CSI snapshotter sidecar with the
creation_timevalue returned from CSICreateSnapshotgRPC call. For a pre-existing snapshot, filled with thecreation_timevalue returned from the CSIListSnapshotsgRPC call if the driver supports it. If not specified, the creation time is unknown. Format is a Unix nanoseconds time encoded as an int64. On Unix, the commanddate +%s%Nreturns the current time in nanoseconds since 1970-01-01 00:00:00 UTC. -
objectstatus.errorLast observed error during snapshot creation, if any. Upon success after retry, the field is cleared.
-
stringstatus.error.messageDetails of the encountered error during snapshot creation if specified. Note: message may be logged, and should not contain sensitive information.
-
stringstatus.error.timeTimestamp when the error was encountered.
-
-
booleanstatus.readyToUseIndicates whether a snapshot is ready to be used to restore a volume. For dynamic snapshot creation, filled by the CSI snapshotter sidecar with the
ready_to_usevalue returned from CSICreateSnapshotgRPC call. For a pre-existing snapshot, filled with theready_to_usevalue returned from the CSIListSnapshotsgRPC call if the driver supports it, otherwise set toTrue. If not specified, the readiness of a snapshot is unknown. -
integerstatus.restoreSizeComplete size of the snapshot in bytes. For dynamic snapshot creation, filled by the CSI snapshotter sidecar with the
size_bytesvalue returned from CSICreateSnapshotgRPC call. For a pre-existing snapshot, filled with thesize_bytesvalue returned from the CSIListSnapshotsgRPC call if the driver supports it. When restoring a volume from this snapshot, the volume size must not be smaller than therestoreSizeif specified, otherwise the restoration will fail. If not specified, the size is unknown.Allowed values:
0 <= X -
stringstatus.snapshotHandleCSI
snapshot_idof a snapshot on the underlying storage system. If not specified, dynamic snapshot creation has either failed or is still in progress. -
stringstatus.volumeGroupSnapshotHandleCSI
group_snapshot_idof a group snapshot on the underlying storage system.
-
-
objectspecProperties of VolumeSnapshotContent created by the underlying storage system.
-
stringspec.deletionPolicy
Required value
Controls deletion behavior of VolumeSnapshotContent and its physical snapshot when the bound VolumeSnapshot is deleted. Supported values:
Retain: VolumeSnapshotContent and its physical snapshot on the underlying storage system are preserved.Delete: VolumeSnapshotContent and its physical snapshot on the underlying storage system are removed. For dynamically provisioned snapshots, automatically filled by the CSI snapshotter sidecar with theDeletionPolicyfield defined in the corresponding VolumeSnapshotClass. For pre-existing snapshots, users must specify when creating the VolumeSnapshotContent object.
Allowed values:
Delete,Retain -
stringspec.driver
Required value
CSI driver name used to create the physical snapshot on the underlying storage system. -
objectspec.source
Required value
Specifies whether the snapshot is (or should be) dynamically provisioned or already exists and requires a Kubernetes object representation. Immutable after creation.-
stringspec.source.snapshotHandleCSI
snapshot_idof a pre-existing snapshot on the underlying storage system for which a Kubernetes object representation was (or should be) created. Immutable. -
stringspec.source.volumeHandleCSI
volume_idof the volume from which a snapshot should be dynamically taken. Immutable.
-
-
stringspec.volumeSnapshotClassNameVolumeSnapshotClass name from which this snapshot was (or will be) created. After provisioning, the VolumeSnapshotClass may be deleted or recreated with different values and should not be referenced post-snapshot creation.
-
objectspec.volumeSnapshotRefVolumeSnapshot object (hereinafter referred to as the referent) to which this VolumeSnapshotContent is bound.
VolumeSnapshot.Spec.VolumeSnapshotContentNamefield must reference this VolumeSnapshotContent name for the bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent object, name and namespace of the VolumeSnapshot object must be provided for binding. Immutable after creation.-
stringspec.volumeSnapshotRef.apiVersionAPI version of the referent.
-
stringspec.volumeSnapshotRef.fieldPathIf referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as
desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like:spec.containers{name}(wherenamerefers to the name of the container that triggered the event) or if no container name is specifiedspec.containers[2](container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. -
stringspec.volumeSnapshotRef.kindKind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
stringspec.volumeSnapshotRef.nameName of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
stringspec.volumeSnapshotRef.namespaceNamespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
-
stringspec.volumeSnapshotRef.resourceVersionSpecific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
-
stringspec.volumeSnapshotRef.uidUID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
-
-
-
objectstatusCurrent information of a snapshot.
-
integerstatus.creationTimeTimestamp when the point-in-time snapshot is taken by the underlying storage system. For dynamic snapshot creation, filled by the CSI snapshotter sidecar with the
creation_timevalue returned from CSICreateSnapshotgRPC call. For a pre-existing snapshot, filled with thecreation_timevalue returned from the CSIListSnapshotsgRPC call if the driver supports it. If not specified, the creation time is unknown. Format is a Unix nanoseconds time encoded as an int64. On Unix, the commanddate +%s%Nreturns the current time in nanoseconds since 1970-01-01 00:00:00 UTC. -
objectstatus.errorLast observed error during snapshot creation, if any. Upon success after retry, the field is cleared.
-
stringstatus.error.messageDetails of the encountered error during snapshot creation if specified. Note: message may be logged, and should not contain sensitive information.
-
stringstatus.error.timeTimestamp when the error was encountered.
-
-
booleanstatus.readyToUseIndicates whether a snapshot is ready to be used to restore a volume. For dynamic snapshot creation, filled by the CSI snapshotter sidecar with the
ready_to_usevalue returned from CSICreateSnapshotgRPC call. For a pre-existing snapshot, filled with theready_to_usevalue returned from the CSIListSnapshotsgRPC call if the driver supports it, otherwise set toTrue. If not specified, the readiness of a snapshot is unknown. -
integerstatus.restoreSizeComplete size of the snapshot in bytes. For dynamic snapshot creation, filled by the CSI snapshotter sidecar with the
size_bytesvalue returned from CSICreateSnapshotgRPC call. For a pre-existing snapshot, filled with thesize_bytesvalue returned from the CSIListSnapshotsgRPC call if the driver supports it. When restoring a volume from this snapshot, the volume size must not be smaller than therestoreSizeif specified, otherwise the restoration will fail. If not specified, the size is unknown.Allowed values:
0 <= X -
stringstatus.snapshotHandleCSI
snapshot_idof a snapshot on the underlying storage system. If not specified, dynamic snapshot creation has either failed or is still in progress.
-
VolumeSnapshot
Short names: vs
Scope: Namespaced
-
objectspecDesired characteristics of a snapshot requested by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots
-
stringspec.modeDefines how the VolumeSnapshot obtains its content and is immutable after it is set. If omitted, it is set to
Captureon creation.Capturecreates a CSI snapshot fromspec.source.Importassociates the VolumeSnapshot with data imported in the same namespace; in this mode,spec.sourceis omitted. Deckhouse extension.Allowed values:
Capture,Import -
objectspec.source
Specifies the source from which the snapshot is created.
Required unless
modeisImport. May be empty during restore; in that case, the backup controller may setvolumeSnapshotContentNameonce after a successful restore. Otherwise exactly one ofpersistentVolumeClaimNameorvolumeSnapshotContentNamemust be set. Immutable after creation except for that one-time update from an empty source.-
stringspec.source.persistentVolumeClaimNameName of the PersistentVolumeClaim object representing the volume from which a snapshot should be created. PVC must be in the same namespace as the VolumeSnapshot object. Specified if the snapshot does not exist and needs to be created. Immutable.
-
stringspec.source.volumeSnapshotContentNamevolumeSnapshotContentName specifies the name of a pre-existing VolumeSnapshotContent object representing an existing volume snapshot. This field should be set if the snapshot already exists and only needs a representation in Kubernetes. For restore intent, backup controller may set this once from empty after successful restore (one-shot update).
-
-
stringspec.volumeSnapshotClassNameName of the VolumeSnapshotClass requested by the VolumeSnapshot. May be empty to use the default SnapshotClass. A cluster may have multiple default Volume SnapshotClasses: one per CSI Driver. If a SnapshotClass is not specified, VolumeSnapshotSource is checked to determine the associated CSI Driver, and the default VolumeSnapshotClass for that CSI Driver is used. If multiple VolumeSnapshotClasses exist for a CSI Driver and more than one is marked as default, CreateSnapshot fails and generates an event. Empty string is not allowed.
-
-
objectstatusCurrent information of a snapshot. Before using this object, verify that binding between VolumeSnapshot and VolumeSnapshotContent objects is successful by ensuring both objects point at each other.
-
stringstatus.boundSnapshotContentNameName of the SnapshotContent associated with this VolumeSnapshot when it participates in a Deckhouse snapshot tree. Deckhouse extension.
-
stringstatus.boundVolumeSnapshotContentNameName of the VolumeSnapshotContent object to which this VolumeSnapshot object is bound. If not specified, the VolumeSnapshot object has not been successfully bound to a VolumeSnapshotContent object yet. Note: To prevent security issues, verify that binding between VolumeSnapshot and VolumeSnapshotContent objects is successful by ensuring both objects point at each other before using this object.
-
objectstatus.captureStateState of snapshot capture when this VolumeSnapshot participates in a snapshot tree. Deckhouse extension.
-
objectstatus.captureState.commonControllerCapture state common to the snapshot tree.
-
booleanstatus.captureState.commonController.childSubtreesManifestsPersistedIndicates whether manifests of all descendant snapshots have been persisted.
-
booleanstatus.captureState.commonController.childrenSettledIndicates whether all direct child snapshots have reached a terminal state.
-
booleanstatus.captureState.commonController.dataCapturedIndicates whether volume data has been captured successfully.
-
booleanstatus.captureState.commonController.manifestCapturedIndicates whether manifests for this snapshot node have been captured successfully.
-
booleanstatus.captureState.commonController.subtreePlannedIndicates whether planning is complete for this snapshot and its descendants.
-
-
objectstatus.captureState.domainSpecificControllerDomain-specific planning references and lifecycle state.
-
array of objectsstatus.captureState.domainSpecificController.excludedRefsexcludedRefs are the domain’s direct exclusion vetoes at this node (the source objects it dropped via the exclude label while enumerating its children).
-
stringstatus.captureState.domainSpecificController.excludedRefs.apiVersion
-
stringstatus.captureState.domainSpecificController.excludedRefs.kind
-
stringstatus.captureState.domainSpecificController.excludedRefs.name
-
-
stringstatus.captureState.domainSpecificController.manifestCaptureRequestNameName of the manifest capture request associated with this snapshot node.
-
stringstatus.captureState.domainSpecificController.messagemessage is a human-readable detail for phase=Failed.
-
stringstatus.captureState.domainSpecificController.phaseLifecycle phase of the snapshot node.
Allowed values:
Planning,Planned,Finished,Failed -
stringstatus.captureState.domainSpecificController.reasonreason is a short, machine-readable reason for phase=Failed (free-form domain string).
-
stringstatus.captureState.domainSpecificController.volumeCaptureRequestNameName of the volume capture request associated with this snapshot node.
-
-
-
array of objectsstatus.childrenSnapshotRefschildrenSnapshotRefs are the direct child snapshot edges when this VolumeSnapshot participates in a snapshot tree. A VolumeSnapshot is a data leaf, so this is normally empty; kept for uniformity across snapshot kinds. Deckhouse extension.
-
stringstatus.childrenSnapshotRefs.apiVersion
-
stringstatus.childrenSnapshotRefs.kind
-
stringstatus.childrenSnapshotRefs.name
-
-
array of objectsstatus.conditionsconditions report the state-snapshotter protocol readiness (conditions[Ready] is the single user-facing condition derived by the core), distinct from the CSI readyToUse binding signal. Written by the state-snapshotter core. Deckhouse extension.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Allowed values:
0 <= X -
stringstatus.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Length:
1..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
stringstatus.creationTimeTimestamp when the point-in-time snapshot is taken by the underlying storage system. For dynamic snapshot creation, filled by the snapshot controller with the
creation_timevalue returned from CSICreateSnapshotgRPC call. For a pre-existing snapshot, filled with thecreation_timevalue returned from the CSIListSnapshotsgRPC call if the driver supports it. If not specified, the creation time of the snapshot is unknown. -
objectstatus.datadata is the self-contained data binding (sourceRef + artifactRef + volume metadata) mirrored from the backing state-snapshotter SnapshotContent.status.data, so d8 resolves the captured-volume descriptor from this namespaced VolumeSnapshot alone. Written by the state-snapshotter common controller. Deckhouse extension.
-
objectstatus.data.artifactRef
Required value
Durable data artifact (a VolumeSnapshotContent).-
stringstatus.data.artifactRef.apiVersion
Required value
-
stringstatus.data.artifactRef.kind
Required value
-
stringstatus.data.artifactRef.name
Required value
-
stringstatus.data.artifactRef.uid
-
-
stringstatus.data.fsTypeSource filesystem type (Filesystem volumes only).
-
stringstatus.data.sizeReal allocated size of the captured volume (e.g. “10Gi”).
-
objectstatus.data.sourceRef
Required value
Captured PersistentVolumeClaim source (uid is the volume identity).-
stringstatus.data.sourceRef.apiVersion
Required value
-
stringstatus.data.sourceRef.kind
Required value
-
stringstatus.data.sourceRef.name
Required value
-
stringstatus.data.sourceRef.namespace
-
stringstatus.data.sourceRef.uid
-
-
stringstatus.data.storageClassNameSource StorageClass of the captured volume.
-
stringstatus.data.volumeModeSource volume mode (Block or Filesystem).
Allowed values:
Block,Filesystem
-
-
objectstatus.errorLast observed error during snapshot creation, if any. Useful to upper level controllers (i.e., application controller) to decide whether to continue waiting for the snapshot to be created based on the error type. The snapshot controller keeps retrying when an error occurs during snapshot creation. Upon success, the field is cleared.
-
stringstatus.error.messageDetails of the encountered error during snapshot creation if specified. Note: message may be logged, and it should not contain sensitive information.
-
stringstatus.error.timeTimestamp when the error was encountered.
-
-
booleanstatus.readyToUseIndicates if the snapshot is ready to be used to restore a volume. For dynamic snapshot creation, filled by the snapshot controller with the
ready_to_usevalue returned from CSICreateSnapshotgRPC call. For a pre-existing snapshot, filled with theready_to_usevalue returned from the CSIListSnapshotsgRPC call if the driver supports it, otherwise set toTrue. If not specified, the readiness of a snapshot is unknown. -
stringstatus.restoreSizeMinimum size of volume required to create a volume from this snapshot. For dynamic snapshot creation, filled by the snapshot controller with the
size_bytesvalue returned from CSICreateSnapshotgRPC call. For a pre-existing snapshot, filled with thesize_bytesvalue returned from the CSIListSnapshotsgRPC call if the driver supports it. When restoring a volume from this snapshot, the volume size must not be smaller than therestoreSizeif specified, otherwise the restoration will fail. If not specified, the size is unknown.Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ -
objectstatus.sourceRefsourceRef is the full reference to the captured live source object (the source PVC), written by the state-snapshotter domain controller (PublishSnapshotSource). Self-contained for import-mode recreation. Deckhouse extension.
-
stringstatus.sourceRef.apiVersion
Required value
-
stringstatus.sourceRef.kind
Required value
-
stringstatus.sourceRef.name
Required value
-
stringstatus.sourceRef.namespaceNamespace of the source object (namespaced sources only).
-
stringstatus.sourceRef.uidUID of the captured live source object (best-effort; used by d8-cli for import-mode recreation).
-
-
stringstatus.volumeGroupSnapshotNameName of the VolumeGroupSnapshot of which this VolumeSnapshot is a part.
-
-
objectspecDesired characteristics of a snapshot requested by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots
-
objectspec.source
Required value
source specifies where a snapshot will be created from. May be empty for restore intent (backup controller sets volumeSnapshotContentName after restore). Otherwise exactly one of persistentVolumeClaimName or volumeSnapshotContentName must be set. Immutable after creation (except one-shot set of volumeSnapshotContentName from empty). Deprecated legacy version: carries NO Deckhouse fork fields (no spec.mode) and is never treated as a domain object; see the v1 schema.-
stringspec.source.persistentVolumeClaimNameName of the PersistentVolumeClaim object representing the volume from which a snapshot should be created. PVC must be in the same namespace as the VolumeSnapshot object. Specified if the snapshot does not exist and needs to be created. Immutable.
-
stringspec.source.volumeSnapshotContentNameName of a pre-existing VolumeSnapshotContent object representing an existing volume snapshot. Specified if the snapshot already exists and only needs a representation in Kubernetes. For restore intent, backup controller may set this once from empty after successful restore (one-shot update).
-
-
stringspec.volumeSnapshotClassNameName of the VolumeSnapshotClass requested by the VolumeSnapshot. May be empty to use the default SnapshotClass. A cluster may have multiple default Volume SnapshotClasses: one per CSI Driver. If a SnapshotClass is not specified, VolumeSnapshotSource is checked to determine the associated CSI Driver, and the default VolumeSnapshotClass for that CSI Driver is used. If multiple VolumeSnapshotClasses exist for a CSI Driver and more than one is marked as default, CreateSnapshot fails and generates an event. Empty string is not allowed.
-
-
objectstatusCurrent information of a snapshot. Before using this object, verify that binding between VolumeSnapshot and VolumeSnapshotContent objects is successful by ensuring both objects point at each other.
-
stringstatus.boundVolumeSnapshotContentNameName of the VolumeSnapshotContent object to which this VolumeSnapshot object is bound. If not specified, the VolumeSnapshot object has not been successfully bound to a VolumeSnapshotContent object yet. Note: To prevent security issues, verify that binding between VolumeSnapshot and VolumeSnapshotContent objects is successful by ensuring both objects point at each other before using this object.
-
stringstatus.creationTimeTimestamp when the point-in-time snapshot is taken by the underlying storage system. For dynamic snapshot creation, filled by the snapshot controller with the
creation_timevalue returned from CSICreateSnapshotgRPC call. For a pre-existing snapshot, filled with thecreation_timevalue returned from the CSIListSnapshotsgRPC call if the driver supports it. If not specified, the creation time of the snapshot is unknown. -
objectstatus.errorLast observed error during snapshot creation, if any. Useful to upper level controllers (i.e., application controller) to decide whether to continue waiting for the snapshot to be created based on the error type. The snapshot controller keeps retrying when an error occurs during snapshot creation. Upon success, the field is cleared.
-
stringstatus.error.messageDetails of the encountered error during snapshot creation if specified. Note: message may be logged, and it should not contain sensitive information.
-
stringstatus.error.timeTimestamp when the error was encountered.
-
-
booleanstatus.readyToUseIndicates if the snapshot is ready to be used to restore a volume. For dynamic snapshot creation, filled by the snapshot controller with the
ready_to_usevalue returned from CSICreateSnapshotgRPC call. For a pre-existing snapshot, filled with theready_to_usevalue returned from the CSIListSnapshotsgRPC call if the driver supports it, otherwise set toTrue. If not specified, the readiness of a snapshot is unknown. -
stringstatus.restoreSizeMinimum size of volume required to create a volume from this snapshot. For dynamic snapshot creation, filled by the snapshot controller with the
size_bytesvalue returned from CSICreateSnapshotgRPC call. For a pre-existing snapshot, filled with thesize_bytesvalue returned from the CSIListSnapshotsgRPC call if the driver supports it. When restoring a volume from this snapshot, the volume size must not be smaller than therestoreSizeif specified, otherwise the restoration will fail. If not specified, the size is unknown.Pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ -
stringstatus.volumeGroupSnapshotNameName of the VolumeGroupSnapshot of which this VolumeSnapshot is a part.
-
DataExport
Short names: de
Scope: Namespaced
Version: v1alpha1
-
objectspec
-
stringspec.publicIngressType of public ingress for external access.
Allowed values:
KubernetesAPI,ConsoleFrontend -
booleanspec.publishEnable external access to the exporter pod outside the cluster.
-
objectspec.targetRef
Required value
Reference to the target object for export. The target must be in the same namespace as the DataExport. PersistentVolumeClaim and VirtualDisk objects can be exported directly; snapshot resources can also be used as export targets. A cluster-scoped VolumeSnapshotContent cannot be used as an export target.-
stringspec.targetRef.groupAPI group of the target object ("" / omitted for the core group, e.g. for PersistentVolumeClaim).
-
stringspec.targetRef.kind
Required value
Kind of the target (e.g. PersistentVolumeClaim, VirtualDisk, VolumeSnapshot, VirtualDiskSnapshot).Minimum length:
1 -
stringspec.targetRef.name
Required value
Name of the target object for export.Minimum length:
1
-
-
stringspec.ttl
Required value
Time-to-live duration after the last user request. Acceptable values: <number>s, <number>m, <number>h. For example, 5m, 2h45m, or 24h.Pattern:
^([0-9]+(\.[0-9]+)?h)?([0-9]+(\.[0-9]+)?m)?([0-9]+s)?$
-
-
objectstatusStatus information for DataExport.
-
stringstatus.accessTimestampTimestamp of the last access to the exported data.
-
stringstatus.caBase64 encoded CA certificate for TLS connection to the exporter pod.
-
stringstatus.completionTimestampTime the DataExport reached a terminal phase (Expired or Failed). Retention age is measured from this timestamp.
-
array of objectsstatus.conditionsArray of conditions describing the current state of DataExport.
-
stringstatus.conditions.lastTransitionTimeLast time the condition transitioned from one status to another.
-
stringstatus.conditions.messageMessage describing the condition.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationObserved generation of the resource when the condition was last updated.
Allowed values:
0 <= X -
stringstatus.conditions.reasonReason for the current condition status.
Length:
1..1024Allowed values:
Pending,ServerReady,ValidationFailed,TargetNotReady,TargetNotFound,PVConflict,DeploymentFailed,CleanupFailed,PublishFailed,ExpiredPattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusStatus of the condition.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typeType of the condition.
Maximum length:
316Allowed values:
ReadyPattern:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
stringstatus.phaseLifecycle state of the DataExport: Pending → Ready → Expired | Failed.
Terminatingdenotes an object with a deletion timestamp and is a transient state, not an outcome.Expiredis a normal terminal outcome when the idle-TTL window elapses.Allowed values:
Pending,Ready,Expired,Failed,Terminating -
stringstatus.publicURLPublic URL for external access (for example, https://api.<PUBLIC_DOMAIN>/<NAMESPACE>/<TARGET_KIND>/<TARGET_NAME>/).
TARGET_KINDis the short kind of the export target: pvc, vd, or snap;TARGET_NAMEis the value of spec.targetRef.name. -
stringstatus.serverStateExporter server state:
Readywhen the server is available andIdleExpiredwhen the idle-TTL window has elapsed.Allowed values:
Ready,IdleExpired -
stringstatus.urlInternal URL of the exporter pod (e.g., https://X.X.X.X:8085).
-
stringstatus.volumeModeVolume mode of the exported data.
Allowed values:
Block,Filesystem
-
DataImport
Short names: di
Scope: Namespaced
Version: v1alpha1
-
objectspec
-
stringspec.mode
Discriminator selecting what the import does with the bytes:
CreatePVC: write into a preserved, newly created PVC (pvcTemplate). No durable artifact.PopulateData: write the bytes according tostorageParamsand produce a durable VolumeSnapshotContent for the existing snapshot node referenced bysnapshotRef.
Default:
CreatePVCAllowed values:
CreatePVC,PopulateData -
booleanspec.publishExpose the importer pod outside the cluster.
Default:
false -
objectspec.pvcTemplateCreatePVC only. PersistentVolumeClaim template fully describing the target PVC the imported bytes are written into; the PVC is preserved after the import.
-
objectspec.pvcTemplate.metadataPersistentVolumeClaim metadata.
-
objectspec.pvcTemplate.metadata.annotationsPersistentVolumeClaim annotations.
-
objectspec.pvcTemplate.metadata.labelsPersistentVolumeClaim labels.
-
stringspec.pvcTemplate.metadata.namePersistentVolumeClaim name.
-
-
objectspec.pvcTemplate.specPersistentVolumeClaim specification.
-
array of stringsspec.pvcTemplate.spec.accessModesDesired access modes for the volume.
-
stringspec.pvcTemplate.spec.accessModes.Element of the array
Allowed values:
ReadWriteOnce,ReadOnlyMany,ReadWriteMany,ReadWriteOncePod
-
-
objectspec.pvcTemplate.spec.resourcesMinimum resource requirements for the volume.
-
objectspec.pvcTemplate.spec.resources.requestsMinimum amount of compute resources required.
-
-
stringspec.pvcTemplate.spec.storageClassNameName of the StorageClass required by the PersistentVolumeClaim. When omitted, the cluster’s default StorageClass is used — also when it is marked default later; the import waits until then. An empty string is not supported: the volume has to be dynamically provisioned.
Minimum length:
1 -
stringspec.pvcTemplate.spec.volumeModeVolume mode required by the PersistentVolumeClaim.
Allowed values:
Block,Filesystem
-
-
-
objectspec.snapshotRefPopulateData only. Reference to the existing snapshot node that owns the produced durable artifact. The namespace is implicitly the DataImport namespace.
-
stringspec.snapshotRef.apiVersionGroup/version of the snapshot node (e.g.
snapshot.storage.k8s.io/v1). -
stringspec.snapshotRef.kind
Required value
Kind of the snapshot node (e.g.VolumeSnapshot,VirtualDiskSnapshot).Minimum length:
1 -
stringspec.snapshotRef.name
Required value
Name of the snapshot node.Minimum length:
1
-
-
objectspec.storageParamsPopulateData only. Storage parameters used to produce the durable VolumeSnapshotContent. The StorageClass must support snapshots through a VolumeSnapshotClass.
-
stringspec.storageParams.size
Required value
Requested size of the scratch PVC (a Kubernetes quantity, e.g.10Gi).Minimum length:
1 -
stringspec.storageParams.storageClassName
Required value
StorageClass of the scratch PVC (must be snapshot-capable).Minimum length:
1 -
stringspec.storageParams.volumeModeVolume mode of the scratch PVC. Defaults to
Filesystemwhen omitted.Allowed values:
Block,Filesystem
-
-
stringspec.ttl
Required value
Time-to-live duration after the last user request.
Acceptable values:
<number>s<number>m<number>h
For example,
5m,2h45m, or24h.Pattern:
^([0-9]+(\.[0-9]+)?h)?([0-9]+(\.[0-9]+)?m)?([0-9]+s)?$ -
booleanspec.waitForFirstConsumerControls what the import waits for before it starts moving data into the target PVC. When the target PVC’s StorageClass has
volumeBindingMode: WaitForFirstConsumerand this field istrue, the import waits until a pod that mounts the target PVC is scheduled, then places the imported volume on the node that pod was scheduled to. Whenfalse, the import does not wait for a consumer and becomes the volume’s first consumer itself. Has no effect when the target PVC’s StorageClass does not delay binding until a consumer appears.Default:
true
-
-
objectstatusStatus information for DataImport.
-
stringstatus.accessTimestampLast access timestamp updated by the importer pod.
-
stringstatus.caBase64-encoded CA certificate for establishing a TLS connection to the importer pod.
-
stringstatus.completionTimestampTime the DataImport reached a terminal phase (Completed, Expired or Failed). Retention age is measured from this timestamp.
-
array of objectsstatus.conditions
-
stringstatus.conditions.lastTransitionTime
Last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If the last transition time is not known, then using the time when the API field changed is acceptable.
-
stringstatus.conditions.message
Human-readable message indicating details about the transition.
This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGeneration
The
.metadata.generationthat the condition was set based upon.For instance, if
.metadata.generationis currently 12, but the.status.conditions[x].observedGenerationis 9, the condition is out of date. with respect to the current state of the instance.Allowed values:
0 <= X -
stringstatus.conditions.reasonCurrent condition status reason.
Length:
1..1024Allowed values:
Pending,PVCCreated,ServerReady,InProgress,Expired,Deleted,UploadFinished,Completed,Failed,TargetFailed,CleanupFailedPattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusCondition status.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typeCondition type.
Maximum length:
316Allowed values:
Ready,UploadFinished,CompletedPattern:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
objectstatus.dataInformation about the durable data artifact produced by this import.
-
objectstatus.data.artifactRefReference to the durable data artifact produced by this import (a VolumeSnapshotContent).
-
stringstatus.data.artifactRef.apiVersion
-
stringstatus.data.artifactRef.kind
-
stringstatus.data.artifactRef.name
-
stringstatus.data.artifactRef.uidUID of the durable data artifact (for example, the VolumeSnapshotContent UID). Optional and populated when available.
-
-
stringstatus.data.fsTypeFilesystem type of the imported data. Empty means that the filesystem type is unknown or not applicable for a Block volume.
-
-
stringstatus.phaseLifecycle state of the DataImport: Pending → Ready → Completed | Expired | Failed.
Terminatingdenotes an object with a deletion timestamp and is a transient state, not an outcome.Expiredis a normal terminal outcome when the idle-TTL window elapses.Allowed values:
Pending,Ready,Completed,Expired,Failed,Terminating -
stringstatus.publicURLPublic URL of the importer service.
-
stringstatus.serverStateImporter server state:
Readywhen the server is available,Finishedwhen the upload has completed, andIdleExpiredwhen the idle-TTL window has elapsed.Allowed values:
Ready,Finished,IdleExpired -
stringstatus.urlInternal URL of the importer service.
-
stringstatus.volumeModeVolume mode of the imported data.
Allowed values:
Block,Filesystem
-