Skip to main content
Version: 2.9

Upgrade PXB in Internet-Connected Environments

Portworx Backup supports upgrades to version n from versions n-1 or n-2 versions. For example, if you are on Portworx Backup version 2.7.x, you can directly upgrade to 2.9.1. Suppose, if you are on 2.5.x and you wish to upgrade to 2.9.1, you need to upgrade in phased manner. Firstly upgrade from version 2.5.x to 2.7.x, and then upgrade from version 2.7.x to 2.9.1.

Refer the Argo CD install topic for install/upgrade PXB through Argo CD.

Prerequisites

  • Make sure all the mongoDB pods are in Ready state

Upgrade from 2.7.x to 2.9.1

To upgrade from Portworx Backup version 2.7.x to 2.9.1:

  1. Access Portworx Central portal.

  2. From the home page, navigate to Backup Services under Explore our Products.

  3. Click I agree to EULA and go through the Portworx Products Terms of Use carefully.

  4. Navigate back to the Portworx Central portal and click Start Free Trial.

  5. In the Spec Details provide the following values:

    • Backup Version: select the required version of Portworx Backup from the drop-down
    • Namespace: provide the name of the namespace where you want an instance of Portworx Backup to be installed
    • Select your environment: choose On-Premises or Cloud based on your storage environment
    • StorageClass Name: name of the StorageClass, refer tooltip for more details
    1. Release data:
    • Backup Version: select the required version of Portworx Backup from the drop-down

    • Namespace: provide the name of the namespace where you want an instance of Portworx Backup to be installed

    • Select your environment: choose On-Premises or Cloud based on your storage environment

    1. Configuration
    • StorageClass Name: name of the StorageClass, refer tooltip for more details

      note

      Defining the namespace and StorageClass is a one-time configuration step that should be completed during the initial installation. PVCs will be created using Namespace and StorageClass values you define in the SpecGen, and these values cannot be modified later during an upgrade.

      • Use your OIDC: select this option only if your external authorization provider is Auth0 and key in the following fields:

        • Endpoint
        • Client ID
        • Client Secret

        These values can be fetched from the Auth0 web console.

    • Use existing Prometheus: select this checkbox if you have to use your existing Prometheus stack to monitor Portworx Backup and enter the values for the following fields:

      • Prometheus Endpoint: enter details of the endpoint where your Prometheus is installed

      • Alertmanager Endpoint: enter details of the endpoint where your Alertmanager is installed

      • Prometheus secret name: enter secret name of your Prometheus stack

      • Alertmanager secret name: enter secret name of your Alertmanager

      • Custom email template from PX-Backup: select to upload Portworx Backup's custom email template to your pre-configured Alertmanager for email notifications

        By default, persistent volume size for Prometheus server is 5 GB, if you need more storage, use the following command during the upgrade from previous versions of Portworx Backup to 2.9.1:

        -- set persistentStorage.prometheus.storage=8Gi, persistentStorage.prometheus.retentionSize=<92% of prometheus.storage in MB>7360MB

        The command above resets the Prometheus server's persistent volume size to 8 GB. You can set the required storage based on your needs.

    • Proxy Configuration: select this checkbox if you have proxy server configured in your environment and enter the values for the following fields:

      • Unathenticated: choose this if you have unathenticated proxy server
        • HTTP Proxy: proxy server URL for http proxy
        • HTTPS Proxy: proxy server URL for https proxy
        • NO PROXY: Comma separated list of hostnames IPs or domains that should bypass the proxy settings
      • Authenticated/CA: choose this option if your cluster is behind a proxy server with authentication or CA
        • Proxy configuration secret: name of the kubernetes proxy configuration secret created in pxb namespace holding the proxy configuration

    1. Custom Registry

      • Use custom registry: applicable only for air-gapped environments, do not select this check-box for internet-connected system.
  6. Click Next to navigate to Finish tab.

  7. Step 1 in Finish tab: Update your Helm repository to pull the latest version of PXB with the following command:

    helm repo add portworx http://charts.portworx.io/ && helm repo update
  8. Step 2 of web console, you will have 2 options you can upgrade with set command or upgrade using px-central-value method. For upgrade refrain from using set command option and follow only upgrade through px-central-value method (option 2 under Step 2).

  9. To download the customized values-px-central.yaml, click on values-px-central.yaml in the Step 2 (option at the right).

  10. Rename this as values-px-central-<pxb-release-version>.yaml.

  11. From your CLI terminal, retrieve all custom values you used during the previous Portworx Backup installation or upgrade. These custom values are required for upgrade to retain the current configuration. Execute the following command to generate the current values YAML file :

    helm get values --namespace <pxb-namespace> px-central -o yaml > values-current.yaml

    Where <pxb-namespace> is the namespace in which you are planning to upgrade PXB to the required latest version.

    The above command retrieves the values used to configure the px-central Helm release with helm get values, scoped to the specified namespace (--namespace <pxb-namespace>, such as px-backup), and outputs them in YAML format (-o yaml). The results are then redirected into a file called values-current.yaml, allowing you to review, back up, or modify the configuration for future use, such as during an upgrade.

  12. Compare the files you obtained from Step 10 and Step 11, and update the new values-px-central-<pxb-release-version>.yaml if required to carry all the customizations you have made in the previous release.

When you initially installed Portworx Backup using Helm, you likely customized several settings (for example, image registry paths, versions, storage class names, proxy configs, and so on). During an upgrade, you must retain these customizations to avoid overwriting your working setup. Helm upgrades are declarative, and if you do not pass your previous configuration again, Helm assumes defaults.

For example: In the existing values-current.yaml, if the persistentStorage.storageClassName parameter is set with the value portworx-sc, then you must set the same portworx-sc value in the new values-px-central-<pxb-release-version>.yaml.

  1. (Optional) Execute this step only if you have configured Prometheus and Grafana following the steps mentioned in this topic Configure Prometheus and Grafana. :::

    Delete the Prometheus operator deployment upgrade to avoid conflicts:

    kubectl delete deploy prometheus-operator -n <pxb-namespace>

    Where <pxb-namespace> is the namespace in which you are planning to deploy PXB.

  2. Delete the post install hook job:

    kubectl delete job pxcentral-post-install-hook --namespace <pxb-namespace>

    Where <pxb-namespace> is the namespace in which you are planning to deploy PXB.

    note

    If you have enabled health check, deletion of post install hook job is automatically taken care. If no, you need to delete manually with the above command.

  3. Run the helm upgrade command to upgrade Portworx Backup, use the -f flag to pass the custom px-central-values-<pxb-release-version>.yaml file you generated above.

During an upgrade, several components are involved, which can considerably extend the upgrade duration. Therefore, the default timeout of 5 minutes is typically inadequate, and it is necessary to increase the timeout to 120 minutes. Also ensure that, you update the helm command timeout parameter to 120m without fail as shown in the following command:

helm upgrade px-central portworx/px-central --namespace <pxb-namespace> --version <pxb-release-version> -f px-central-values-<pxb-release-version>.yaml --timeout=120m

Where <pxb-release-version> is the PXB version you want to upgrade to.

note

If you are on Portworx Backup version 2.0.0 and want to upgrade to version 2.0.1 or 2.0.1 or 2.1.x or 2.2.x, then set the administrator password in the helm upgrade command as shown below:

helm upgrade px-central portworx/px-central --namespace <pxb-namespace> --version <pxb-release-version> --set oidc.centralOIDC.defaultPassword=<current-admin-password> -f values.yaml

Where <pxb-namespace> is the namespace in which you are planning to deploy PXB and <pxb-release-version> is the PXB version you want to upgrade to.