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

VolumeSnapshotClass defines parameters for volume snapshot creation used by the underlying storage system. To use, reference by name in a VolumeSnapshot object. Non-namespaced resource.
  • deletionPolicy
    string

    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

  • driver
    string
    Name of the storage driver that handles this VolumeSnapshotClass.
  • parameters
    object
    Key-value map of driver-specific parameters used when creating snapshots. Parameters are not interpreted by Kubernetes.
VolumeSnapshotClass defines parameters for volume snapshot creation used by the underlying storage system. To use, reference by name in a VolumeSnapshot object. Non-namespaced resource.
  • deletionPolicy
    string

    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

  • driver
    string
    Name of the storage driver that handles this VolumeSnapshotClass.
  • parameters
    object
    Key-value map of driver-specific parameters used when creating snapshots. Parameters are not interpreted by Kubernetes.

VolumeSnapshotContent

Short names: vsc, vscs

Scope: Cluster

VolumeSnapshotContent represents the actual “on-disk” snapshot object in the underlying storage system.
  • spec
    object
    Properties of VolumeSnapshotContent created by the underlying storage system.
    • spec.deletionPolicy
      string

      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 DeletionPolicy field defined in the corresponding VolumeSnapshotClass. For pre-existing snapshots, users must specify when creating the VolumeSnapshotContent object.

      Allowed values: Delete, Retain

    • spec.driver
      string

      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.
    • spec.source
      object

      Required value

      Specifies whether the snapshot is (or should be) dynamically provisioned or already exists and requires a Kubernetes object representation. Immutable after creation.
      • spec.source.snapshotHandle
        string
        CSI snapshot_id of a pre-existing snapshot on the underlying storage system for which a Kubernetes object representation was (or should be) created. Immutable.
      • spec.source.volumeHandle
        string
        CSI volume_id of the volume from which a snapshot should be dynamically taken. Immutable.
    • spec.sourceVolumeMode
      string
      Mode of the volume whose snapshot is taken. Can be either Filesystem or Block. If not specified, the source volume’s mode is unknown. Immutable.
    • spec.volumeSnapshotClassName
      string
      VolumeSnapshotClass 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.
    • spec.volumeSnapshotRef
      object
      VolumeSnapshot object (hereinafter referred to as the referent) to which this VolumeSnapshotContent is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName field 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.
  • status
    object
    Current information of a snapshot.
    • status.creationTime
      integer
      Timestamp 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_time value returned from CSI CreateSnapshot gRPC call. For a pre-existing snapshot, filled with the creation_time value returned from the CSI ListSnapshots gRPC 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 command date +%s%N returns the current time in nanoseconds since 1970-01-01 00:00:00 UTC.
    • status.error
      object
      Last observed error during snapshot creation, if any. Upon success after retry, the field is cleared.
      • status.error.message
        string
        Details of the encountered error during snapshot creation if specified. Note: message may be logged, and should not contain sensitive information.
      • status.error.time
        string
        Timestamp when the error was encountered.
    • status.readyToUse
      boolean
      Indicates 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_use value returned from CSI CreateSnapshot gRPC call. For a pre-existing snapshot, filled with the ready_to_use value returned from the CSI ListSnapshots gRPC call if the driver supports it, otherwise set to True. If not specified, the readiness of a snapshot is unknown.
    • status.restoreSize
      integer
      Complete size of the snapshot in bytes. For dynamic snapshot creation, filled by the CSI snapshotter sidecar with the size_bytes value returned from CSI CreateSnapshot gRPC call. For a pre-existing snapshot, filled with the size_bytes value returned from the CSI ListSnapshots gRPC call if the driver supports it. When restoring a volume from this snapshot, the volume size must not be smaller than the restoreSize if specified, otherwise the restoration will fail. If not specified, the size is unknown.

      Allowed values: 0 <= X

    • status.snapshotHandle
      string
      CSI snapshot_id of a snapshot on the underlying storage system. If not specified, dynamic snapshot creation has either failed or is still in progress.
    • status.volumeGroupSnapshotHandle
      string
      CSI group_snapshot_id of a group snapshot on the underlying storage system.
