The module lifecycle stageGeneral Availability
The module has requirements for installation

The module is guaranteed to work only with stock kernels that are shipped with the supported distributions.

The module may work with other kernels or distributions, but its stable operation and availability of all features is not guaranteed.

The Deckhouse Kubernetes Platform installs CRDs but does not remove them when a module is disabled. If you no longer need the created CRDs, delete them.

BlockDevice

Short names: bd

Scope: Cluster
Version: v1alpha1

The resource displays up-to-date information about available block devices on nodes that can be used by the sds-node-configurator controller for LVM operations.

The resource is created and managed by the controller only. Manual modification of the resource is prohibited.

  • status
    object
    • status.actualVGNameOnTheNode
      string

      The actual name of the LVM Volume Group the device is included in.

      Optional: exists if only the device is used as a Physical Volume and is included in a Volume Group.

    • status.conditions
      array of objects
      Latest state. Known type: Consumable, which carries the reason behind status.consumable: Available, Mounted, HasFilesystem or HotPlugged.
      • status.conditions.lastTransitionTime
        string
        Timestamp of the last status transition for this condition.
      • status.conditions.message
        string
        Human-readable explanation of the current status.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        Value of metadata.generation the condition was last set against.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        Machine-readable reason for the current status, suitable for log filtering.

        Length: 1..1024

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

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

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        Condition type, for example Consumable.

        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.consumable
      boolean

      Required value

      The flag that defines whether this device can be used by the controller to create an LVM Physical Volume.
    • status.fsType
      string
      The device’s file system type.

      Allowed values: LVM2_member, ‘’

    • status.hotPlug
      boolean

      Required value

      Device connection type. Can be:

      • true: If the device has been hot-plugged;
      • false: Otherwise.
    • status.lvmVolumeGroupName
      string

      The LVMVolumeGroup resource name.

      Optional: exists only if the device is used as a Physical Volume, is included in a Volume Group, and is specified in an LVMVolumeGroup resource.

    • status.machineId
      string

      Required value

      Unique identifier of the machine the device is on (normally at /etc/machine-id).
    • status.model
      string

      Device model.

      Optional: might not exist if the manufacturer does not provide this information for the given type of disks.

    • status.nodeName
      string

      Required value

      The name of the Kubernetes node the device is on.
    • status.partUUID
      string

      The UUID of the partition.

      Optional: exists only if the device is a partition.

    • status.path
      string

      Required value

      The device path on the node (/dev/sda).
    • status.pvUUID
      string

      The LVM Physical Volume UUID.

      Optional: exists only if the device is used as a LVM Physical Volume.

    • status.rota
      boolean

      Required value

      Device disk type. Can be:

      • true: For HDD;
      • false: For SSD.
    • status.serial
      string
      The device unique serial number.
    • status.size
      string

      Required value

      The device size.
    • status.type
      string

      Required value

      The device’s type (disk, partition, RAID, and others).
    • status.vgUUID
      string

      The UUID of the LVM Volume Group to which this device belongs as a Physical Volume.

      Optional: exists only if the device is used as a Physical Volume and is included in a Volume Group.

    • status.wwn
      string

      The device unique wwn (World Wide Name) identifier.

      Optional: might not exist if WWN is not supported for this type of disk by the manufacturer.

LVMLogicalVolume

Short names: llv

Scope: Cluster
Version: v1alpha1

