Installing Container Backup Support on Kubernetes by using a CASE bundle in an air-gapped environment

You can install the Container Backup Support operator and instance in an air-gapped environment by using an IBM® Container Application Software for Enterprises (CASE) bundle. For your convenience, scripts are provided in the CASE bundle to help you install the product.

Before you begin

Complete the following tasks:

  • Download cloudctl, which is a command-line tool that is used to manage CASE bundles. Issue the following commands to download the tar.gz archive, expand it, rename the cloudctl binary file, and put the file in a location that is in your PATH:
    curl -L https://github.com/IBM/cloud-pak-cli/releases/latest/download/cloudctl-linux-amd64.tar.gz -o ./cloudctl-linux-amd64.tar.gz
    tar -xvf ./cloudctl-linux-amd64.tar.gz
    mv ./cloudctl-linux-amd64 local_path
    where local_path is a directory that is in your PATH, such as /usr/local/bin/cloudctl.

    For information about how to verify the signature of the tar.gz archive, see https://github.com/IBM/cloud-pak-cli.

  • Install the oc command-line tool for running the installation in a Kubernetes environment.
  • Complete the installation prerequisites. For instructions, see Installation prerequisites for Container Backup Support.
  • Obtain an entitlement key for accessing your container software. For instructions, see Obtaining access to the IBM Entitled Registry.
  • If necessary, uninstall the previous version of Container Backup Support. For instructions, see Uninstalling Container Backup Support.

About this task

The installation instructions are intended for installing the Container Backup Support operator and instance in an air-gapped environment, which is a private network that does not have access to the internet. You must be connected to the internet (by using a bastion host or similar system) to download required tools and mirror images from the IBM Entitled Registry and Red Hat Registry to a local registry in your private network. You can use any private Docker repository as the target repository for mirrored images.

During the installation, the following operators are installed:
ibm-sppc-operator
The operator for Container Backup Support.
Strimzi
The operator for deploying Kafka containers that are used for Container Backup Support messaging. The Strimzi operator is installed automatically when you install the ibm-sppc-operator operator. When the ibm-sppc-operator operator is updated, Strimzi is updated automatically.

Procedure

