Container Storage Interface(CSI) Plug-N-Play provided by SODA

SODA CSI Plug-N-Play allows users to provision the storage in K8s using SODA way and grab the Data Management capabilities offered by SODA. SODA CSI PnP let’s user to define the profile in SODA and use the profile in the StorageClass of K8s to provision the storage dynamically. It allows user to switch between different heterogeneous CSI drivers via Profile.

Before we begin we need to create the Profile in SODA using the below command

osdsctl profile create
{
  "name": "openebs-profile-soda",
  "storageType": "block",
  "description": "string",
  "provisioningProperties": {
    "dataStorage": {
      "recoveryTimeObjective": 10,
      "provisioningPolicy": "Thick",
      "compression": false,
      "deduplication": false,
      "characterCodeSet": "ASCII",
      "maxFileNameLengthBytes": 255,
      "storageAccessCapability": [
        "Read"
      ]
    },
    "ioConnectivity": {
      "accessProtocol": "iscsi",
      "maxIOPS": 150,
      "minIOPS": 50,
      "maxBWS": 5,
      "minBWS": 1,
      "latency": 1
    }
  },
  "replicationProperties": {},
  "snapshotProperties": {},
  "dataProtectionProperties": {},
  "customProperties": {
    "driver": "local.csi.openebs.io"            ## YOU NEED TO UPDATE THE DRIVER WITH VENDOR DRIVER NAME
  }
}

Currently SODA CSI PnP has been tested for the below CSI drivers, this is not the exhaustive list but it will keep growing as other vendors verifies the soda-csi-provisioner.

Storage Vendor CSI Plugin Deployment File Sample App File
OpenEBS LVM Plugin Operator Sample Application
OpenEBS ZFS Plugin Operator Sample Application
IBM Block CSI Driver Operator Demo
Ceph CSI Driver Operator Demo
K8s-csi-lvm Operator Demo