OpenShift Container Platform is capable of provisioning persistent volumes (PVs) by using the Container Storage Interface (CSI) driver for Microsoft Azure File Storage.

Azure File CSI Driver Operator is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.

For more information about the support scope of Red Hat Technology Preview features, see Technology Preview Features Support Scope.

Familiarity with persistent storage and configuring CSI volumes is recommended when working with a CSI Operator and driver.

To create CSI-provisioned PVs that mount to Azure File storage assets with this feature enabled, OpenShift Container Platform installs the Azure File CSI Driver Operator and the Azure File CSI driver by default in the openshift-cluster-csi-drivers namespace.

  • The Azure File CSI Driver Operator, after being enabled, provides a storage class that is named azurefile-csi that you can use to create persistent volume claims (PVCs). The Azure File CSI Driver Operator supports dynamic volume provisioning by allowing storage volumes to be created on-demand, eliminating the need for cluster administrators to pre-provision storage.

  • The Azure File CSI driver enables you to create and mount Azure File PVs.

About CSI

Storage vendors have traditionally provided storage drivers as part of Kubernetes. With the implementation of the Container Storage Interface (CSI), third-party providers can instead deliver storage plugins using a standard interface without ever having to change the core Kubernetes code.

CSI Operators give OpenShift Container Platform users storage options, such as volume snapshots, that are not possible with in-tree volume plugins.

Enabling the Azure File CSI driver operator

To enable the Azure File Container Storage Interface (CSI) driver operator, you must enable feature gates with the TechPreviewNoUpgrade feature set.

  1. Enable feature gates with the TechPreviewNoUpgrade feature set (see NodesEnabling features using feature gates).

    After turning Technology Preview features on by using feature gates, they cannot be turned off and cluster upgrades are prevented.

  2. Verify the cluster operator storage:

    $ oc get co storage
    NAME    VERSION                                 AVAILABLE   PROGRESSING DEGRADED   SINCE
    storage 4.10.0-0.nightly-2021-11-15-034648      True        False       False      4m36s
    • AVAILABLE should be "True".

    • PROGRESSING should be "False".

    • DEGRADED should be "False".

  3. Verify the status of the pods in the openshift-cluster-csi-drivers namespace to ensure that they are running:

    $ oc get pod -n openshift-cluster-csi-drivers
    NAME                                                    READY   STATUS  RESTARTS    AGE
    azure-file-csi-driver-controller-5949bf45fd-pm4qb       11/11   Running 0           39m
    azure-file-csi-driver-node-2tcxr                        3/3     Running 0           53m
    azure-file-csi-driver-node-2xjzm                        3/3     Running 0           53m
    azure-file-csi-driver-node-6wrgk                        3/3     Running 0           53m
    azure-file-csi-driver-node-frvx2                        3/3     Running 0           53m
    azure-file-csi-driver-node-lf5kb                        3/3     Running 0           53m
    azure-file-csi-driver-node-mqdhh                        3/3     Running 0           53m
    azure-file-csi-driver-operator-7d966fc6c5-x74x5         1/1     Running 0           44m
  4. Verify that the storage class is installed:

    $ oc get storageclass
    azurefile-csi               file.csi.azure.com              Delete          Immediate               true                    10m (1)
    managed-csi                 disk.csi.azure.com              Delete          WaitForFirstConsumer    true                    35m
    managed-premium (default)   kubernetes.io/azure-disk        Delete          WaitForFirstConsumer    true                    35m
    1 Azure File storage class