VolumeSnapshotContent represents the actual “on-disk” snapshot object in the underlying storage system.
  • spec
    object
    Properties of VolumeSnapshotContent created by the underlying storage system.
    • spec.deletionPolicy
      string

      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 DeletionPolicy field defined in the corresponding VolumeSnapshotClass. For pre-existing snapshots, users must specify when creating the VolumeSnapshotContent object.

      Allowed values: Delete, Retain

    • spec.driver
      string

      Required value

      CSI driver name used to create the physical snapshot on the underlying storage system.
    • spec.source
      object

      Required value

      Specifies whether the snapshot is (or should be) dynamically provisioned or already exists and requires a Kubernetes object representation. Immutable after creation.
      • spec.source.snapshotHandle
        string
        CSI snapshot_id of a pre-existing snapshot on the underlying storage system for which a Kubernetes object representation was (or should be) created. Immutable.
      • spec.source.volumeHandle
        string
        CSI volume_id of the volume from which a snapshot should be dynamically taken. Immutable.
    • spec.volumeSnapshotClassName
      string
      VolumeSnapshotClass 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.
    • spec.volumeSnapshotRef
      object
      VolumeSnapshot object (hereinafter referred to as the referent) to which this VolumeSnapshotContent is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName field 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.
  • status
    object
    Current information of a snapshot.
    • status.creationTime
      integer
      Timestamp 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_time value returned from CSI CreateSnapshot gRPC call. For a pre-existing snapshot, filled with the creation_time value returned from the CSI ListSnapshots gRPC 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 command date +%s%N returns the current time in nanoseconds since 1970-01-01 00:00:00 UTC.
    • status.error
      object
      Last observed error during snapshot creation, if any. Upon success after retry, the field is cleared.
      • status.error.message
        string
        Details of the encountered error during snapshot creation if specified. Note: message may be logged, and should not contain sensitive information.
      • status.error.time
        string
        Timestamp when the error was encountered.
    • status.readyToUse
      boolean
      Indicates 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_use value returned from CSI CreateSnapshot gRPC call. For a pre-existing snapshot, filled with the ready_to_use value returned from the CSI ListSnapshots gRPC call if the driver supports it, otherwise set to True. If not specified, the readiness of a snapshot is unknown.
    • status.restoreSize
      integer
      Complete size of the snapshot in bytes. For dynamic snapshot creation, filled by the CSI snapshotter sidecar with the size_bytes value returned from CSI CreateSnapshot gRPC call. For a pre-existing snapshot, filled with the size_bytes value returned from the CSI ListSnapshots gRPC call if the driver supports it. When restoring a volume from this snapshot, the volume size must not be smaller than the restoreSize if specified, otherwise the restoration will fail. If not specified, the size is unknown.

      Allowed values: 0 <= X

    • status.snapshotHandle
      string
      CSI snapshot_id of 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

