The module lifecycle stageGeneral Availability
The module has requirements for installation

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.

LocalStorageClass

Short names: lsc

Scope: Cluster
Version: v1alpha1

LocalStorageClass is a Kubernetes Custom Resource that defines a configuration for a Kubernetes StorageClass.
  • spec
    object
    Defines a Kubernetes StorageClass configuration.
    • spec.fsType
      string
      StorageClass file system type.

      Default: ext4

      Allowed values: ext4, xfs

    • spec.lvm
      object

      Required value

      LVM configuration.
      • spec.lvm.lvmVolumeGroups
        array of objects

        Required value

        List of entries selecting the LVMVolumeGroup resources where PersistentVolumes will be created.

        Each entry selects LVMVolumeGroups either by name (name) or by labels (labelSelector). Exactly one of the two must be set per entry, and the whole list must use one kind consistently — either all name entries or all labelSelector entries, not a mix. A labelSelector entry is resolved by the controller into every matching LVMVolumeGroup and kept in sync as LVMVolumeGroups are added, removed or relabeled. Name-based entries must list each LVMVolumeGroup at most once. Overlapping labelSelector entries that resolve to the same LVMVolumeGroup are collapsed when they agree on thin.poolName and rejected when they disagree.

        • spec.lvm.lvmVolumeGroups.labelSelector
          object
          Label selector that selects one or more LVMVolumeGroup resources by their labels. Mutually exclusive with name.
          • spec.lvm.lvmVolumeGroups.labelSelector.matchExpressions
            array of objects
            List of label selector requirements. The requirements are ANDed.
            • spec.lvm.lvmVolumeGroups.labelSelector.matchExpressions.key
              string
              key is the label key that the selector applies to.
            • spec.lvm.lvmVolumeGroups.labelSelector.matchExpressions.operator
              string
              operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
            • spec.lvm.lvmVolumeGroups.labelSelector.matchExpressions.values
              array of strings
              values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty.
          • spec.lvm.lvmVolumeGroups.labelSelector.matchLabels
            object
            Map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”.
        • spec.lvm.lvmVolumeGroups.name
          string
          LVMVolumeGroup resource name. Mutually exclusive with labelSelector.

          Maximum length: 253

        • spec.lvm.lvmVolumeGroups.thin
          object
          Thin pool used for the LVMVolumeGroups selected by this entry. Required when type is Thin, forbidden when type is Thick.
          • spec.lvm.lvmVolumeGroups.thin.poolName
            string

            Required value

            Thin pool name.

            Length: 1..253

            Pattern: ^.*$

      • spec.lvm.thick
        object
        Settings for Logical Volumes in a LVMVolumeGroup resource.
        • spec.lvm.thick.contiguous
          boolean

          If true, the Logical Volume will be created with the contiguous flag.

          Note: This flag should be used with caution because it may lead to poor scheduling of pods using the PersistentVolume. Our scheduler checks the free space in VG and selects nodes with the most free space for pods. However, it cannot determine the maximum amount of sequential free space available. Consequently, there may be situations where a pod is scheduled to a node, but the volume cannot be created due to insufficient contiguous free space. If such a situation arises, manual intervention will be required.

      • spec.lvm.type
        string

        Required value

        Provisioning type of the LVM Logical Volumes (LV) created for PersistentVolumes (PV).

        Allowed values: Thick, Thin

      • spec.lvm.volumeCleanup
        string

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

        Allowed values:

        • RandomFillSinglePass: The 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.
        • RandomFillThreePass: The 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.
        • 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.

        Allowed values: RandomFillThreePass, RandomFillSinglePass, Discard

    • spec.reclaimPolicy
      string

      Required value

      StorageClass reclaim policy. Possible values:

      • Delete: If the PersistentVolumeClaim is deleted, the PersistentVolume and its associated storage are also deleted
      • Retain: If the PersistentVolumeClaim is deleted, the PersistentVolume and its associated storage remain

      Allowed values: Delete, Retain

    • spec.volumeBindingMode
      string

      Required value

      StorageClass binding mode. Possible values:

      • Immediate: Creates a PersistentVolume immediately after the PersistentVolumeClaim is created
      • WaitForFirstConsumer: Creates a PersistentVolume only after a Pod that uses the PersistentVolumeClaim is created

      Allowed values: Immediate, WaitForFirstConsumer

  • status
    object
    Current state of the StorageClass.
    • status.phase
      string

      StorageClass current state. Possible values:

      • Failed: The controller received incorrect resource configuration or errors occurred during the operation
      • Created: All operations completed successfully

      Allowed values: Failed, Created

    • status.reason
      string
      Additional information about the current state of the StorageClass.