Offline

Starting with Container Storage Module 1.12, all deployments will use images from quay.io by default. New release images will be available on Docker Hub until CSM 1.14 (May 2025), and existing releases will remain on Docker Hub.

The csi-offline-bundle.sh script creates a package for offline installation of Dell CSI Storage Providers using Helm or the Dell CSM Operator.

Dependencies

  • Multiple Linux systems may be needed.
    • One system with Internet access to create the bundle:Clone a GitHub repository.
    • Run a script using Docker or Podman to pull and save container images.
    • One system with access to an image registry to : Run a script using Docker or Podman to restore and push images to the registry.
  • RedHat credentials to pull openshift4/ose-kube-rbac-proxy-rhel9 image from registry.redhat.io (no unauthenticated access).

If one system has both Internet access and registry access, it can be used for both steps.

Dependencies and Usage

Preparing an offline bundle requires the following utilities:

Dependency Usage
docker or podman Used to pull images from public registries, tag them, and push to a private registry.
Required on both the system building the offline bundle and the system preparing for installation.
Tested versions: docker 19.03+ and podman 1.6.4+.
git Used to manually clone repositories to create an offline bundle.
Needed only on the system preparing the offline bundle.
Tested versions: git 1.8+ (any version should work).

Workflow

To perform an offline installation :

  1. Build an offline bundle
  2. Unpack the offline bundle and prepare for installation.
  3. Install operator using the unpacked files.
  4. Install Container Storage Module using the unpacked files.

NOTE: Use the same tool (docker or podman) for packing and unpacking images.

Building an offline bundle

NOTE: Login to registry.redhat.io with RedHat credentials before starting.

On a Linux system with Internet access:

  1. Clone the required csm-operator version:
git clone -b v1.8.0 https://github.com/dell/csm-operator.git 
cd csm-operator
  1. Run the csm-offline-bundle.sh script to create an offline bundle:
bash scripts/csm-offline-bundle.sh -c

The script will :

  • Determine required images from CSM Operator configuration files.
  • Pull each required image.
  • Save all images to a file using docker save or podman save
  • Build a tar.gz file containing the images and necessary installation files.

Here is the output of a request to build an offline bundle for the Dell CSM Operator:

Output

The resulting offline bundle file can be copied to another machine, if necessary, to gain access to the desired image registry.

Unpacking the offline bundle and preparing for installation

This step needs to be performed on a Linux system with access to an image registry that will host container images. If the registry requires login, that should be done before proceeding.

  1. Copy the Offline Bundle : Transfer the offline bundle file to a machine with access to the desired image registry.
  2. Unpack the Bundle:
    • On a Linux system with registry access, expand the bundle file:
    tar xvfz dell-csm-operator-bundle.tar.gz
    
    Here is the output of untar
    Output
  1. Prepare for Installation: Run the csm-offline-bundle.sh script with the -p option and specify the internal registry path with the -r option:

    cd dell-csm-operator-bundle 
    
    bash scripts/csm-offline-bundle.sh -p -r localregistry:5000/dell-csm-operator/
    

    The script will :

    • Load required container images.
    • Tag images with the user-supplied registry information.
    • Push tagged images to the registry.
    • Update the Operator configuration to use the new images.

    Here is the output for preparing the bundle for installation (localregistry:5000 refers to an image registry accessible to Kubernetes/OpenShift. dell-csm-operator refers to the folder created within the registry.):

    Output

Install Operator:

  • Run the install.sh script to install the operator:

    bash scripts/install.sh
    

Install Container Storage Module

Prepare for Installation: Ensure required images are available and Operator configuration is updated.

Follow Installation Procedure: Proceed with the usual installation steps as documented for the Operator.

Notes:

  • The Operator installs to the dell-csm-operator namespace by default
  • Offline bundle installation is only supported with manual installs (without using Operator Lifecycle Manager).
  • Use files from the unpacked offline bundle (dell-csm-operator-bundle.tar.gz) as image tags in the manifests are modified to point to the internal registry.
  • Offline bundle installs the operator in the default namespace via the install.sh script. Ensure the current context in the kubeconfig file is set to default.

Workflow

To perform an offline installation :

  1. Build an offline bundle
  2. Unpack the offline bundle and prepare for installation.
  3. Install Container Storage Module using the unpacked files.

NOTE: Use the same tool (docker or podman) for packing and unpacking images.

Building an offline bundle

NOTE: Login to the registry.redhat.io registry using RedHat credentials before you proceed with offline bundle creation.

  • On a Linux system with Internet access, clone the desired repository:
    • For Helm installs, clone the specific driver repo.
  • Run the csi-offline-bundle.sh script with the -c option to create the bundle:
git clone -b <version tag> https://github.com/dell/csi-<driver>.git
cd csi-<driver>/dell-csi-helm-installer
bash csi-offline-bundle.sh -c

Output

Unpacking the offline bundle and preparing for installation

  1. On a Linux system with registry access, copy the bundle file.
  2. Expand the bundle file: tar xvfz csi-<driver>-bundle-2.12.0.tar.gz
    Output
  3. Run the csi-offline-bundle.sh script with the -p option and specify the registry path with the -r option:
cd csi-<driver>-bundle-2.12.0/dell-csi-helm-installer 
./csi-offline-bundle.sh -p -r localregistry:5000/dell-csi-<driver>
  • The script will then perform the following steps:
    • Load the required container images into the local system
    • Tag the images according to the user-supplied registry information
    • Push the newly tagged images to the registry
    • Modify the Helm charts to refer to the newly tagged/pushed images

Install Container Storage Module

Prepare for Installation: Ensure required images are available and Helm Charts configuration is updated.

Follow Installation Procedure: Proceed with the usual installation steps as documented for Helm.


Github Repo PowerScale