To manage volumes based on the TATLIN.UNIFIED storage system, you can use the csi-yadro module to create StorageClass resources through custom YadroStorageClass resources.

Enable the module

To enable the csi-yadro module, run the following command:

d8 k apply -f - <<EOF
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: csi-yadro
spec:
  enabled: true
  version: 1
EOF

Wait until csi-yadro is in the Ready status. To check the status, run the following command:

d8 k get module csi-yadro -w

In the output, you should see information about the module:

NAME        WEIGHT   STATE     SOURCE     STAGE   STATUS
csi-yadro   910      Enabled   Embedded           Ready

Connect to the TATLIN.UNIFIED storage system

To connect to the TATLIN.UNIFIED storage system and enable configuring of StorageClass objects, apply the following YadroStorageConnection resource:

d8 k apply -f - <<EOF
apiVersion: storage.deckhouse.io/v1alpha1
kind: YadroStorageConnection
metadata:
  name: yad1
spec:
  controlPlane:
    address: "172.19.28.184"
    username: "admin"
    password: "cGFzc3dvcmQ=" # Must be encoded in Base64
    ca: "base64encoded"
    skipCertificateValidation: true
  dataPlane:
    protocol: "iscsi"
    iscsi:
      volumeExportPort: "p50,p51,p60,p61"
EOF

Create a StorageClass

To create a StorageClass, use the YadroStorageClass resource. Creating a StorageClass resource manually without using YadroStorageClass can lead to errors.

Example command to create a StorageClass based on the TATLIN.UNIFIED storage system:

d8 k apply -f - <<EOF
apiVersion: storage.deckhouse.io/v1alpha1
kind: YadroStorageClass
metadata:
  name: yad1
spec:
  fsType: "xfs"
  pool: "pool-hdd"
  storageConnectionName: "yad1"
  reclaimPolicy: Delete
EOF

Ensure the module works

To make sure the csi-yadro is working properly, check the pod status in the d8-csi-yadro namespace. All pods must have the Running or Completed status. The csi-yadro pods must be running on all nodes.

To check that the module works, run the following command:

kubectl -n d8-csi-yadro get pod -owide -w