Deploy Portworx Backup using Argo CD
This topic details how to deploy (install or upgrade) Portworx Backup using Argo CD. Argo CD is a GitOps-based continuous delivery tool for Kubernetes.
Using Argo CD, you can deploy Portworx Backup in both air-gapped and non-air-gapped environments.
The Portworx Backup deployment using Argo CD leverages Helm charts and integrates with Git repositories or Helm repositories depending on the deployment approach. It also emphasizes proper configuration, sync management, and customizations for smooth operations and upgrades.
For more information on Argo CD, see the following Argo CD documentation:
Prerequisites
Ensure that the setup meets the following requirements before you install Portworx Backup using Argo CD:
-
The compatible Argo CD version is available. For more information, see Portworx Backup Argo CD Compatibility Matrix.
-
Access to Argo CD web console is available.
-
The
pxc-credentialssecret is created in the target namespace. For more information, see Create PXC credentials secret. -
Helm-generated values using
spec-genare available. -
(For air-gapped environment only) An internal Git repository is available where you extract and commit the
px-central-<pxb-version>.tgzHelm chart package.-
Run the following command on the node where
helm3is installed to download thepx-central-<pxb-version>.tgzHelm chart package.curl -O https://raw.githubusercontent.com/portworx/helm/master/stable/px-central-<pxb-version>.tgzReplace
<pxb-version>with the Portworx Backup version. For example, 2.11.0 -
Extract the downloaded file and commit it to the internal Git repository.
-
To deploy Portworx Backup using Argo CD, set the following helm parameters:
isArgoCD=trueisOpenshift=true
This setting is required only if the cluster where you deploy Portworx Backup is an Openshift cluster.
Install Portworx Backup using Argo CD
To install Portworx Backup using Argo CD, follow these steps:
-
Login and access Argo CD web console.
-
Click NEW APP or CREATE APPLICATION.
-
Configure the application:
-
In the Create Application page, provide the following details:
-
General Settings:
- Application Name: provide a meaningful name to your application (for example,
pxb-deploy). - Project: choose the appropriate project from the drop-down.
- Sync Policy: select Manual.
- Sync Option: check the options Respect Ignore Differences, Auto-Create Namespace, Server-Side Apply
- Application Name: provide a meaningful name to your application (for example,
-
Source Configuration:
-
Git Repository (Applicable for both air-gapped and non-air-gapped environments)
- Repository URL:
- For non-air-gapped environment, specify
https://github.com/portworx/helm. - For air-gapped environment, specify the local git repository URL where you extracted the
px-centralpackage.
- For non-air-gapped environment, specify
- Revision:
- For non-air-gapped environment, specify
master. - For air-gapped environment, specify
masteror the git branch name where you extracted thepx-central-<pxb-version>.tgzpackage.
- For non-air-gapped environment, specify
- Path:
- For non-air-gapped environment, specify
stable/px-central(the chart subdirectory within theportworx/helmrepository). - For air-gapped environment, specify the subdirectory path within your internal Git repository where you extracted the chart (for example,
stable/px-central).
- For non-air-gapped environment, specify
To install or upgrade to the latest Portworx Backup version in a non-air-gapped environment, Portworx by Everpure recommends that you use git repository.
- Repository URL:
-
Helm Repository (Applicable for non-air-gapped environment only)
- Repository URL:
http://charts.portworx.io/ - Chart:
px-central - Version: specify the desired version (Example: 2.10.x)
To install or upgrade to an older or pinned Portworx Backup version in a non-air-gapped environment, Portworx by Everpure recommends that you use helm repository as source
- Repository URL:
-
-
Destination Configuration:
- Cluster URL: select the target Kubernetes cluster.
- Namespace: enter the target namespace (example:
px-backup)
-
Helm Configuration:
- Under the Helm section:
- Paste the values generated from spec-gen OR
- Manually configure values in the Parameters section
- Under the Helm section:
-
-
Click CREATE to proceed with application creation.
-
After creating the application, perform the following steps to configure the differences:
-
Open the created Application Card. For example:
px-backup -
Go to the DETAILS → MANIFEST section.
-
Click EDIT and append the following configuration:
syncPolicy:
syncOptions:
- RespectIgnoreDifferences=true
- CreateNamespace=true
- ServerSideApply=true
- ClientSideApplyMigration=false
ignoreDifferences:
- kind: ConfigMap
name: pxcentral-ui-configmap
namespace: px-backup
jsonPointers:
- /data/FRONTEND_ENABLED_MODULES
- group: apiextensions.k8s.io
kind: CustomResourceDefinition
jsonPointers:
- /metadata/annotations
- /metadata/labels
- /spec
- group: apps
kind: StatefulSet
jsonPointers:
- /spec/volumeClaimTemplates -
Click SAVE.
-
Click SYNC to deploy Portworx Backup.
-
After initial deployment, navigate to Applications → DETAILS → PARAMETERS. Set the Helm parameter
isUpgradetotrue, which is required for further syncs.
Upgrade Portworx Backup using Argo CD
To upgrade Portworx Backup using Argo CD, follow these steps:
-
Login and access Argo CD web console.
-
Navigate to Applications > Portworx Backup application card > Details > MANIFEST > Edit.
-
Set
isUpgradeparameter totrue. -
Set the
targetRevisionparameter value to the required Portworx Backup version.noteFor air-gapped environments, ensure that you download, extract, and commit the required
px-central-<pxb-version>.tgzpackage to the git branch specified intargetRevisionparameter. -
Click Save.
-
Click SYNC.
Argo CD web console upgrades Portworx Backup version to the required version.