Skip to main content
Version: 2.10

Pre-Installation Requirements for Air-Gapped Environments

This topic covers the essential preparation steps required before installing Portworx Backup in air-gapped environments.

Overview

Air-gapped installations require careful preparation of container images and registry configuration since the environment cannot access external repositories during installation.

Prerequisites

  • (Mandatory) Ensure that you are aware of custom password policy

  • (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 PXB with the following parameters set to true:

    • Istio:
      • meshConfig.defaultConfig.holdApplicationUntilProxyStarts=true
      • values.pilot.env.ENABLE_NATIVE_SIDECARS=true
    • Linkerd:
      • proxyInit.runAsRoot=true
  • When multiple applications are configured to use the same base path (such as /), Istio cannot determine which service should handle incoming traffic. To avoid routing conflicts during the px-backup deployment, update the hostname using the istio.hostName helm parameter

Prepare air-gapped environments

If your cluster is non-airgapped, skip this section. If your cluster is air-gapped, you must pull the below Docker images to either your docker registry or your server. If you are using your own Prometheus and Alertmanager with Portworx Backup, you do not have to pull the last four images from the following list:

ImageImage pathVersion
pxcentralOnpremApidocker.io/portworx/pxcentral-onprem-api2.10.0
pxcentralOnpremUiFrontenddocker.io/portworx/pxcentral-onprem-ui-frontend2.10.0
pxcentralOnpremUiBackenddocker.io/portworx/pxcentral-onprem-ui-backend2.10.0
pxcentralOnpremUiLhbackenddocker.io/portworx/pxcentral-onprem-ui-lhbackend2.10.0
pxcentralOnpremPreSetupdocker.io/portworx/pxcentral-onprem-hook2.10.0
pxcentralOnpremPostSetupdocker.io/portworx/pxcentral-onprem-post-setup2.10.0
pxBackupdocker.io/portworx/px-backup2.10.0
postgresqldocker.io/portworx/postgresql17.4.0-debian-12-r19
keycloakdocker.io/portworx/keycloak26.2.4
keycloakLoginThemedocker.io/portworx/keycloak-login-theme2.10.0
busyboxdocker.io/portworx/busybox1.35.0
mysqldocker.io/portworx/mysql8.0.43
mongodbdocker.io/portworx/mongodb8.0.12-debian-12-r0
mongodb7docker.io/portworx/mongodb7.0.15-debian-12-r2
mongodb6docker.io/portworx/mongodb6.0.13-debian-11-r21
mongodb5docker.io/portworx/mongodb5.0.24-debian-11-r20
kopiaExecutordocker.io/portworx/kopiaexecutor1.2.22
nfsExecutordocker.io/portworx/nfsexecutor1.2.22
filesystemCtldocker.io/portworx/filesystemctl1.2.22
pxBackupPrometheusImagedocker.io/portworx/prometheusv3.6.0
pxBackupAlertmanagerImagedocker.io/portworx/alertmanagerv0.28.0
pxBackupPrometheusOperatorImagedocker.io/portworx/prometheus-operatorv0.85.0
pxBackupPrometheusConfigReloaderImagedocker.io/portworx/prometheus-config-reloaderv0.85.0
pxLicenseServerdocker.io/portworx/px-els2.8.0
Storkopenstorage/stork25.5.0
Command Executoropenstorage/cmdexecutor25.5.0
NFS Executoropenstorage/nfsexecutor1.2.22
Kopia Executoropenstorage/kopiaexecutor1.2.22
note
  1. Refer to the Install Stork in air-gapped environments section to know more about the Stork and other openstorage images in your air-gapped environment, before installing Portworx Backup.
  2. If your application cluster is running in the IBM Cloud environment, ensure that the image repository path is set to icr.io/ext/portworx/stork:<supported-pxb-stork-version> before applying the stork-spec.yaml during Stork installation (without PXE).

Before you begin

To pull the above Docker images and push them to an internal registry:

  1. Download the pxcentral-ag-install-backup.sh air-gapped bootstrap Portworx Backup install script.

    curl -o pxcentral-ag-install-backup.sh -L "https://install.portworx.com/pxcentral-air-gapped?px-backup=true"

    You can also download the install script for a specific release by specifying a version query. For example:

    curl -o pxcentral-ag-install-backup.sh -L "https://install.portworx.com/pxcentral-air-gapped?version=<Variable name = "pxbVer_2.10.0"/>&px-backup=true"
  2. Provide execute permission for the install script:

    chmod +x pxcentral-ag-install-backup.sh
  3. Pull the container images to your local setup using the pxcentral-ag-install-backup.sh script:

     ./pxcentral-ag-install-backup.sh pull
  4. Push the images to a internal registry server, accessible by the air-gapped nodes. Replace <repo> with your registry location.

    ./pxcentral-ag-install-backup.sh push <repo>
  5. (Optional) If you want to enable mTLS for Portworx Backup, label PXB deployed namespace:

  • Istio

    • Istio normal mode:

      kubectl label namespace <pxb-namespace> istio-injection=enabled --overwrite

      This command annotates <pxb-namespace> to inject sidecar proxy required for mTLS.

      Here <pxb-namespace> is the namespace where you have deployed PXB.

    • Istio ambient mode:

      kubectl label namespace <pxb-namespace> istio.io/dataplane-mode=ambient --overwrite

      For OpenShift cluster only, run the following command to enable host routing:

      oc patch network.operator/cluster --type merge -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"routingViaHost":true}}}}}'
  • Linkerd:

    1. Annotate PXB deployed namespace to inform Linkerd to inject linkerd-proxy required for mTLS:

      kubectl annotate ns <pxb-namespace> linkerd.io/inject=enabled
    2. 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

Configure external OIDC endpoints

If you enabled an external OIDC during the Portworx Backup installation, you must manually configure the redirect URI in your OIDC provider.

Refer to the Setup login redirects section of the Portworx Enterprise documentation for instructions.

Next Steps

After completing these pre-installation requirements, proceed to the Air-Gapped Installation Guide.