LVMLogicalVolume resource defines the storage where a PV will be created.
  • spec
    object
    • spec.actualLVNameOnTheNode
      string

      Required value

      Logical Volume name on the node.

      Minimal length: 1

      Pattern: ^[a-z0-9]([a-z0-9-._]{0,251}[a-z0-9])?$

    • spec.lvmVolumeGroupName
      string

      Required value

      Name of a LVMVolumeGroup resource whose Volume Group will be used for Logical Volume creation.

      Minimal length: 1

      Pattern: ^[a-z0-9]([a-z0-9-.]{0,251}[a-z0-9])?$

    • spec.size
      integer or string

      Required value

      Desired Logical Volume size. It can be specified as a numerical value or percentage of the total Volume Group or thin pool space. For thin pools, the total space is calculated as the actual thin pool size multiplied by the allocationLimit value.

      Note that if you specify a percentage, the Logical Volume will be automatically extended when Volume Group, thin pool, or thin pool’s allocationLimit value is increased.

      Minimal length: 1

      Pattern: ^[0-9]+(\.[0-9]+)?(E|P|T|G|M|k|Ei|Pi|Ti|Gi|Mi|Ki)?$|^[1-9][0-9]?%$|100%

    • spec.source
      object
      Source of the volume, if present.
      • spec.source.kind
        string

        Required value

        Kind of the source. LVMLogicalVolume kind means that the current resource is a clone. LVMLogicalVolumeSnapshot kind means that the current resource is a restored volume.

        Allowed values: LVMLogicalVolume, LVMLogicalVolumeSnapshot

      • spec.source.name
        string

        Required value

        Name of the resource from which the current resource is created.

        Minimal length: 1

    • spec.thick
      object
      • spec.thick.contiguous
        boolean

        If set to true, the logical volume will be created with the contiguous attribute.

        Use this attribute carefully, as it may prevent from Logical Volume creation even if there is enough space for it.

    • spec.thin
      object
      Defines the used thin pool. Specified only for Thin Logical Volume.
      • spec.thin.poolName
        string

        Required value

        Name of the used thin pool.

        Minimal length: 1

        Pattern: ^.*$

    • spec.type
      string

      Required value

      Logical Volume type.

      Allowed values: Thick, Thin

    • spec.volumeCleanup
      string

      Volume cleanup method after the PV is deleted. If this parameter is not set, there’s no guarantee that the data will be completely deleted.

      Allowed values:

      • RandomFillSinglePass: Volume will be overwritten with random data once before deletion. This option is not recommended for solid-state drives (SSDs), as overwriting reduces the drive’s lifespan. For thin volumes, only the space in use at the moment of volume deletion will be overwritten.
      • RandomFillThreePass: Volume will be overwritten with random data three times before deletion. This option is also not recommended for SSDs, as overwriting reduces the drive’s lifespan. For thin volumes, only the space in use at the moment of volume deletion will be overwritten.
      • Discard: Before deletion, all blocks of the volume will be marked as free using the discard system call. This option is applicable only to SSDs and thick volumes.

      Allowed values: RandomFillThreePass, RandomFillSinglePass, Discard

  • status
    object
    Describes the resource status.
    • status.actualSize
      string
      Actual Logical Volume size on the node.
    • status.conditions
      array of objects
      The latest observations of the resource state. Condition type: Ready.
      • status.conditions.lastTransitionTime
        string
        Timestamp of the last status transition for this condition. It is not bumped when only the reason or the message changes.
      • status.conditions.message
        string
        Human-readable explanation of the current status.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        The value of metadata.generation this condition was set against.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        Machine-readable reason for the current status, suitable for log filtering and alerting.

        Length: 1..1024

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

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

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        Condition type. Ready is True once the Logical Volume is in place, False while it is not, and Unknown before anything has observed it.

        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.contiguous
      boolean
      Shows if the created Logical Volume has the contiguous attribute.
    • status.observedGeneration
      integer
      The value of metadata.generation the controller has last acted on. When it trails metadata.generation, the controller has not yet processed the latest spec, and the conditions below still describe the previous one.
    • status.phase
      string
      Current resource’s phase.

      Allowed values: Created, Pending, Cleaning, Resizing, Failed

    • status.reason
      string
      Reason of the phase.

LVMLogicalVolumeSnapshot

Short names: llvs

Scope: Cluster
Version: v1alpha1

