×

Learn how to upgrade your existing OADP 1.2 installation to OADP 1.3.

Always upgrade to the next minor version. Do not skip versions. To update to a later version, upgrade only one channel at a time. For example, to upgrade from OpenShift API for Data Protection (OADP) 1.1 to 1.3, upgrade first to 1.2, and then to 1.3.

Changes from OADP 1.2 to 1.3

The Velero server has been updated from version 1.11 to 1.12. OpenShift API for Data Protection (OADP) 1.3 uses the Velero built-in Data Mover instead of the VolumeSnapshotMover (VSM) or the Volsync Data Mover. To ensure your upgrade succeeds, update your DataProtectionApplication (DPA) to align with these changes.

The changes are as follows:

  • The spec.features.dataMover field and the VSM plugin are not compatible with OADP 1.3, and you must remove the configuration from the DataProtectionApplication (DPA) configuration.

  • The Volsync Operator is no longer required for Data Mover functionality, and you can remove it.

  • The custom resource definitions volumesnapshotbackups.datamover.oadp.openshift.io and volumesnapshotrestores.datamover.oadp.openshift.io are no longer required, and you can remove them.

  • The secrets used for the OADP-1.2 Data Mover are no longer required, and you can remove them.

OADP 1.3 supports Kopia, which is an alternative file system backup tool to Restic.

  • To employ Kopia, use the new spec.configuration.nodeAgent field as shown in the following example:

    Example
    spec:
      configuration:
        nodeAgent:
          enable: true
          uploaderType: kopia
    # ...
  • The spec.configuration.restic field is deprecated in OADP 1.3 and will be removed in a future version of OADP. To avoid seeing deprecation warnings, remove the restic key and its values, and use the following new syntax:

    Example
    spec:
      configuration:
        nodeAgent:
          enable: true
          uploaderType: restic
    # ...

In a future OADP release, it is planned that the kopia tool will become the default uploaderType value.

Upgrading from OADP 1.2 Technology Preview Data Mover

Backups created with the OpenShift API for Data Protection (OADP) 1.2 Data Mover are not compatible with OADP 1.3. Before upgrading to OADP 1.3, create a CSI or a file system backup to help ensure continuous data protection for your applications.

To restore OADP 1.2 Data Mover backup, you must uninstall OADP, and install and configure OADP 1.2.

The default timeout value for the Restic file system backup is one hour. In OADP 1.3.1 and later, the default timeout value for Restic and Kopia is four hours.

Procedure
  1. If your cluster backups are sufficient and Container Storage Interface (CSI) storage is available, back up the applications with a CSI backup.

  2. If you require off cluster backups:

    1. Back up the applications with a file system backup that uses the --default-volumes-to-fs-backup=true or backup.spec.defaultVolumesToFsBackup options.

    2. Back up the applications with your object storage plugins, for example, velero-plugin-for-aws.

Backing up the DPA configuration

Save your current DataProtectionApplication (DPA) configuration to a file. Backing up your configuration helps ensure you can restore your settings if any issues occur during the upgrade process.

Procedure
  • Save your current DPA configuration by running the following command:

    Example
    $ oc get dpa -n openshift-adp -o yaml > dpa.orig.backup

Upgrading the OADP Operator

Upgrade the OpenShift API for Data Protection (OADP) Operator to ensure your installation has the latest enhancements and bug fixes.

Procedure
  1. Change your subscription channel for the OADP Operator from stable-1.2 to stable-1.3.

  2. Allow time for the Operator and containers to update and restart.

Additional resources

Converting DPA to the new version

Reconfigure your DataProtectionApplication (DPA) manifest to move to the built-in Velero Data Mover. With this change, you can move volume snapshots to off-cluster object storage for disaster recovery.

Procedure
  1. Click OperatorsInstalled Operators and select the OADP Operator.

  2. In the Provided APIs section, click View more.

  3. Click Create instance in the DataProtectionApplication box.

  4. Click YAML View to display the current DPA parameters.

    Example current DPA
    spec:
      configuration:
        features:
          dataMover:
          enable: true
          credentialName: dm-credentials
        velero:
          defaultPlugins:
          - vsm
          - csi
          - openshift
    # ...
  5. Update the DPA parameters:

    • Remove the features.dataMover key and values from the DPA.

    • Remove the VolumeSnapshotMover (VSM) plugin.

    • Add the nodeAgent key and values.

    Example updated DPA
    spec:
      configuration:
        nodeAgent:
          enable: true
          uploaderType: kopia
        velero:
          defaultPlugins:
          - csi
          - openshift
    # ...
  6. Wait for the DPA to reconcile successfully.

Verifying the upgrade

Verify the upgrade to ensure the integrity of the installation and the availability of backup storage locations.

Procedure
  1. Verify the installation by viewing the OpenShift API for Data Protection (OADP) resources by running the following command:

    $ oc get all -n openshift-adp
    Example output
    NAME                                                     READY   STATUS    RESTARTS   AGE
    pod/oadp-operator-controller-manager-67d9494d47-6l8z8    2/2     Running   0          2m8s
    pod/node-agent-9cq4q                                     1/1     Running   0          94s
    pod/node-agent-m4lts                                     1/1     Running   0          94s
    pod/node-agent-pv4kr                                     1/1     Running   0          95s
    pod/velero-588db7f655-n842v                              1/1     Running   0          95s
    
    NAME                                                       TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    service/oadp-operator-controller-manager-metrics-service   ClusterIP   172.30.70.140    <none>        8443/TCP   2m8s
    service/openshift-adp-velero-metrics-svc                   ClusterIP   172.30.10.0      <none>        8085/TCP   8h
    
    NAME                        DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/node-agent    3         3         3       3            3           <none>          96s
    
    NAME                                                READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/oadp-operator-controller-manager    1/1     1            1           2m9s
    deployment.apps/velero                              1/1     1            1           96s
    
    NAME                                                           DESIRED   CURRENT   READY   AGE
    replicaset.apps/oadp-operator-controller-manager-67d9494d47    1         1         1       2m9s
    replicaset.apps/velero-588db7f655                              1         1         1       96s
  2. Verify that the DataProtectionApplication (DPA) is reconciled by running the following command:

    $ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
    Example output
    {"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
  3. Verify the type is set to Reconciled.

  4. Verify the backup storage location and confirm that the PHASE is Available by running the following command:

    $ oc get backupstoragelocations.velero.io -n openshift-adp
    Example output
    NAME           PHASE       LAST VALIDATED   AGE     DEFAULT
    dpa-sample-1   Available   1s               3d16h   true
  5. Start data movement off cluster per backup compared to creating a DataProtectionApplication (DPA) configuration:

    Example command
    $ velero backup create example-backup --include-namespaces mysql-persistent --snapshot-move-data=true
    Example configuration file
    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: example-backup
      namespace: openshift-adp
    spec:
      snapshotMoveData: true
      includedNamespaces:
      - mysql-persistent
      storageLocation: dpa-sample-1
      ttl: 720h0m0s
    # ...