Skip to main content
Version: 25.2.0

Upgrade Portworx CSI in an airgapped cluster

In an internet-connected Kubernetes cluster, PX-CSI automatically fetches the necessary resources for installation. However, in an airgapped environment, you must manually pre-stage these resources to ensure a successful installation.

caution

If you do not pre-stage the required resources before upgrading PX-CSI or Kubernetes in an airgapped cluster, your pods may enter crash loops, leading to service disruptions.

Follow this guide to download updated container images, pre-stage them within the airgapped cluster, and proceed with the PX-CSI upgrade.

Prerequisites

  • A healthy, operational PX-CSI Kubernetes cluster.
  • Access to the same internal or private container registry used during installation.
    note

    Verify your current container registry using the following command:

    kubectl get stc -n <portworx-namespace> -o yaml | grep customImageRegistry:

Get updated container images

  1. Set an environment variable for the Kubernetes version in use:

    KBVER=$(kubectl version --short 2>/dev/null | awk -F'[v+_-]' '/Server Version: / {print $3}')
  2. Define an environment variable for the latest PX-CSI major version:

    PXVER=<px-csi-version>  # example: 25.2.0
    note

    To find the latest PX-CSI version, refer to the Portworx Release Notes.

  3. On an internet-connected host with the same architecture and OS version as your Kubernetes nodes, download the airgapped installation bootstrap script:

    curl -o px-ag-install.sh -L "https://install.portworx.com/$PXVER/air-gapped?kbver=$KBVER"
  4. Pull the container images required for the specified versions:

    sh px-ag-install.sh pull
  5. Log in to your private container registry:

    docker login <your-private-registry>
  6. Push the container images to the private registry. Do not include http:// in the registry path:

    sh px-ag-install.sh push <your-registry-path>

    Example:

    sh px-ag-install.sh push myregistry.net:5443

    To push images to a specific repository (as defined in your StorageCluster):

    sh px-ag-install.sh push myregistry.net:5443/px-images

Create a version manifest ConfigMap for PX-CSI

  1. Download the PX-CSI version manifest:

    curl -o versions.yaml "https://install.portworx.com/$PXVER/version?kbver=$KBVER"
  2. Update the px-versions ConfigMap:

    kubectl -n <px-namespace> delete configmap px-versions
    kubectl -n <px-namespace> create configmap px-versions --from-file=versions.yaml

Upgrade PX-CSI installation

Follow the instructions in the Upgrade Portworx CSI guide to update the PX-CSI StorageCluster specification.