Performing installation

You can install the IBM® Storage Enabler for Containers software on a compatible version of Kubernetes. For more information, refer to the release notes of this software package.

Before you begin

Verify that you have completed the preliminary configuration steps, as detailed in Compatibility and requirements.

Procedure

Follow these steps to install IBM Storage Enabler for Containers:

  1. Add IBM Helm charts repository:
    helm repo add ibm-stable https://raw.githubusercontent.com/IBM/charts/master/repo/stable
  2. Download the Helm chart from the stable IBM repository. See Helm documentation for details.
    helm fetch --untar ibm-stable/ibm-storage-enabler-for-containers
  3. Configure parameters in the values.yaml file. The file is located in the ./ibm-storage-enabler-for-containers folder. However, it is recommended to save the values.yaml file in a different location, rename it, and configure the new file, while preserving the original values.yaml.
    Table 1. Configuration parameters in values.yaml
    Parameter Description
    backend Backend type for Provisioner and FlexVolume. Allowed values: spectrumConnect (default) or spectrumScale.
    spectrumConnect.
    connectionInfo.fqdn
    IP address or FQDN of the Spectrum Connect server.
    spectrumConnect.
    connectionInfo.port
    Communication port of the Spectrum Connect server. Default value is 8440.
    spectrumConnect.
    connectionInfo.
    existingSecret
    Secret for Spectrum Connect interface. The value must be the same as configured in Spectrum Connect. Keys username and password are mandatory.
    spectrumConnect.
    backendConfig.
    instanceName
    A prefix for any new volume created on the storage system.
    spectrumConnect.
    backendConfig.
    defaultStorageService
    Default Spectrum Connect storage service to be used, if not specified by the storage class.
    spectrumConnect.
    backendConfig.
    newVolumeDefaults.
    fsType
    File system type of a new volume, if not specified by the user in the storage class.

    Allowed values: ext4 (default) or xfs.

    spectrumConnect.
    backendConfig.
    newVolumeDefaults.size
    Default volume size (in GB), if not specified by the user when creating a new volume. Default value is 1.
    spectrumConnect.
    storageClass.
    storageService
    Storage Class profile pointing to the Spectrum Connect storage service name.
    spectrumConnect.
    storageClass.
    fsType
    Storage class filesystem type. Allowed values: ext4 (default) or xfs.
    ubiquityDb.spectrumConnect.
    dbCredentials.
    existingSecret
    Existing secret object if it is defined.
    ubiquityDb.persistence.
    pvName
    Name of the persistent volume to be used for the ubiquity-db database.

    For the Spectrum Virtualize and Spectrum Accelerate storage systems, use the default value (ibm-ubiquity-db). For the DS8000 storage system, use a shorter value, such as (ibmdb). This is necessary because the DS8000 volume name length cannot exceed 8 characters.

    ubiquityDb.persistence.
    pvSize
    Default size (in GB) of the persistent volume to be used for the ubiquity-db database. Default value is 20.
    ubiquityDb.persistence.
    useExistingPv
    Enabling the usage of an existing PV as the ubiquity-db database PV.

    This parameter is in use only when upgrading Enabler for Containers from an older version, which has been installed via script.

    Allowed values: True or False (default).

    ubiquityDb.persistence.
    storageClass.
    storageClassName
    Storage class name.

    Note: The storage class parameters are used for creating an initial storage class for the ubiquity-db PVC. You can use this storage class for other applications as well.

    It is recommended to set the storage class name to be the same as the Spectrum Connect storage service name.

    ubiquityDb.persistence.
    storageClass.
    existingStorageClass
    Enabling the usage of an existing storage class object if it exists.
    ubiquityDb.persistence.
    storageClass.
    defaultClass
    Setting StorageClass as the default storage class.

    Allowed values: True or False (default).

    ubiquityK8sFlex.
    flexLogDir
    Directory for storing the ubiquity-k8s-flex.log file. Set by default to /var/log.
    globalConfig.logLevel Log level.

    Allowed values: debug, info (default), error.

    globalConfig.sslMode SSL verification mode.

    Allowed values: require (No validation is required, the IBM Storage Enabler for Containers server generates self-signed certificates on the fly.) or verify-full (Certificates are provided by the user.).

    The verify-full mode requires additional configuration steps, as detailed in the Managing SSL certificates section.

    customPodSecurityPolicy.
    enabled
    Custom pod security policy for ICP deployment.

    Allowed values: True or False (default).

    If set to True, the policy is applied to all pods in the chart.

    New policies cannot be defined. Configure a policy in advance or use existing ones. Then, attach one or more policies to a role or clusterRole, and provide the name for the role or clusterRole.

    Currently, only clusterRole is supported. It will be bound to all serviceAccounts under the current namespace.

    customPodSecurityPolicy.
    clusterRole
    In ICP deployment, the name of clusterRole that has the required policies attached.

    Default value is ibm-anyuid-hostpath-clusterrole.

  4. If the values.yaml file was downloaded to a local machine, use the scp <path_to_values.yaml> user@master_ip:<path_to _master_node_store_values.yaml command to copy the updated values.yaml file to a master node.
  5. Start the installation. Make sure to use the same namespace names that were used for secret generation during the preparation stage ( Compatibility and requirements).
    • Kubernetes:
      • Run this command:
        helm install --name <release_name> --namespace <namespace_name> 
        -f <path_to_values.yaml> ./ibm-storage-enabler-for-containers
      When the installation is complete, the notes.txt file is displayed.
    • ICP:
      1. In the ICP GUI, go to Catalog, then locate the ibm-storage-enabler-for-containers Helm chart.
      2. In the Configuration tab, set the values according to your environment requirements. See the values.yml table above.
      3. Click Install to start the installation. You can monitor the progress by going to Workloads > Helm Releases.

What to do next

  1. Verify the post-installation status of the IBM Storage Enabler for Containers service and check that the status of all components is error-free:
    $ helm status <release_name>
  2. Perform the sanity test:
    $ helm test <release_name>
    The following message must be displayed: Sanity finished successfully (pvc1 and pod1 were successfully created and deleted).
  3. Implement the standard data protection methods and practices to safeguard the data in the Enabler for Containers database. This will ensure the proper operation of the IBM Storage Enabler for Containers.