Operator
This topic describes the configuration parameters to be defined for creating a CSIScaleOperator custom resource that is used to configure IBM Spectrum Scale Container Storage Interface driver.
A sample configuration yaml file is available here: https://raw.githubusercontent.com/IBM/ibm-spectrum-scale-csi/v2.1.0/operator/deploy/crds/csiscaleoperators.csi.ibm.com_cr.yaml.

- Primary cluster: IBM Spectrum Scale cluster where some or all of the client nodes are also worker nodes of Red Hat® OpenShift®/Kubernetes cluster. The aim of running IBM Spectrum Scale on worker node is to provide persistent storage from IBM Spectrum Scale to the application running on Kubernetes/Red Hat OpenShift.
- Primary file system: One of the existing IBM Spectrum Scale file systems from the primary cluster must be designated as the primary file system. One fileset from this file system is used by the IBM Spectrum Scale Container Storage Interface driver internally to store the volume references. This fileset is referred to as primary fileset. For proper functioning of IBM Spectrum Scale Container Storage Interface driver, the primary file system must be mounted on all worker nodes all the time.
The CSIScaleOperator custom resource for a sample deployment looks like the following. There are two file systems gpfs0 and gpfs1. For this deployment, we chose gpfs0 as PrimaryFs.
csiscaleoperators.csi.ibm.com_cr.yam file
---
apiVersion: csi.ibm.com/v1
kind: "CSIScaleOperator"
metadata:
name: "ibm-spectrum-scale-csi"
namespace: "ibm-spectrum-scale-csi-driver"
labels:
app.kubernetes.io/name: ibm-spectrum-scale-csi-operator
app.kubernetes.io/instance: ibm-spectrum-scale-csi-operator
app.kubernetes.io/managed-by: ibm-spectrum-scale-csi-operator
release: ibm-spectrum-scale-csi-operator
status: {}
spec:
scaleHostpath: "/ibm/gpfs0"
clusters:
- id: "<cluster id of IBM Spectrum Scale running on node1,node2,node3>"
secrets: "guisecretNode1"
secureSslMode: false
primary:
primaryFs: "gpfs0"
restApi:
- guiHost: "<FQDN/IP of Node 1>"
attacherNodeSelector:
- key: "scale"
value: "true"
provisionerNodeSelector:
- key: "scale"
value: "true"
pluginNodeSelector:
- key: "scale"
value: "true"
---
| Parameter | Usage | Description |
|---|---|---|
| id | Mandatory | Cluster ID of the primary IBM Spectrum Scale cluster. For more information, see mmlscluster command in the IBM Spectrum Scale: Concepts, Planning, and Installation Guide. |
| primaryFs | Mandatory | Primary file system name. |
| primaryFset | Optional | Primary fileset name. This will be created if the fileset does not exist. Default value: spectrum-scale-csi-volume-store |
| inodeLimit | Optional | Inode limit for the primary fileset. If not specified, fileset is created with 1 M inodes, which is the IBM Spectrum Scale default. |
| cacert | Mandatory if secureSslMode is true. | Name of the pre-created CA certificate configmap that is used to connect to the GUI server (running on the "guiHost"). For more information, see Certificates. |
| secrets | Mandatory | Name of the pre-created Secret containing username and password that are used to connect to the GUI server for the cluster specificed against the id parameter. For more information, see Secrets. |
| guiHost | Mandatory | FQDN or IP address of the GUI node of IBM Spectrum Scale cluster that is specified against the id parameter. |
| scaleHostpath | Mandatory | Mount path of the primary file system (primaryFs). |
| imagePullSecrets | Optional | An array of imagePullSecrets to be used for pulling images from a private registry. This is a pass-through option that distributes the imagePullSecrets array to the containers generated by the Operator. For more information on creating imagePullSecrets, see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/. |
For deployment involving two or more IBM Spectrum Scale clusters, see Remote cluster support.