VolumeSnapshot is a user’s request for either creating a point-in-time snapshot of a persistent volume, or binding to a pre-existing snapshot.
  • spec
    object
    Desired characteristics of a snapshot requested by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots
    • spec.mode
      string
      Defines how the VolumeSnapshot obtains its content and is immutable after it is set. If omitted, it is set to Capture on creation. Capture creates a CSI snapshot from spec.source. Import associates the VolumeSnapshot with data imported in the same namespace; in this mode, spec.source is omitted. Deckhouse extension.

      Allowed values: Capture, Import

    • spec.source
      object

      Specifies the source from which the snapshot is created.

      Required unless mode is Import. May be empty during restore; in that case, the backup controller may set volumeSnapshotContentName once after a successful restore. Otherwise exactly one of persistentVolumeClaimName or volumeSnapshotContentName must be set. Immutable after creation except for that one-time update from an empty source.

      • spec.source.persistentVolumeClaimName
        string
        Name 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.
      • spec.source.volumeSnapshotContentName
        string
        volumeSnapshotContentName 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).
    • spec.volumeSnapshotClassName
      string
      Name 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.
  • status
    object
    Current 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.
    • status.boundSnapshotContentName
      string
      Name of the SnapshotContent associated with this VolumeSnapshot when it participates in a Deckhouse snapshot tree. Deckhouse extension.
    • status.boundVolumeSnapshotContentName
      string
      Name 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.
    • status.captureState
      object
      State of snapshot capture when this VolumeSnapshot participates in a snapshot tree. Deckhouse extension.
      • status.captureState.commonController
        object
        Capture state common to the snapshot tree.
        • status.captureState.commonController.childSubtreesManifestsPersisted
          boolean
          Indicates whether manifests of all descendant snapshots have been persisted.
        • status.captureState.commonController.childrenSettled
          boolean
          Indicates whether all direct child snapshots have reached a terminal state.
        • status.captureState.commonController.dataCaptured
          boolean
          Indicates whether volume data has been captured successfully.
        • status.captureState.commonController.manifestCaptured
          boolean
          Indicates whether manifests for this snapshot node have been captured successfully.
        • status.captureState.commonController.subtreePlanned
          boolean
          Indicates whether planning is complete for this snapshot and its descendants.
      • status.captureState.domainSpecificController
        object
        Domain-specific planning references and lifecycle state.
        • status.captureState.domainSpecificController.excludedRefs
          array of objects
          excludedRefs are the domain’s direct exclusion vetoes at this node (the source objects it dropped via the exclude label while enumerating its children).
          • status.captureState.domainSpecificController.excludedRefs.apiVersion
            string
          • status.captureState.domainSpecificController.excludedRefs.kind
            string
          • status.captureState.domainSpecificController.excludedRefs.name
            string
        • status.captureState.domainSpecificController.manifestCaptureRequestName
          string
          Name of the manifest capture request associated with this snapshot node.
        • status.captureState.domainSpecificController.message
          string
          message is a human-readable detail for phase=Failed.
        • status.captureState.domainSpecificController.phase
          string
          Lifecycle phase of the snapshot node.

          Allowed values: Planning, Planned, Finished, Failed

        • status.captureState.domainSpecificController.reason
          string
          reason is a short, machine-readable reason for phase=Failed (free-form domain string).
        • status.captureState.domainSpecificController.volumeCaptureRequestName
          string
          Name of the volume capture request associated with this snapshot node.
    • status.childrenSnapshotRefs
      array of objects
      childrenSnapshotRefs 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.
      • status.childrenSnapshotRefs.apiVersion
        string
      • status.childrenSnapshotRefs.kind
        string
      • status.childrenSnapshotRefs.name
        string
    • status.conditions
      array of objects
      conditions 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.
      • status.conditions.lastTransitionTime
        string
        lastTransitionTime 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.
      • status.conditions.message
        string
        message is a human readable message indicating details about the transition. This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        observedGeneration 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

      • status.conditions.reason
        string
        reason 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..1024

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        status of the condition, one of True, False, Unknown.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        type of condition in CamelCase or in foo.example.com/CamelCase.

        Maximum length: 316

        Pattern: ^([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])$

    • status.creationTime
      string
      Timestamp 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_time value returned from CSI CreateSnapshot gRPC call. For a pre-existing snapshot, filled with the creation_time value returned from the CSI ListSnapshots gRPC call if the driver supports it. If not specified, the creation time of the snapshot is unknown.
    • status.data
      object
      data 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.
      • status.data.artifactRef
        object

        Required value

        Durable data artifact (a VolumeSnapshotContent).
        • status.data.artifactRef.apiVersion
          string

          Required value

        • status.data.artifactRef.kind
          string

          Required value

        • status.data.artifactRef.name
          string

          Required value

        • status.data.artifactRef.uid
          string
      • status.data.fsType
        string
        Source filesystem type (Filesystem volumes only).
      • status.data.size
        string
        Real allocated size of the captured volume (e.g. “10Gi”).
      • status.data.sourceRef
        object

        Required value

        Captured PersistentVolumeClaim source (uid is the volume identity).
        • status.data.sourceRef.apiVersion
          string

          Required value

        • status.data.sourceRef.kind
          string

          Required value

        • status.data.sourceRef.name
          string

          Required value

        • status.data.sourceRef.namespace
          string
        • status.data.sourceRef.uid
          string
      • status.data.storageClassName
        string
        Source StorageClass of the captured volume.
      • status.data.volumeMode
        string
        Source volume mode (Block or Filesystem).

        Allowed values: Block, Filesystem

    • status.error
      object
      Last 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.
      • status.error.message
        string
        Details of the encountered error during snapshot creation if specified. Note: message may be logged, and it should not contain sensitive information.
      • status.error.time
        string
        Timestamp when the error was encountered.
    • status.readyToUse
      boolean
      Indicates 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_use value returned from CSI CreateSnapshot gRPC call. For a pre-existing snapshot, filled with the ready_to_use value returned from the CSI ListSnapshots gRPC call if the driver supports it, otherwise set to True. If not specified, the readiness of a snapshot is unknown.
    • status.restoreSize
      string
      Minimum size of volume required to create a volume from this snapshot. For dynamic snapshot creation, filled by the snapshot controller with the size_bytes value returned from CSI CreateSnapshot gRPC call. For a pre-existing snapshot, filled with the size_bytes value returned from the CSI ListSnapshots gRPC call if the driver supports it. When restoring a volume from this snapshot, the volume size must not be smaller than the restoreSize if 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]+))))?$

    • status.sourceRef
      object
      sourceRef 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.
      • status.sourceRef.apiVersion
        string

        Required value

      • status.sourceRef.kind
        string

        Required value

      • status.sourceRef.name
        string

        Required value

      • status.sourceRef.namespace
        string
        Namespace of the source object (namespaced sources only).
      • status.sourceRef.uid
        string
        UID of the captured live source object (best-effort; used by d8-cli for import-mode recreation).
    • status.volumeGroupSnapshotName
      string
      Name of the VolumeGroupSnapshot of which this VolumeSnapshot is a part.
