Operator

Starting with Container Storage Module 1.12, all deployments will use images from quay.io by default. New release images will be available on Docker Hub until CSM 1.14 (May 2025), and existing releases will remain on Docker Hub.

Operator Installation

To deploy the Operator, follow the instructions available here.


CSM Installation Wizard Support Matrix Click Here


The Container Storage Modules Installation Wizard is a webpage that helps you create a manifest file to install Dell CSI Drivers and CSM Modules. Users can enable or disable modules through the UI, and it generates a single manifest file, eliminating the need to download individual Helm charts for drivers and modules.

Generate Manifest File

  1. Open the Installation Wizard.
  2. Select the Installation Type as Helm/Operator.
  3. Select the Array.
  4. Enter the Image Repository. The default value is dellemc.
  5. Select the CSM Version.
  6. Select the modules for installation. If there are module specific inputs, enter their values.
  7. If needed, modify the Controller Pods Count.
  8. If needed, select Install Controller Pods on Control Plane and/or Install Node Pods on Control Plane.
  9. Enter the Namespace. The default value is csi-<array>.
  10. Click on Generate YAML.
  11. A manifest file, values.yaml will be generated and downloaded.
  12. A section Run the following commands to install will be displayed.
  13. Run the commands displayed to install Dell CSI Driver and Modules using the generated manifest file.

Installation Using Operator

Steps

NOTE: Ensure that the csm-operator is installed and that the namespace, secrets, and config.yaml are created as prerequisites.

  • Copy the downloaded values.yaml file.

  • Look over all the fields in the generated values.yaml and fill in/adjust any as needed.

NOTE: The CSM Installation Wizard generates values.yaml with the minimal inputs required to install the CSM. To configure additional parameters in values.yaml, you can follow the steps outlined in CSI Driver, Resiliency.

  • If Observability is checked in the wizard, refer to Observability to export metrics to Prometheus and load the Grafana dashboards.
  • If Authorization is checked in the wizard, only the sidecar is enabled. Refer to Authorization to install and configure the CSM Authorization Proxy Server.
  • If Replication is checked in the wizard, refer to Replication for the necessary prerequisites required for this module.
  • Install the Operator.

On your terminal, run this command:

    kubectl create -f values.yaml
  

CSI Driver Installation


  1. Create Namespace.

       kubectl create namespace powerstore
    

    This command creates a namespace called powerstore. You can replace powerstore with any name you prefer.

  2. Create secret.yaml.

    a. Create a file called secret.yaml or pick a sample that has Powerstore array connection details:

    arrays:
     - endpoint: "https://11.0.0.1/api/rest"
         globalID: "unique"
         username: "user"
         password: "password"
         skipCertificateValidation: true
         blockProtocol: "FC"
    
    • Update Parameters: Replace placeholders with actual values for your PowerStore array.
    • Add Blocks: If you have multiple PowerStore arrays, add similar blocks for each one.
    • Replication: If replication is enabled, make sure the config.yaml includes all involved PowerStore arrays.

    User Privileges

    The username in secret.yaml must be from PowerStore’s authentication providers and have at least the Storage Operator role.

    b. After editing the file, run this command to create a secret.yaml called powerstore-config.

    kubectl create secret generic -n powerstore powerstore-config --from-file=config=secret.yaml
    
  3. Install Driver

    i. Create a CR (Custom Resource) for PowerStore using the sample files provided

    a. Minimal Configuration:

    apiVersion: storage.dell.com/v1
    kind: ContainerStorageModule
    metadata:
    name: powerstore
    namespace: powerstore
    spec:
    driver:
       csiDriverType: "powerstore"
       configVersion: v2.13.0
       forceRemoveDriver: true
    

    sample file for default settings. Modify if needed.

    [OR]

    b. Detailed Configuration: sample file for detailed settings.

    • Users should configure the parameters in CR. The following table lists the primary configurable parameters of the PowerStore driver and their default values:
    Parameters

    ii. Create PowerStore custom resource:

    kubectl create -f <input_sample_file.yaml>
    

    This command will deploy the CSI PowerStore driver in the namespace specified in the input YAML file.

    • Check driver pods status by running the appropriate command
      kubectl get all -n powerstore
      
  1. Verify the installation as mentioned below

    • Check if ContainerStorageModule CR is created successfully using the command below:
      kubectl get csm/powerstore -n powerstore -o yaml
      
    • Check the status of the CR to verify if the driver installation is in the Succeed state. If the status is not Succeed, see the Troubleshooting guide for more information.

  2. Create Storage Class

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
    name: "powerstore-ext4"
    provisioner: "csi-powerstore.dellemc.com"
    parameters:
    csi.storage.k8s.io/fstype: "ext4"
    reclaimPolicy: Delete
    allowVolumeExpansion: true
    volumeBindingMode: Immediate
    

    Refer Storage Class for different sample files.

    Run this command to create a storage class

      kubectl create -f < storage-class.yaml >
    
  3. Create Volume Snapshot Class

    apiVersion: snapshot.storage.k8s.io/v1
    kind: VolumeSnapshotClass
    metadata:
    name: powerstore-snapshot
    driver: "csi-powerstore.dellemc.com" 
    deletionPolicy: Delete
    

    Refer Volume Snapshot Class for the sample files.

    Run this command to create a volume snapshot class

       kubectl create -f < volume-snapshot-class.yaml >
    

Note :

  • “Kubelet config dir path” is not yet configurable in case of Operator based driver installation.
  • Snapshotter and resizer sidecars are not optional. They are defaults with Driver installation.


The driver and modules versions installable with the Container Storage Module Operator Click Here