To install Container Backup Support by using a CASE bundle in an air-gapped environment, complete the following steps.

  1. Create a directory for downloading the CASE package. The following example shows the commands for creating a ~/baas-case-package directory:
    mkdir ~/baas-case-package
    cd ~/baas-case-package
    Tip: This directory name is used as the value for the CASE_PKG_DIR parameter in the cloudctl-options.sh file in Step 1.
  2. Save the CASE package by issuing the following command:
    cloudctl case save --case https://github.com/IBM/cloud-pak/raw/master/repo/case/ibm-spectrum-protect-plus/1.3.0/ibm-spectrum-protect-plus-1.3.0.tgz -o . -t 1
    The following files are downloaded to the ~/baas-case-package directory:
    ibm-spectrum-protect-plus-1.3.0-images.csv
    ibm-spectrum-protect-plus-1.3.0.tgz
  3. Expand the CASE package by issuing the following commands:
    tar -xvf ./ibm-spectrum-protect-plus-1.3.0.tgz
    The contents are unpacked in the following directory structure:
    .
    └── ibm-spectrum-protect-plus
       ├── inventory
       │   ├── ibmSpectrumProtectPlusProd
       │   │   ├── cloudctl-scripts
       │   │   └── files
       │   │       ├── op-cli
       │   │       ├── op-olm
       │   │       └── scripts
       │   ├── ibmSpectrumProtectPlusProdSetup
       │   └── launcher
       │        └── files
       └── licenses
  4. Change to the directory that contains the scripts for installing Container Backup Support by using a CASE bundle by issuing the following command:
    cd ~/baas-case-package/ibm-spectrum-protect-plus/inventory/ibmSpectrumProtectPlusProd/cloudctl-scripts

    The available scripts and their descriptions are shown in the following table:

    Table 1. Scripts for installing Container Backup Support by using a CASE bundle
    Name of script Description
    check-for-existing-baas-components.sh Identifies baas components that are left over after uninstallation, and shows the delete statements that are needed to remove the leftover components.
    cloudctl-install-airgap-k8s.sh Runs an air-gapped installation on Kubernetes.
    cloudctl-install-airgap-ocp.sh Runs an air-gapped installation on Red Hat OpenShift.
    cloudctl-install-online-k8s.sh Runs a non-OLM online installation for Kubernetes.
    cloudctl-options.sh Contains options that must be defined before you can run the scripts.
    cloudctl-uninstall-airgap-ocp.sh Uninstalls an air-gapped installation on Red Hat OpenShift.
    cloudctl-uninstall-k8s.sh Uninstalls an air-gapped or online installation on Kubernetes.
    cloudctl-utils.sh Runs private functions that are used by other scripts.
    copy-baas-config-files.sh Convenience script to copy your saved baas-options.sh and baas-values-cr.yaml to the correct location.
    copy-cloudctl-options.sh Convenience script to copy your saved cloudctl-options.sh to the correct location.

    Samples of the baas-options.sh and baas-values-cr.yaml files are also provided in the ~/baas-case-package/ibm-spectrum-protect-plus/inventory/ibmSpectrumProtectPlusProd/files/scripts directory.

  5. Create the directory structure in which to save your versions of the configuration files.
    mkdir ~/saved
    mkdir ~/saved/10.1.9-cloudctl
  6. Copy the baas-options.sh, baas-values-cr.yaml, and cloudctl-options.sh files to the ~/saved/10.1.9-cloudctl directory:
    cp ~/baas-case-package/ibm-spectrum-protect-plus/inventory/ibmSpectrumProtectPlusProd/cloudctl-scripts/cloudctl-options.sh ~/saved/10.1.9-cloudctl
    cp ~/baas-case-package/ibm-spectrum-protect-plus/inventory/ibmSpectrumProtectPlusProd/files/scripts/baas-options.sh ~/saved/10.1.9-cloudctl
    cp ~/baas-case-package/ibm-spectrum-protect-plus/inventory/ibmSpectrumProtectPlusProd/files/scripts/baas-values-cr.yaml ~/saved/10.1.9-cloudctl
    
  7. From the ~/saved/10.1.9-cloudctl directory, update the values in the baas-options.sh, baas-values-cr.yaml, and cloudctl-options.sh files. For instructions, see Setting up installation variables for Container Backup Support.
    In the cloudctl-options.sh, the CASE_PKG_DIR parameter must point to the full case-package path. For example, the ~/baas-case-package was created in Step 1. To obtain the full path for this directory, issue the following command:
    echo ~/baas-case-package
    The output is the value that must be used for the CASE_PKG_DIR parameter.
  8. Change to the directory that contains the scripts for installing Container Backup Support by using a CASE bundle:
    cd ~/baas-case-package/ibm-spectrum-protect-plus/inventory/ibmSpectrumProtectPlusProd/cloudctl-scripts
  9. To check for components that are left over from a previous Container Backup Support installation, run the following script:
    ./check-for-existing-baas-components.sh
    A list of suggested delete commands is shown. Run the necessary commands to remove the leftover baas components.
  10. Run the script to copy the cloudctl-options.sh file from the saved directory to the current location and source the cloudctl-options.sh file. The script is set up to copy the file from the ~/saved/10.1.9-cloudctl directory. Before you use the script, update the path to your saved file in the script. Then, run the following command:
    ./copy-cloudctl-options.sh
  11. Change to the directory that contains the scripts for installing Container Backup Support by using a CASE bundle:
    cd ~/baas-case-package/ibm-spectrum-protect-plus/inventory/ibmSpectrumProtectPlusProd/cloudctl-scripts
  12. Run the script to copy the baas-options.sh and baas-values-cr.yaml files to the correct location and source both files. The script is set up to copy the configuration files from the ~/saved/10.1.9-cloudctl directory to the baas-case-package/ibm-spectrum-protect-plus/inventory/ibmSpectrumProtectPlusProd/files/scripts. Before you use the script, update the path to your saved files in the script. Then, run the following command:
    ./copy-baas-config-files.sh
  13. To install the Container Backup Support operator and instance, run following script:
    ./cloudctl-install-airgap-k8s.sh
    The following tasks are completed automatically by the script:
    • Validate the target registry address.
    • Create the baas namespace.
    • Install the Strimzi operator, which manages the Kafka container that is used for messaging services.
    • Configure the credentials for the IBM Entitled Registry.
    • Configure the credentials for the Red Hat Registry.
    • Configure the credentials for the target registry.
    • Mirror the images to the target registry.
    • Install the Container Backup Support catalog source.
    • Install the Container Backup Support operator.
    • Install an instance of Container Backup Support.
    • Verify that the Container Backup Support pods are running by repeating the following command as needed:
      kubectl get pods -n baas

Results

The list of pods in the output is similar to the following example:
NAME                                                   READY   STATUS    RESTARTS   AGE
baas-controller-864896f5d7-4swfn                       1/1     Running   0          96m
baas-entity-operator-56fcc7d487-grhd2                  3/3     Running   0          92m
baas-kafka-0                                           1/1     Running   0          93m
baas-minio-0                                           1/1     Running   0          95m
baas-scheduler-6689768455-tlph4                        1/1     Running   0          95m
baas-spp-agent-756f4cfcfb-h24kd                        1/1     Running   0          94m
baas-transaction-manager-86f4fb9447-9lbfp              3/3     Running   0          94m
baas-transaction-manager-86f4fb9447-r9m25              3/3     Running   0          94m
baas-transaction-manager-86f4fb9447-zcfmb              3/3     Running   0          94m
baas-zookeeper-0                                       1/1     Running   0          94m
baas-zookeeper-1                                       1/1     Running   0          94m
baas-zookeeper-2                                       1/1     Running   0          94m
ibmsppc-operator-controller-manager-7cfc58ff9c-r9rlf   2/2     Running   0          97m
strimzi-cluster-operator-v0.26.0-bd668f7cb-ghtcq       1/1     Running   0          97m

What to do next

Complete post-installation tasks. For instructions, see Post-installation tasks for Container Backup Support.