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.
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 fromregistry.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 :
- Build an offline bundle
- Unpack the offline bundle and prepare for installation.
- Install operator using the unpacked files.
- 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:
- Clone the required
csm-operator
version:
git clone -b v1.8.0 https://github.com/dell/csm-operator.git
cd csm-operator
- 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
orpodman 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:
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.
- Copy the Offline Bundle : Transfer the offline bundle file to a machine with access to the desired image registry.
- Unpack the Bundle:
- On a Linux system with registry access, expand the bundle file:
Here is the output of untartar xvfz dell-csm-operator-bundle.tar.gz
-
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.):
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 :
- Build an offline bundle
- Unpack the offline bundle and prepare for installation.
- 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
Unpacking the offline bundle and preparing for installation
- On a Linux system with registry access, copy the bundle file.
- Expand the bundle file:
tar xvfz csi-<driver>-bundle-2.12.0.tar.gz
Output - 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 PowerStore