LVMLogicalVolumeSnapshot resource defines the storage where a VolumeSnapshot will be created.
  • spec
    object
    • spec.actualSnapshotNameOnTheNode
      string
      Name of the volume snapshot.

      Minimal length: 1

    • spec.lvmLogicalVolumeName
      string

      Required value

      Name of the snapshotted LLV resource.

      Minimal length: 1

  • status
    object
    Describes the resource status.
    • status.actualLVNameOnTheNode
      string
      Name of the volume the snapshot is created from.
    • status.actualVGNameOnTheNode
      string
      Name of the Volume Group, where the snapshot resides in.
    • status.conditions
      array of objects
      The latest observations of the resource state. Condition type: Ready.
      • status.conditions.lastTransitionTime
        string
        Timestamp of the last status transition for this condition. It is not bumped when only the reason or the message changes.
      • status.conditions.message
        string
        Human-readable explanation of the current status.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        The value of metadata.generation this condition was set against.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        Machine-readable reason for the current status, suitable for log filtering and alerting.

        Length: 1..1024

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

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

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        Condition type. Ready is True once the snapshot is in place, False while it is not, and Unknown before anything has observed it.

        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.nodeName
      string
      Name of the Kubernetes node the snapshot resides in.
    • status.observedGeneration
      integer
      The value of metadata.generation the controller has last acted on. When it trails metadata.generation, the controller has not yet processed the latest spec, and the conditions below still describe the previous one.
    • status.phase
      string

      Current resource’s phase.

      Possible values:

      • Created: Snapshot was created successfully.
      • Pending: Snapshot is being created.
      • Failed: An error occurred while creating the snapshot.

      Allowed values: Created, Pending, Failed

    • status.reason
      string
      Reason of the phase.
    • status.size
      string
      Snapshotted Logical Volume size on the node.
    • status.usedSize
      string
      Snapshot Logical Volume size on the node.

LVMVolumeGroup

Short names: lvg

Scope: Cluster
Version: v1alpha1

An interface for managing Volume Groups and Thin pools on the nodes.