VolumeSnapshot is a user’s request for either creating a point-in-time snapshot of a persistent volume, or binding to a pre-existing snapshot.
  • spec
    object
    Desired characteristics of a snapshot requested by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots
    • spec.source
      object

      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.
      • spec.source.persistentVolumeClaimName
        string
        Name 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.
      • spec.source.volumeSnapshotContentName
        string
        Name 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).
    • spec.volumeSnapshotClassName
      string
      Name 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.
  • status
    object
    Current 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.
    • status.boundVolumeSnapshotContentName
      string
      Name 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.
    • status.creationTime
      string
      Timestamp 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_time value returned from CSI CreateSnapshot gRPC call. For a pre-existing snapshot, filled with the creation_time value returned from the CSI ListSnapshots gRPC call if the driver supports it. If not specified, the creation time of the snapshot is unknown.
    • status.error
      object
      Last 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.
      • status.error.message
        string
        Details of the encountered error during snapshot creation if specified. Note: message may be logged, and it should not contain sensitive information.
      • status.error.time
        string
        Timestamp when the error was encountered.
    • status.readyToUse
      boolean
      Indicates 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_use value returned from CSI CreateSnapshot gRPC call. For a pre-existing snapshot, filled with the ready_to_use value returned from the CSI ListSnapshots gRPC call if the driver supports it, otherwise set to True. If not specified, the readiness of a snapshot is unknown.
    • status.restoreSize
      string
      Minimum size of volume required to create a volume from this snapshot. For dynamic snapshot creation, filled by the snapshot controller with the size_bytes value returned from CSI CreateSnapshot gRPC call. For a pre-existing snapshot, filled with the size_bytes value returned from the CSI ListSnapshots gRPC call if the driver supports it. When restoring a volume from this snapshot, the volume size must not be smaller than the restoreSize if 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]+))))?$

    • status.volumeGroupSnapshotName
      string
      Name of the VolumeGroupSnapshot of which this VolumeSnapshot is a part.

DataExport

Short names: de

Scope: Namespaced
Version: v1alpha1

