Pre-upgrade
Before upgrading Portworx Backup in an air-gapped environment, ensure that your system meets all prerequisites and that you have completed the necessary preparation steps to download and configure the required container images.
Prerequisites
-
Assess how you plan to customize passwords for Portworx Backup. See the Password Policy guide for more information.
-
(Mandatory) Make sure all the MongoDB pods are in
Readystate. To verify, run:kubectl get pods -n <pxb-namespace> -l app=pxc-backup-mongodbAll three pods (
pxc-backup-mongodb-0,pxc-backup-mongodb-1,pxc-backup-mongodb-2) must showRunningstatus and1/1or3/3READY before proceeding. -
(Optional) If you want to enable mTLS for Portworx Backup, make sure Istio or Linkerd is installed on the cluster where you want to deploy Portworx Backup with the following parameters set to true:
- Istio:
meshConfig.defaultConfig.holdApplicationUntilProxyStarts=truevalues.pilot.env.ENABLE_NATIVE_SIDECARS=true
- Linkerd:
proxyInit.runAsRoot=true
- Istio:
-
If multiple applications use the same path prefix (
/), Istio encounters traffic routing conflicts. To prevent this, you must update the VirtualService that Portworx Backup creates with a unique hostname.
Before you begin
If you are in an air-gapped environment, then follow the steps below to upgrade Portworx Backup from the prior versions to 3.0.0:
-
(Optional — skip if not using mTLS) If you enabled mTLS in the prerequisites above, label or annotate the Portworx Backup namespace:
-
Istio
-
Istio sidecar mode:
kubectl label namespace <pxb-namespace> istio-injection=enabled --overwriteThis command annotates
<pxb-namespace>to inject sidecar proxy required for mTLS.Here
<pxb-namespace>is the namespace where you have deployed Portworx Backup. -
Istio ambient mode:
kubectl label namespace <pxb-namespace> istio.io/dataplane-mode=ambient --overwrite
-
-
Linkerd:
-
Annotate Portworx Backup deployed namespace to inform Linkerd to inject
linkerd-proxyrequired for mTLS:kubectl annotate ns <pxb-namespace> linkerd.io/inject=enabled -
Annotate the namespace for Kubernetes native sidecar support so that Linkerd sidecar proxy container can run and shut down gracefully without causing any issues:
kubectl annotate ns <pxb-namespace> config.alpha.linkerd.io/proxy-enable-native-sidecar=true
-
-
-
Pull the required Docker images and push them to your internal registry. This uses the same
pxcentral-ag-install-backup.shscript used during initial installation — it handles both install and upgrade image mirroring:-
Download the
pxcentral-ag-install-backup.shair-gapped bootstrap Portworx Backup install script.By default, the script includes only the images for the
pxBackupandpxCentralmodules. PX-Monitor and PX-License-Server are separate, optional components and their images are not included by default. Append the following query parameters to also mirror those images:Scenario Download URL PX-Backup only (default) https://install.portworx.com/pxcentral-air-gapped?px-backup=true PX-Backup + Monitoring + License Server https://install.portworx.com/pxcentral-air-gapped?px-backup=true&px-monitor=true&px-license-server=true PX-Backup + Monitoring + License Server (pinned to a specific release) https://install.portworx.com/pxcentral-air-gapped?px-backup=true&px-monitor=true&px-license-server=true&version=3.0.0 Where:
&px-monitor=true: Adds Cortex, Grafana, Prometheus, memcached, memcached-exporter, nginx, and go-dnsmasq images.&px-license-server=true: Adds the PX-License-Server (px-els) image.
noteThe
storkandcmdexecutorimages are not part of the PX-Backup air-gap script. They ship with the PX-Enterprise air-gap script (https://install.portworx.com/air-gapped). If you are running PX-Enterprise alongside PX-Backup, these images are already mirrored from the PX-Enterprise script.For example, to download the default (PX-Backup only) script:
curl -o pxcentral-ag-install-backup.sh -L "https://install.portworx.com/pxcentral-air-gapped?px-backup=true"To download the full bundle (PX-Backup + Monitoring + License Server):
curl -o pxcentral-ag-install-backup.sh -L "https://install.portworx.com/pxcentral-air-gapped?px-backup=true&px-monitor=true&px-license-server=true"To download the full bundle for a specific release, for example:
curl -o pxcentral-ag-install-backup.sh -L "https://install.portworx.com/pxcentral-air-gapped?px-backup=true&px-monitor=true&px-license-server=true&version=3.0.0" -
Provide execute permission for the install script:
chmod +x pxcentral-ag-install-backup.sh -
Pull the container images using the
pxcentral-ag-install-backup.shscript:./pxcentral-ag-install-backup.sh pull -
Push the images to a local registry server, accessible by the air-gapped nodes. Replace
<repo>with your registry location:./pxcentral-ag-install-backup.sh push <repo>
-
Next steps
Once the prerequisites are met and images are mirrored, proceed to Upgrade Portworx Backup on Air-Gapped Environments.