These resources might be created both by a user and the sds-node-configurator controller. sds-node-configurator controller will automatically create an LVMVolumeGroup resource if it detects an existing Volume Group on a node tagged with ‘storage.deckhouse.io/enabled=true’. Controller will fill in both the ‘spec’ and ‘status’ fields. spec.thinPools field must be filled in by yourself.

  • spec
    object
    • spec.actualVGNameOnTheNode
      string

      Required value

      Desired name of a Volume Group. Must be unique for the node it is on.

      This field is immutable.

    • spec.blockDeviceSelector
      object

      Desired block device selector.

      Note: Selected block devices must belong to the same node for a volume group of type ‘Local’.

      • spec.blockDeviceSelector.matchExpressions
        array of objects
        Desired block device selector expressions.
        • spec.blockDeviceSelector.matchExpressions.key
          string
          Label key to check.
        • spec.blockDeviceSelector.matchExpressions.operator
          string
          Operator used to compare values.

          Allowed values: In, NotIn, Exists, DoesNotExist

        • spec.blockDeviceSelector.matchExpressions.values
          array of strings
          Array of values to compare. Required if the operator is In or NotIn.
      • spec.blockDeviceSelector.matchLabels
        object
        Desired block device selector labels.
    • spec.fileDevices
      array of objects

      File-backed block devices to create as LVM PVs for this Volume Group.

      The agent will create a preallocated file in the specified directory, attach it as a loop device, and use it as a Physical Volume. File devices and block devices can be used together in the same VG.

      Each entry is identified by its name. directory cannot be changed, and size can only be increased: raising it grows the backing file, the loop device and the Physical Volume in place, without unmounting anything or interrupting the volumes on top. Lowering it is rejected: giving capacity back means shrinking the Volume Group, which the module does not do for block devices either.

      Capacity can therefore be added two ways: raise the size of an existing entry, or add a new entry under a new name when the extra space has to come from a different filesystem. Prefer fewer, larger entries — every entry costs a loop device, a PV and VG metadata, and thick logical volumes requesting contiguous space get harder to place as free space is spread across many small PVs.

      An entry that was never provisioned (it is not present in status.nodes[].fileDevices, for example because it failed validation) can be removed from the spec. Removing an entry that backs a live PV is not supported — the module never shrinks a Volume Group; the agent reports the drift on the VGConfigurationApplied condition (reason FileDeviceDrift) and takes no destructive action. The Volume Group keeps working and stays Ready. Freeing space inside a file device is done with fstrim instead, see the module FAQ.

      • spec.fileDevices.directory
        string

        Absolute directory on the node’s filesystem where the backing file will be created.

        Must be the module’s configured base directory (fileDevicesDirectory, default /opt/deckhouse/sds/file-devices) or a subdirectory of it; the agent rejects paths outside that subtree so a stray entry cannot fill an arbitrary host path.

        The agent creates the directory automatically (mkdir -p) if it does not exist. The path must be absolute and must not contain ‘..’ segments. Provisioning fails if the path is on a read-only filesystem, a non-directory component is in the way, or there is not enough free space for the requested size.

        Maximum length: 4096

        Pattern: ^/[^/]+(/[^/]+)*$

      • spec.fileDevices.name
        string

        Identifier of this file device within the Volume Group, unique among the entries of this LVMVolumeGroup. It becomes part of the backing file’s name on the node, so it is restricted to lowercase alphanumerics and ‘-’.

        This field is the entry’s key: an entry is identified by it, and changing it is not an edit but the removal of one entry and the addition of another. If the old name had already been provisioned, its Physical Volume stays in the Volume Group and the agent reports it on the VGConfigurationApplied condition.

        Maximum length: 63

        Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

      • spec.fileDevices.size
        string

        Size of the preallocated backing file. Must be at least 1Gi; a smaller value is rejected at admission, because size cannot be lowered afterwards and an entry accepted below the minimum is one the agent refuses forever.

        Only binary units are accepted. Decimal units are rejected at admission for the same reason: 1G is 10^9 bytes, which is below the 1Gi (2^30 bytes) minimum, and the mistake is easy to miss.

        The value must be a whole number of the unit it names: 1536Mi, not 1.5Gi. A Physical Volume is always a little smaller than its backing file (LVM keeps metadata at the head of the device and then rounds down to whole extents), and the reconciler treats a difference of up to one extent as “already the right size”. That tolerance covers the metadata gap exactly as long as the requested size is a whole number of mebibytes; a finer value can leave a permanent gap the agent would try to close on every reconcile.

        Maximum length: 32

        Pattern: ^[0-9]+(Mi|Gi|Ti|Pi|Ei)$

    • spec.local
      object
      Desired configuration for a local Volume Group.
      • spec.local.nodeName
        string

        Required value

        Desired node for the LVM Volume Group.

        This field is immutable.

    • spec.thinPools
      array of objects
      Desired thin pool configuration.
      • spec.thinPools.allocationLimit
        string
        Thin pool oversize limit.

        Default: 150%

        Pattern: ^[1-9][0-9]{2,3}%$

      • spec.thinPools.name
        string

        Desired thin pool name.

        This field is immutable.

      • spec.thinPools.size
        integer or string

        Desired thin pool size. Might be specified as number or percent size of total Volume Group space.

        Note, that if you specify the percent size, the thin pool will be automatically extended when Volume Group is extended.

        Pattern: ^[0-9]+(\.[0-9]+)?(E|P|T|G|M|k|Ei|Pi|Ti|Gi|Mi|Ki)?$|^[1-9][0-9]?%$|100%

    • spec.type
      string

      Required value

      Type of a Volume Group.

      Possible values:

      • Local: Local volume group; the devices used are not distributed (not Shared LUN).

      Allowed values: Local

  • status
    object
    • status.allocatedSize
      string
      Amount of space currently occupied on the Volume Group.
    • status.conditions
      array of objects
      LVMVolumeGroup conditions.
      • status.conditions.lastTransitionTime
        string
        Timestamp of the last status transition for this condition. It is not bumped when only the reason or the message changes.
      • status.conditions.message
        string
        Information about the current status.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        The value of metadata.generation this condition was set against.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        Machine-readable reason for the current status, suitable for log filtering and alerting.

        Length: 1..1024

        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: VGConfigurationApplied, VGReady, NodeReady, AgentReady, Ready

    • status.configurationApplied
      string
      Indicates if the last configuration has been successfully applied.
    • status.extentSize
      string
      Physical extent size of the Volume Group.
    • status.nodes
      array of objects
      Information about the nodes the Volume Group is on.
      • status.nodes.devices
        array of objects
        Information about the devices used in the Volume Group on the current node.
        • status.nodes.devices.blockDevice
          string
          Name of the corresponding block device resource.
        • status.nodes.devices.devSize
          string
          Block device size.
        • status.nodes.devices.path
          string
          Device path on the node (e.g., /dev/sda).
        • status.nodes.devices.pvSize
          string
          Physical Volume size.
        • status.nodes.devices.pvUUID
          string
          LVM Physical Volume UUID.
      • status.nodes.fileDevices
        array of objects
        Information about the file-backed devices used in the Volume Group on the current node.
        • status.nodes.fileDevices.filePath
          string
          Path to the backing file on the node.
        • status.nodes.fileDevices.loopDevice
          string
          Loop device path (e.g., /dev/loop0).
        • status.nodes.fileDevices.name
          string

          Name of the spec.fileDevices entry this device was provisioned from.

          An entry present here backs a live Physical Volume and cannot be removed from the spec; an entry absent from this list has not been provisioned and may be removed.

        • status.nodes.fileDevices.pvUUID
          string
          LVM Physical Volume UUID.
        • status.nodes.fileDevices.size
          string
          Size of the Physical Volume created on the backing file. This is slightly smaller than the requested spec.fileDevices[].size because LVM reserves space for PV metadata (the same way status.nodes[].devices[].pvSize differs from the raw device size).
      • status.nodes.name
        string
        Node name.
    • status.observedGeneration
      integer

      The value of metadata.generation the conditions watcher last computed a verdict against. When it trails metadata.generation, the phase and the aggregate Ready condition still describe the previous spec.

      Only the conditions watcher sets it, because it is the only writer that looks at the resource as a whole. The agent and the infrastructure watcher each own individual stage conditions and stamp the generation on those.

      Allowed values: 0 <= X

    • status.phase
      string
      General LVMVolumeGroup condition.

      Allowed values: Pending, Ready, NotReady, Terminating, ‘’

    • status.thinPoolReady
      string
      Shows the number of healthy and total thin pools.
    • status.thinPools
      array of objects

      Current state of the Volume Group’s thin pools.

      Might be empty if there are no thin pools in the Volume Group.

      • status.thinPools.actualSize
        string
        Thin pool capacity.
      • status.thinPools.allocatedSize
        string
        Total requested size of logical volumes in the thin pool.
      • status.thinPools.allocationLimit
        string
        Thin pool oversize limit.

        Default: 150%

        Pattern: ^[1-9][0-9]{2,3}%$

      • status.thinPools.availableSpace
        string
        Thin pool free space available.
      • status.thinPools.message
        string
        Information about the status.
      • status.thinPools.name
        string
        Thin pool name.
      • status.thinPools.ready
        boolean
        Thin pool health status.
      • status.thinPools.usedSize
        string
        Thin pool used size.
    • status.vgFree
      string
      Volume Group free space.
    • status.vgSize
      string
      Volume Group capacity.
    • status.vgUUID
      string
      Volume Group UUID.

