Container Storage Interface (CSI) Storage Plugin Release 1.1.0

These notes describe Release 1.1.0 of the Container Storage Interface (CSI) Storage Plugin.

You may also be interested in the Kubernetes Release Notes.

Version 1.1.0
Release Date August 2020
MapR Version Interoperability Compatible with MapR 6.1.0 and later.
Kubernetes Compatibility Kubernetes 1.16.0 and later.*
OpenShift Compatibility 4.2 and 4.3.
CSI Driver Downloads See Downloads (CSI) for more information.
Documentation
Related Resources https://www.hpe.com/us/en/resource-library.html

* Kubernetes alpha features are not supported.

New in this Release

This release of the Container Storage Interface (CSI) Storage Plugin increments the version of the csi-kdfplugin to 1.1.0. Release 1.1.0 includes support for all three MapR POSIX licenses (Basic, Container, and Platinum) and allows users to pass custom startup parameters to the FUSE process.

Release 1.1.0 also includes support for volume expansion for dynamic provisioning. For more information, see Example: Volume Expansion for Dynamic Provisioning Using Container Storage Interface (CSI) Storage Plugin.

You can access the new csi-kdfplugin by installing the custom resource definition using the csi-maprkdf-v1.1.0.yaml file. Or you can build your own container and point to the plugin on the Docker hub at maprtech/csi-kdfplugin:1.1.0. For installation information, see Installing, Uninstalling, and Upgrading the Container Storage Interface (CSI) Storage Plugin.

Patches

None.

Limitations

Note the following limitations:

  • CSI Driver version 1.1.0 does not support coexistence with the FlexVolume Driver on the same Kubernetes cluster.
  • All nodes in the Kubernetes cluster must use the same Linux OS. Configuration files are available to support the following Linux distributions:
    • CentOS
    • Red Hat (use CentOS configuration file)
    • Ubuntu
  • The Container POSIX client package is included by default when you install the Container Storage Interface (CSI) Storage Plugin. The Basic, Container, or Platinum POSIX client can be enabled by specifying a parameter in the pod spec. Only the FUSE-based POSIX client is supported. NFSv3 and NFSv4 are not supported.
  • The CSI Driver does not include support for inline volumes in pods. It supports only PersistentVolumes.

Known Issues

Note the following known issues:

  • On nodeplugin pod restart or upgrade scenario, the existing POSIX client(s) running in the CSI Driver container are killed. The workaround is to move/stop the container workload using MapR CSI Storage Plugin, restart/update the MapR CSI Storage Plugin and start using the MapR CSI Storage Plugin again.
  • On Provisioner restart, Provisioner loses the information about the REST server where volume or snapshot should be deleted for existing volume and snapshots provisioned. The administrator must manually remove the volume and/or snapshot for provisioned volumes from the HPE Ezmeral Data Fabric.
  • Provisioned snapshot information is written to the provisioner log, but not available in the Kubernetes objects such as volumeSnapshots, VolumesnapshotContents etc.
  • If you want read-only behavior, specify readOnly in the volumeAttributes. For example, the following is supported:
    csi:
        nodePublishSecretRef:
          name: "mapr-ticket-secret"
          namespace: "test-csi"
        driver: com.mapr.csi-kdf
        volumeHandle: pv-securepv-test-read-only-id
        volumeAttributes:
          volumePath: "/user/root"
          cluster: "clusterA"
          cldbHosts: "10.10.10.210"
          securityType: "secure"
          readOnly: "true"
    The following is not supported:
    csi:
        nodePublishSecretRef:
          name: "mapr-ticket-secret"
          namespace: "test-csi"
        driver: com.mapr.csi-kdf
        volumeHandle: pv-securepv-test-read-only-id
        readOnly: true
        volumeAttributes:
          volumePath: "/user/root"
          cluster: "clusterA"
          cldbHosts: "10.10.10.210"
          securityType: "secure"

Resolved Issues

Issue Description
K8S-844 [csi-driver] mapr k8s log rotation policy and clearing of unused mounts (more fixes)
K8S-1199 Ship debugging tools with POSIX client in K8S world
K8S-1405 Support CSI driver for OpenShift 4.3
K8S-1694 [csi-driver] Implemement CSI Spec v1.3 for CSI Driver
K8S-1695 [csi-driver] Implement VolumeExpansion RPC
K8S-1696 [csi-driver] Update all side container images (support k8s 1.15+)