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 for accessing a cluster described in the Performing pre-installation tasks section.

About this task

During installation of the IBM Storage Enabler for Containers, the IBM Storage Kubernetes FlexVolume driver is automatically installed on all master and worker nodes in a Kubernetes cluster, using the ubiquity-k8s-flex DaemonSet. A single IBM Storage Enabler for Containers instance can be installed per one Kubernetes cluster. Follow these steps to install IBM Storage Enabler for Containers:

Procedure

  1. Add the IBM Helm charts repository, using the following command:
    helm repo add ibm-stable https://raw.githubusercontent.com/IBM/charts/master/repo/stable
  2. Use the following command to download the Helm chart from the stable IBM repository:
    helm fetch --untar ibm-stable/ibm-storage-enabler-for-containers

    For more information on Helm charts, see Helm documentation.

  3. Configure the 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 file.

Table 1. Configuration parameters in values.yaml file
Parameter Description
ubiquity.spectrumScale.connectionInfo.fqdn

Used to specify the IP address or FQDN of remote IBM Spectrum Scale cluster management API(GUI) server.

In case of remote mount refer section <remote mount setup> before proceeding with installation.

ubiquity.spectrumScale.connectionInfo.port

Used to specify the communication port of remote IBM Spectrum Scale cluster management API(GUI) server. Default value is 443.

ubiquity.spectrumScale.connectionInfo.existingSecret

Used to specify the secret for IBM Spectrum Scale Management API (GUI) server user credentials.

ubiquity.spectrumScale.backendConfig.defaultFilesystemName

Used to specify the remote IBM Spectrum Scale cluster filesystem to be used for creating persistent volumes, if not specified by the storage class. This filesystem is used to create persistent volume for ubiquity-db.

ubiquityDb.persistence.pvName

Used to specify the name of the persistent volume to be used for the ubiquity-db database.

ubiquityDb.persistence.pvSize

Used to specify the default size of the persistent volume to be used for the ubiquity-db database in GB. The default value is 20.

ubiquityDb.persistence.useExistingPv

Used to enable the usage of an existing PV as the ubiquity-db database PV.

The allowed values are True and False. The parameter is set toTrue by default.

Set this parameter to True if you want to use an existing PVC as Enabler for Containers database PVC. Use it only when you want to upgrade the IBM Storage Enabler for Containers from an old version installed by script to the latest version.

ubiquityDb.persistence.storageClass.storageClassName

Used to specify the storage class name.

Used for creating an initial storage class for the ubiquity-db PVC. You can use this storage class for other applications as well.

ubiquityDb.persistence.storageClass.existingStorageClass Used to enabling the usage of an existing storage class object if it exists.
ubiquityDb.persistence.storageClass.defaultClass

Used for setting StorageClass as the default storage class.

The allowed values are True and False. The parameter is set toFalse by default.

ubiquityDb.dbCredentials.existingSecret

Used to specify the secret for ubiquity-db database.

ubiquityK8sFlex.flexLogDir Used to specify the directory for storing the ubiquity-k8s-flex.log file. Set by default to /var/log.
ubiquityK8sFlex.ubiquityIPaddress Used to specify the IP address of the ubiquity service object.
globalConfig.logLevel

Used to specify the log level.

The allowed values are debug,info and error. The parameter is set toerror by default.

globalConfig.sslMode

Used to specify the SSL verification mode.

The allowed values are debug,info and error. The parameter is set toerror by default.

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

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

defaultPodSecurityPolicy.
enabled
Default 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.

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

Default value is ibm-anyuid-hostpath-clusterrole.

  1. If the values.yaml file was downloaded to a local machine, use the following command to copy the updated values.yaml file to a master node:
    scp <path_to_values.yaml> user@master_ip:<path_to _master_node_store_values.yaml
  2. Start the installation. Make sure to use the same namespace names that were used for secret generation during the pre-installation stage.
    • Kubernetes:
      • Run the following 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

Once the installation is complete, ensure that the following steps are taken:
  1. Verify the post-installation status of the IBM Storage Enabler for Containers service. Run the following command:
    $ helm status <release_name>
    Check that the status of all components is error-free.
  2. Perform the sanity test by running the following command:
    $ helm test <release_name>
    The following message is 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.