LVMVolumeGroupSet

Short names: lvgset

Scope: Cluster
Version: v1alpha1

An interface for creating several LVMVolumeGroups by common template at once.
  • spec
    object
    • spec.lvmVolumeGroupTemplate
      object

      Required value

      Common template for LVMVolumeGroup resources provided by the set.
      • spec.lvmVolumeGroupTemplate.actualVGNameOnTheNode
        string

        Required value

        Desired name of a Volume Group in LVMVolumeGroups. Must be unique for the node it is on.

        This field is immutable. Note that this Volume Group name will be common for every LVMVolumeGroup created by the set.

      • spec.lvmVolumeGroupTemplate.blockDeviceSelector
        object
        BlockDevice resources selector used in LVMVolumeGroups configurations.
        • spec.lvmVolumeGroupTemplate.blockDeviceSelector.matchExpressions
          array of objects
          Expressions for the block device selector.
          • spec.lvmVolumeGroupTemplate.blockDeviceSelector.matchExpressions.key
            string
            Label key to check.
          • spec.lvmVolumeGroupTemplate.blockDeviceSelector.matchExpressions.operator
            string
            Operator for comparing values.

            Allowed values: In, NotIn, Exists, DoesNotExist

          • spec.lvmVolumeGroupTemplate.blockDeviceSelector.matchExpressions.values
            array of strings
            An array of values to compare. Required if the operator is In or NotIn.
        • spec.lvmVolumeGroupTemplate.blockDeviceSelector.matchLabels
          object
          Labels for the block device selector.
      • spec.lvmVolumeGroupTemplate.fileDevices
        array of objects

        File-backed block devices to create as LVM PVs in LVMVolumeGroups.

        The agent will create a preallocated file in the specified directory, attach it as a loop device, and use it as a Physical Volume.

        Each entry is identified by its name. directory cannot be changed, and size can only be increased: raising it grows the backing file, the loop device and the Physical Volume in place on every node the set covers, without unmounting anything or interrupting the volumes on top. Lowering it is rejected: giving capacity back means shrinking the Volume Group, which the module does not do for block devices either.

        Capacity can therefore be added two ways: raise the size of an existing entry, or add a new entry under a new name when the extra space has to come from a different filesystem — at most 32 entries per Volume Group.

        Note that the configuration will be common for every LVMVolumeGroup created by the set. Entries removed from this template are removed from the child LVMVolumeGroups; if such an entry already backs a live Physical Volume, the agent reports the drift on the child’s VGConfigurationApplied condition and takes no destructive action.

        • spec.lvmVolumeGroupTemplate.fileDevices.directory
          string
          Absolute directory on the node’s filesystem where the backing file will be created. The agent creates the directory automatically (mkdir -p) if it does not exist; the path must be absolute and must not contain ‘..’ segments.

          Maximum length: 4096

          Pattern: ^/[^/]+(/[^/]+)*$

        • spec.lvmVolumeGroupTemplate.fileDevices.name
          string
          Identifier of this file device within each Volume Group the set creates. Becomes part of the backing file’s name on the node.

          Maximum length: 63

          Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$

        • spec.lvmVolumeGroupTemplate.fileDevices.size
          string

          Size of the preallocated backing file. Must be at least 1Gi; a smaller value is rejected at admission, since size cannot be lowered afterwards.

          Only binary units are accepted; 1G (10^9 bytes) is below the 1Gi (2^30 bytes) minimum and is rejected at admission. The value must be a whole number of the unit it names — 1536Mi, not 1.5Gi; see the same field on LVMVolumeGroup for why.

          Maximum length: 32

          Pattern: ^[0-9]+(Mi|Gi|Ti|Pi|Ei)$

      • spec.lvmVolumeGroupTemplate.metadata
        object
        Metadata of LVMVolumeGroup resources.
        • spec.lvmVolumeGroupTemplate.metadata.labels
          object
          Required labels for LVMVolumeGroup resources.
      • spec.lvmVolumeGroupTemplate.thinPools
        array of objects

        Desired thin pool configuration in LVMVolumeGroups.

        Note that the configuration will be common for every LVMVolumeGroup created by the set.

        • spec.lvmVolumeGroupTemplate.thinPools.allocationLimit
          string
          Thin pool oversize limit.

          Default: 150%

          Pattern: ^[1-9][0-9]{2,3}%$

        • spec.lvmVolumeGroupTemplate.thinPools.name
          string

          Desired thin pool name.

          This field is immutable.

        • spec.lvmVolumeGroupTemplate.thinPools.size
          integer or string

          Desired thin pool size. Might be specified as a number or percentage of total Volume Group space.

          Note that if you specify the percent size, the thin pool will be automatically extended when Volume Group is extended.

          Pattern: ^[0-9]+(\.[0-9]+)?(E|P|T|G|M|k|Ei|Pi|Ti|Gi|Mi|Ki)?$|^[1-9][0-9]?%$|100%

      • spec.lvmVolumeGroupTemplate.type
        string

        Required value

        Type of a VolumeGroup in LVMVolumeGroups.

        Possible values:

        • Local: Local volume group; the devices used are not distributed (not Shared LUN).

        Allowed values: Local

    • spec.nodeSelector
      object

      Required value

      Node selector for nodes that will be used by LVMVolumeGroups.
      • spec.nodeSelector.matchExpressions
        array of objects
        Expressions for the node selector.
        • spec.nodeSelector.matchExpressions.key
          string
          Label key to check.
        • spec.nodeSelector.matchExpressions.operator
          string
          Operator for comparing values.

          Allowed values: In, NotIn, Exists, DoesNotExist

        • spec.nodeSelector.matchExpressions.values
          array of strings
          An array of values to compare. Required if the operator is In or NotIn.
      • spec.nodeSelector.matchLabels
        object
        Labels for the node selector.
    • spec.strategy
      string

      Required value

      Strategy (rule) to provide LVMVolumeGroup resources by the set.

      Allowed values: PerNode

  • status
    object
    • status.conditions
      array of objects
      The latest observations of the resource state. Condition type: Ready.
      • status.conditions.lastTransitionTime
        string
        Timestamp of the last status transition for this condition. It is not bumped when only the reason or the message changes.
      • status.conditions.message
        string
        Human-readable explanation of the current status.

        Maximum length: 32768

      • status.conditions.observedGeneration
        integer
        The value of metadata.generation this condition was set against.

        Allowed values: 0 <= X

      • status.conditions.reason
        string
        Machine-readable reason for the current status, suitable for log filtering and alerting.

        Length: 1..1024

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

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

        Allowed values: True, False, Unknown

      • status.conditions.type
        string
        Condition type. Ready is True once the set of LVMVolumeGroup resources is in place, False while it is not, and Unknown before anything has observed it.

        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.createdLVMVolumeGroups
      array of objects
      Brief information about LVMVolumeGroups created by the set.
      • status.createdLVMVolumeGroups.lvmVolumeGroupName
        string
        Name of the created LVMVolumeGroup resource.
      • status.createdLVMVolumeGroups.nodeName
        string
        Name of the node where the LVMVolumeGroup resource was created.
    • status.currentLVMVolumeGroupsCount
      integer
      Current number of LVMVolumeGroups created by the set.
    • status.desiredLVMVolumeGroupsCount
      integer
      Desired number of LVMVolumeGroups that should be created by the set.
    • status.observedGeneration
      integer
      The value of metadata.generation the controller has last acted on. When it trails metadata.generation, the controller has not yet processed the latest spec, and the conditions below still describe the previous one.
    • status.phase
      string
      LVMVolumeGroups creation phase.

      Allowed values: Created, Pending, NotCreated, ‘’

    • status.reason
      string
      Reason for the current phase.