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.

YadroTatlinUnifiedStorageClass

Scope: Cluster
Version: v1alpha1

YadroTatlinUnifiedStorageClass is a Kubernetes Custom Resource that defines a configuration for a Kubernetes Storage class.
  • spec
    object
    • spec.fsType
      string

      Required value

      The filesystem type of the storage class. Might be:

      • xfs
      • ext4

      Allowed values: xfs, ext4

    • spec.pool
      string

      Required value

      Name of the pool.

      Minimal length: 1

    • spec.reclaimPolicy
      string

      Required value

      The storage class’s reclaim policy. Might be:

      • Delete (If the Persistent Volume Claim is deleted, deletes the Persistent Volume and its associated storage as well)
      • Retain (If the Persistent Volume Claim is deleted, remains the Persistent Volume and its associated storage)

      Allowed values: Delete, Retain

    • spec.storageConnectionName
      string

      Required value

      Name of the YadroTatlinUnifiedStorageConnection custom resource.

      Minimal length: 1

  • status
    object
    Displays current information about the Storage Class.
    • 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 StorageClass is in place and False when a reconcile pass failed. Until the controller has produced a verdict the condition is absent, so treat a missing Ready as “not evaluated yet” rather than as a failure.

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

      The Storage class current state. Might be:

      • Failed (if the controller received incorrect resource configuration or some errors occurred during the operation)
      • Created (if everything went fine)

      Allowed values: Failed, Created

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

YadroTatlinUnifiedStorageConnection

Scope: Cluster
Version: v1alpha1

Yadro storage connection parameters.
  • spec
    object
    • spec.controlPlane
      object

      Required value

      Properties of control plane connection for Yadro storage.
      • spec.controlPlane.address
        string

        Required value

        Yadro storage address
      • spec.controlPlane.ca
        string
        Yadro CA certificate, in case of self-signed SSL certificates
      • spec.controlPlane.nodeSelector
        object
        Node selector for nodes that have network connectivity to the API of each Tatlin array described by YadroTatlinUnifiedStorageConnection objects. The CSI controller runs as a single leader instance, so it can be scheduled only on a node that satisfies the intersection of all these selectors. Ensure that at least one cluster node matches every nodeSelector; otherwise, the controller pod cannot be started. If the field is omitted, the controller may be scheduled on any Linux node.
        • spec.controlPlane.nodeSelector.matchExpressions
          array of objects
          A list of advanced node selector requirements. Each requirement specifies a key, an operator, and optional values for filtering nodes based on their labels or other fields.
          • spec.controlPlane.nodeSelector.matchExpressions.key
            string
          • spec.controlPlane.nodeSelector.matchExpressions.operator
            string

            Allowed values: In, NotIn, Exists, DoesNotExist

          • spec.controlPlane.nodeSelector.matchExpressions.values
            array of strings
        • spec.controlPlane.nodeSelector.matchLabels
          object
          A map of labels that must match exactly with the labels of a node. Nodes that do not match any of the specified labels will be excluded.
      • spec.controlPlane.password
        string

        Required value

        Yadro storage password, base64 encoded
      • spec.controlPlane.skipCertificateValidation
        boolean
        Skip Yadro storage certificate check
      • spec.controlPlane.username
        string

        Required value

        Yadro storage username
    • spec.dataPlane
      object

      Required value

      Properties of data plane connection for Yadro storage.
      • spec.dataPlane.fc
        object
        FC connection properties
        • spec.dataPlane.fc.volumeExportPort
          string

          Required value

          Volume export ports for connection
      • spec.dataPlane.iscsi
        object
        iSCSI connection properties
        • spec.dataPlane.iscsi.volumeExportPort
          string

          Required value

          Volume export ports for connection
      • spec.dataPlane.nodeSelector
        object

        Node selector that defines where the iSCSI / FC / NVMe-TCP volumes exported by this Tatlin array may be attached. The restriction applies only to this connection; other YadroTatlinUnifiedStorageConnection objects can specify their own selectors.

        Every node that matches at least one selector from all existing YadroTatlinUnifiedStorageConnection objects will automatically:

        • run exactly one csi-node pod (DaemonSet)
        • have the user-space packages required for multipath and iSCSI installed
        • keep the multipathd and iscsid services running
        • when at least one connection uses nvme-tcp — have nvme-cli installed, the nvme-tcp kernel module loaded, nvme_core multipath enabled and a TATLIN-specific iopolicy udev rule configured

        If the field is omitted, volumes can be mounted on any Linux node in the cluster and the csi-node DaemonSet will be scheduled cluster-wide.

        • spec.dataPlane.nodeSelector.matchExpressions
          array of objects
          A list of advanced node selector requirements. Each requirement specifies a key, an operator, and optional values for filtering nodes based on their labels or other fields.
          • spec.dataPlane.nodeSelector.matchExpressions.key
            string
          • spec.dataPlane.nodeSelector.matchExpressions.operator
            string

            Allowed values: In, NotIn, Exists, DoesNotExist

          • spec.dataPlane.nodeSelector.matchExpressions.values
            array of strings
        • spec.dataPlane.nodeSelector.matchLabels
          object
          A map of labels that must match exactly with the labels of a node. Nodes that do not match any of the specified labels will be excluded.
      • spec.dataPlane.nvmeTcp
        object
        NVMe-over-TCP connection properties. Requires Tatlin Unified Gen2 firmware 3.2.0 or newer and a pre-created access group of type nvme on the array (tatlin-cli accessgroup create --name NAME --type nvme).
        • spec.dataPlane.nvmeTcp.accessGroupName
          string

          Required value

          Name of the pre-created access group on the Tatlin array (type nvme) into which the CSI driver will register the cluster hosts and through which it will publish volumes.
        • spec.dataPlane.nvmeTcp.volumeExportPort
          string

          Required value

          Volume export ports for connection
      • spec.dataPlane.protocol
        string

        Required value

        Supported connection protocols

        Allowed values: iscsi, fc, nvme-tcp

  • status
    object
    Displays current information about the resources managed by the YadroTatlinUnifiedClusterConnection custom resource.
    • 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 backend secret and the Tatlin configuration are in place and False when a reconcile pass failed. Until the controller has produced a verdict the condition is absent, so treat a missing Ready as “not evaluated yet” rather than as a failure.

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

      The current state of resources managed by the YadroTatlinUnifiedClusterConnection custom resource. Might be:

      • Failed (if the controller received incorrect resource configuration or some errors occurred during the operation)
      • Created (if everything went fine)

      Allowed values: Failed, Created

    • status.reason
      string
      Additional information about the resources managed by the YadroTatlinUnifiedClusterConnection custom resource.