File and Object Storage

Helm charts for IBM Spectrum Scale Container Native Storage Access

By GERO SCHMIDT posted 19 days ago

  

IBM Spectrum Scale Container Native Storage Access

IBM Spectrum Scale® Container Native Storage Access allows the deployment of  IBM Spectrum® Scale - a clustered file system that allows concurrent access to a single file system or set of file systems from multiple nodes - in a Red Hat® OpenShift® cluster to provide persistent storage for the containerized applications through Persistent Volumes (PVs) and Storage Classes (SCs) handled by the IBM Spectrum Scale® CSI driver plugin.
The physical storage is provided by a remote IBM Spectrum Scale storage cluster (e.g. an IBM Elastic Storage System) through a remote mount of an IBM Spectrum Scale file system on the local IBM Spectrum Scale Container Native Storage Access (CNSA) cluster (here referred to as local IBM Spectrum Scale compute cluster) as shown in the figure below:
IBM Spectrum Scale CNSA architecture

Unified Deployment with Helm

IBM Spectrum Scale Container Native Storage Access and IBM Spectrum Scale CSI driver plugin are deployed in two distinct steps. With the release of IBM Spectrum Scale Container Native Storage Access version v5.1.1.1 the YAML manifests for the deployment moved to the IBM Spectrum Scale container native GitHub repository and the container images are now hosted on the IBM Cloud Container Registry (icr.io). The IBM Spectrum Scale CSI driver plugin can directly be installed from the Operator Hub panel in the OpenShift web console (GUI) but also supports an installation directly from the YAML manifests hosted on the IBM Spectrum Scale CSI Github repository.

Based on these YAML manifests two Helm charts (ibm-spectrum-scale and ibm-spectrum-scale-csi) were created and released on IBM Spectrum Scale Container Native - Helm to provide a combined deployment of both components with a unified set of configuration parameters in a single configuration file (config.yaml).

Helm is a package manager for Kubernetes and allows to separate the configurable parameters from the YAML manifests of the individual components. This greatly helps to simplify and automate the deployment of containerized applications. In this case an administrator only has to configure one central configuration file, here config.yaml, for the combined deployment of IBM Spectrum Scale Container Native Storage Access and the IBM Spectrum Scale CSI driver plugin.
Helm Chart Structure

The Helm charts are based on the original YAML manifests from the official IBM GitHub repositories:

Note: These Helm charts are not supported by the IBM Spectrum Scale Container Native nor CSI offerings and are outside the scope of the IBM PMR process. For the official documentation of the deployment of IBM Spectrum Scale Container Native Storage Access, please refer to the official IBM Documentation.

The Helm charts are only intended to provide ease of use for an initial deployment (helm install) of IBM Spectrum Scale® Container Native Storage Access (CNSA) and IBM Spectrum Scale® CSI driver on Red Hat® OpenShift® for Proof of Concepts (PoCs), demos or any other form of evaluations where no further lifecycle management and upgrade paths are considered. They are explicitly not intended and not supported for any production use!

However, you can use these Helm charts with helm template to generate the final YAML manifests from a single configuration file (config.yaml) and compare the output to the original YAML manifests that you would have edited and applied manually when following the official deployment steps in the IBM Documentation. Once you confirm that these templated manifests meet your configuration (like with the original YAML manifests) then you can apply these conveniently with helm template [...] | oc apply -f without any further dependencies on Helm (i.e. they would be deployed as simple YAML manifests like in the original deployment instructions and not as an active Helm chart). Refer to the section Deploy IBM Spectrum Scale CNSA and CSI driver using Helm chart templating for more details about this deployment method.

Also note, that these Helm charts do not support any lifecycle management of IBM Spectrum Scale Container Native Storage Access and IBM Spectrum Scale CSI driver, especially, the helm upgrade|rollback|uninstall features are not supported and are not expected to work. You need to follow the official IBM Documentation to perform any changes or upgrades to the deployment. Future releases of IBM Spectrum Scale Container Native Storage Access and IBM Spectrum Scale CSI driver may come with different packaging and deployment options or upgrade strategies.

Once all prerequisites are met the Helm chart deployment only requires the following steps:

  1. Create the necessary namespaces, secrets and IBM Spectrum Scale CNSA/CSI user accounts
  2. Edit the config.yaml file to reflect your local configuration
  3. Deploy the IBM Spectrum Scale CNSA Helm Chart (ibm-spectrum-scale)
    # helm install  ibm-spectrum-scale  helm/ibm-spectrum-scale  -f config.yaml ...
  4. Deploy the IBM Spectrum Scale CSI driver Helm Chart (ibm-spectrum-scale-csi)
    # helm install  ibm-spectrum-scale-csi  helm/ibm-spectrum-scale-csi  -f config.yaml ...

The overall configuration is greatly simplified by minimizing and unifying the set of common parameters needed for the combined deployment of IBM Spectrum Scale CNSA and IBM Spectrum Scale CSI driver. At minimum you would only need to configure the following five parameters for the deployment of IBM Spectrum Scale Container Native Storage Access and IBM Spectrum Scale CSI driver in config.yaml if you can stay with the chosen default settings:

Minimum required configuration

All instructions for the whole deployment of IBM Spectrum Scale Container Native Storage Access and IBM Spectrum Scale CSI driver including the required preinstallation tasks (like creating the global cluster pull secret, preparing the worker nodes, configuring the storage cluster, etc.) are described step by step in Helm Chart Deployment of IBM Spectrum Scale CNSA/CSI.

Example for dynamic storage provisioning with IBM Spectrum Scale

The repository also provides a directory (examples) with some sample YAML manifests

to get started quickly and easily. These sample manifests allow to create a storage class (SC) and run a quick sanity test with a full dynamic storage provisioning cycle with a persistent volume claim (PVC) and a test pod after the successful deployment of IBM Spectrum Scale Container Native Storage Access and IBM Spectrum Scale CSI driver.

1 comment
424 views

Permalink

Comments

19 days ago

Great article Gero, thanks so much.