Resource for exporting persistent volume files and blocks.
  • spec
    object
    • spec.publicIngress
      string
      Type of public ingress for external access.

      Allowed values: KubernetesAPI, ConsoleFrontend

    • spec.publish
      boolean
      Enable external access to the exporter pod outside the cluster.
    • spec.targetRef
      object

      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.
      • spec.targetRef.group
        string
        API group of the target object ("" / omitted for the core group, e.g. for PersistentVolumeClaim).
      • spec.targetRef.kind
        string

        Required value

        Kind of the target (e.g. PersistentVolumeClaim, VirtualDisk, VolumeSnapshot, VirtualDiskSnapshot).

        Minimum length: 1

      • spec.targetRef.name
        string

        Required value

        Name of the target object for export.

        Minimum length: 1

    • spec.ttl
      string

      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)?$

  • status
    object
    Status information for DataExport.
    • status.accessTimestamp
      string
      Timestamp of the last access to the exported data.
    • status.ca
      string
      Base64 encoded CA certificate for TLS connection to the exporter pod.
    • status.completionTimestamp
      string
      Time the DataExport reached a terminal phase (Expired or Failed). Retention age is measured from this timestamp.
    • status.conditions
      array of objects
      Array of conditions describing the current state of DataExport.
      • status.conditions.lastTransitionTime
        string
        Last time the condition transitioned from one status to another.
      • status.conditions.message
        string
        Message describing the condition.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        Observed generation of the resource when the condition was last updated.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        Reason for the current condition status.

        Length: 1..1024

        Allowed values: Pending, ServerReady, ValidationFailed, TargetNotReady, TargetNotFound, PVConflict, DeploymentFailed, CleanupFailed, PublishFailed, Expired

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        Status of the condition.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        Type of the condition.

        Maximum length: 316

        Allowed values: Ready

        Pattern: ^([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])$

    • status.phase
      string
      Lifecycle state of the DataExport: Pending → Ready → Expired | Failed. Terminating denotes an object with a deletion timestamp and is a transient state, not an outcome. Expired is a normal terminal outcome when the idle-TTL window elapses.

      Allowed values: Pending, Ready, Expired, Failed, Terminating

    • status.publicURL
      string
      Public URL for external access (for example, https://api.<PUBLIC_DOMAIN>/<NAMESPACE>/<TARGET_KIND>/<TARGET_NAME>/). TARGET_KIND is the short kind of the export target: pvc, vd, or snap; TARGET_NAME is the value of spec.targetRef.name.
    • status.serverState
      string
      Exporter server state: Ready when the server is available and IdleExpired when the idle-TTL window has elapsed.

      Allowed values: Ready, IdleExpired

    • status.url
      string
      Internal URL of the exporter pod (e.g., https://X.X.X.X:8085).
    • status.volumeMode
      string
      Volume mode of the exported data.

      Allowed values: Block, Filesystem

DataImport

Short names: di

Scope: Namespaced
Version: v1alpha1

Resource for importing data into a newly created PVC (CreatePVC) or producing a durable data artifact for an already-existing snapshot node (PopulateData).
  • spec
    object
    • spec.mode
      string

      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 to storageParams and produce a durable VolumeSnapshotContent for the existing snapshot node referenced by snapshotRef.

      Default: CreatePVC

      Allowed values: CreatePVC, PopulateData

    • spec.publish
      boolean
      Expose the importer pod outside the cluster.

      Default: false

    • spec.pvcTemplate
      object
      CreatePVC only. PersistentVolumeClaim template fully describing the target PVC the imported bytes are written into; the PVC is preserved after the import.
      • spec.pvcTemplate.metadata
        object
        PersistentVolumeClaim metadata.
        • spec.pvcTemplate.metadata.annotations
          object
          PersistentVolumeClaim annotations.
        • spec.pvcTemplate.metadata.labels
          object
          PersistentVolumeClaim labels.
        • spec.pvcTemplate.metadata.name
          string
          PersistentVolumeClaim name.
      • spec.pvcTemplate.spec
        object
        PersistentVolumeClaim specification.
        • spec.pvcTemplate.spec.accessModes
          array of strings
          Desired access modes for the volume.
          • spec.pvcTemplate.spec.accessModes.Element of the array
            string

            Allowed values: ReadWriteOnce, ReadOnlyMany, ReadWriteMany, ReadWriteOncePod

        • spec.pvcTemplate.spec.resources
          object
          Minimum resource requirements for the volume.
          • spec.pvcTemplate.spec.resources.requests
            object
            Minimum amount of compute resources required.
        • spec.pvcTemplate.spec.storageClassName
          string
          Name 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

        • spec.pvcTemplate.spec.volumeMode
          string
          Volume mode required by the PersistentVolumeClaim.

          Allowed values: Block, Filesystem

    • spec.snapshotRef
      object
      PopulateData only. Reference to the existing snapshot node that owns the produced durable artifact. The namespace is implicitly the DataImport namespace.
      • spec.snapshotRef.apiVersion
        string
        Group/version of the snapshot node (e.g. snapshot.storage.k8s.io/v1).
      • spec.snapshotRef.kind
        string

        Required value

        Kind of the snapshot node (e.g. VolumeSnapshot, VirtualDiskSnapshot).

        Minimum length: 1

      • spec.snapshotRef.name
        string

        Required value

        Name of the snapshot node.

        Minimum length: 1

    • spec.storageParams
      object
      PopulateData only. Storage parameters used to produce the durable VolumeSnapshotContent. The StorageClass must support snapshots through a VolumeSnapshotClass.
      • spec.storageParams.size
        string

        Required value

        Requested size of the scratch PVC (a Kubernetes quantity, e.g. 10Gi).

        Minimum length: 1

      • spec.storageParams.storageClassName
        string

        Required value

        StorageClass of the scratch PVC (must be snapshot-capable).

        Minimum length: 1

      • spec.storageParams.volumeMode
        string
        Volume mode of the scratch PVC. Defaults to Filesystem when omitted.

        Allowed values: Block, Filesystem

    • spec.ttl
      string

      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)?$

    • spec.waitForFirstConsumer
      boolean
      Controls what the import waits for before it starts moving data into the target PVC. When the target PVC’s StorageClass has volumeBindingMode: WaitForFirstConsumer and this field is true, 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. When false, 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

  • status
    object
    Status information for DataImport.
    • status.accessTimestamp
      string
      Last access timestamp updated by the importer pod.
    • status.ca
      string
      Base64-encoded CA certificate for establishing a TLS connection to the importer pod.
    • status.completionTimestamp
      string
      Time the DataImport reached a terminal phase (Completed, Expired or Failed). Retention age is measured from this timestamp.
    • status.conditions
      array of objects
      • status.conditions.lastTransitionTime
        string

        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.

      • status.conditions.message
        string

        Human-readable message indicating details about the transition.

        This may be an empty string.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer

        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

      • status.conditions.reason
        string
        Current condition status reason.

        Length: 1..1024

        Allowed values: Pending, PVCCreated, ServerReady, InProgress, Expired, Deleted, UploadFinished, Completed, Failed, TargetFailed, CleanupFailed

        Pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$

      • status.conditions.status
        string
        Condition status.

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        Condition type.

        Maximum length: 316

        Allowed values: Ready, UploadFinished, Completed

        Pattern: ^([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])$

    • status.data
      object
      Information about the durable data artifact produced by this import.
      • status.data.artifactRef
        object
        Reference to the durable data artifact produced by this import (a VolumeSnapshotContent).
        • status.data.artifactRef.apiVersion
          string
        • status.data.artifactRef.kind
          string
        • status.data.artifactRef.name
          string
        • status.data.artifactRef.uid
          string
          UID of the durable data artifact (for example, the VolumeSnapshotContent UID). Optional and populated when available.
      • status.data.fsType
        string
        Filesystem type of the imported data. Empty means that the filesystem type is unknown or not applicable for a Block volume.
    • status.phase
      string
      Lifecycle state of the DataImport: Pending → Ready → Completed | Expired | Failed. Terminating denotes an object with a deletion timestamp and is a transient state, not an outcome. Expired is a normal terminal outcome when the idle-TTL window elapses.

      Allowed values: Pending, Ready, Completed, Expired, Failed, Terminating

    • status.publicURL
      string
      Public URL of the importer service.
    • status.serverState
      string
      Importer server state: Ready when the server is available, Finished when the upload has completed, and IdleExpired when the idle-TTL window has elapsed.

      Allowed values: Ready, Finished, IdleExpired

    • status.url
      string
      Internal URL of the importer service.
    • status.volumeMode
      string
      Volume mode of the imported data.

      Allowed values: Block, Filesystem