---
name: openshift-openshift_odf_rdr_upgrade
title: Upgrading your OpenShift Data Foundation Regional Disaster Recovery environment
description: Learn when and how to upgrade the components of your OpenShift Data Foundation (ODF) Regional Disaster Recovery (RDR) environment, including Red Hat OpenShift on IBM Cloud, the Advanced Cluster Management (ACM) add-on, ODF, and the ODF-DR operator.
last-updated: 2026-08-28
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/openshift?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

# Upgrading your OpenShift Data Foundation Regional Disaster Recovery environment
{: #openshift_odf_rdr_upgrade}
{: toc-content-type="tutorial"}
{: toc-services="openshift, vpc"}
{: toc-completion-time="2h"}

[Virtual Private Cloud]{: tag-vpc}
[4.21 and later]{: tag-red}

Learn when and how to upgrade the components of your OpenShift Data Foundation (ODF) Regional Disaster Recovery (RDR) environment, including Red Hat OpenShift on IBM Cloud, the Advanced Cluster Management (ACM) add-on, ODF, and the ODF-DR operator.
{: shortdesc}

## Before you begin
{: #odf-rdr-upgrade-before}

Upgrade your ODF-RDR environment when a new version of Red Hat OpenShift on IBM Cloud, ACM, or ODF is available, or when any component is old or approaching deprecation. Failure to upgrade may result in future outages.

Wait until upgrade versions for all three components are available before you start. This reduces the overall upgrade effort.
{: tip}

## Upgrading the hub cluster
{: #odf-rdr-upgrade-roks-hub}
{: step}

[Hub cluster]{: tag-blue}

Upgrade both the control plane and worker nodes on the hub cluster before upgrading any add-ons.

Before running any commands in this step, set your CLI context to the hub cluster.
```sh
ibmcloud oc cluster config --cluster HUB_CLUSTER_NAME --admin
```
{: pre}

1. Update the cluster master to the target version.
   ```sh
   ibmcloud oc cluster master update --cluster CLUSTER_NAME --version VERSION
   ```
   {: pre}

2. Wait a few minutes, then confirm that the master update is complete.
   ```sh
   ibmcloud oc cluster ls
   ```
   {: pre}

3. List the worker nodes and note the ID of each node to update.
   ```sh
   ibmcloud oc worker ls --cluster CLUSTER_NAME
   ```
   {: pre}

4. Replace each worker node to update it to the same version as the master. Repeat for each worker node.
   ```sh
   ibmcloud oc worker replace --cluster CLUSTER_NAME --worker WORKER_NODE_ID --update
   ```
   {: pre}

5. Confirm that all worker nodes are running the target version and show a **Ready** status. This may take several minutes.
   ```sh
   ibmcloud oc worker ls --cluster CLUSTER_NAME
   ```
   {: pre}

## Upgrading the managed clusters
{: #odf-rdr-upgrade-roks-spoke}
{: step}

[Managed cluster]{: tag-warm-gray}

Before running any commands in this step, set your CLI context to the managed cluster you are upgrading. Repeat for each managed cluster.
```sh
ibmcloud oc cluster config --cluster MANAGED_CLUSTER_NAME --admin
```
{: pre}

Because the managed clusters run ODF, follow the ODF-aware node upgrade procedure, which covers both the Red Hat OpenShift on IBM Cloud and ODF upgrades. For detailed instructions, see [Updating or replacing VPC worker nodes that use ODF](https://cloud.ibm.com/docs/openshift?topic=openshift-openshift-storage-update-vpc&interface=ui&format=markdown).

## Upgrading ACM on the hub cluster
{: #odf-rdr-upgrade-acm}
{: step}

[Hub cluster]{: tag-blue}

After all clusters are running the target Red Hat OpenShift on IBM Cloud version, upgrade the ACM add-on on the hub cluster.

Before running any commands in this step, set your CLI context to the hub cluster.
```sh
ibmcloud oc cluster config --cluster HUB_CLUSTER_NAME --admin
```
{: pre}

1. Upgrade the ACM add-on to the target version. Replace `CLUSTER_NAME` with the name of your hub cluster and `VERSION` with the target ACM version (for example, `2.16`).
   ```sh
   ibmcloud oc cluster addon update acm --cluster CLUSTER_NAME --version VERSION
   ```
   {: pre}

2. Confirm that the add-on updated successfully. In the output, verify the ACM add-on shows the target version.
   ```sh
   ibmcloud oc cluster addon ls --cluster CLUSTER_NAME
   ```
   {: pre}

## Upgrading the ODF-DR operator on the hub cluster
{: #odf-rdr-upgrade-odf-dr}
{: step}

[Hub cluster]{: tag-blue}

After ODF is upgraded on all managed clusters, upgrade the ODF Multicluster Orchestrator Operator on the hub cluster.

1. Confirm the current subscription channel for the ODF Multicluster Orchestrator operator.
   ```sh
   oc get subscription.operators.coreos.com odf-multicluster-orchestrator -n openshift-operators -o jsonpath='{.spec.channel}'
   ```
   {: pre}

2. Patch the subscription channel to the version that matches the ODF version you upgraded to on your managed clusters. The channel follows the format `stable-X.Y`, where `X.Y` is the ODF version. For example, if you upgraded ODF to 4.21, use `stable-4.21`.

   The ODF Multicluster Orchestrator version must match the ODF version installed on your managed clusters. Using a mismatched version may cause the DR policy to fail validation.
   {: important}

   To confirm which channels are available, run the following command.
   ```sh
   oc get packagemanifest odf-multicluster-orchestrator -n openshift-marketplace -o jsonpath='{.status.channels[*].name}'
   ```
   {: pre}

   Then patch the subscription to the target channel. Replace `stable-4.21` with the channel that matches your ODF version.
   ```sh
   oc patch subscription.operators.coreos.com odf-multicluster-orchestrator -n openshift-operators \
     --type merge -p '{"spec":{"channel":"stable-4.21"}}'
   ```
   {: pre}

3. Confirm that the install plan for the new version has been created.
   ```sh
   oc get installplan -n openshift-operators
   ```
   {: pre}

   If the install plan for the target version shows `APPROVED: false`, you must manually approve it before the upgrade proceeds. Replace `INSTALLPLAN_NAME` with the name of the install plan for the target version.
   ```sh
   oc patch installplan INSTALLPLAN_NAME -n openshift-operators --type merge -p '{"spec":{"approved":true}}'
   ```
   {: pre}

4. Verify that the CSV for the target version shows `Succeeded` status.
   ```sh
   oc get csv -n openshift-operators | grep odf-multicluster
   ```
   {: pre}

5. Verify that the ODF Multicluster Orchestrator operator pods are running in the `openshift-operators` namespace.
   ```sh
   oc get pods -n openshift-operators | grep -i odf
   ```
   {: pre}

   Confirm that both `odf-multicluster-console` and `odfmo-controller-manager` pods show `Running` status.

6. Verify that the `DRPolicy` is validated after reconciliation.
   ```sh
   oc get drpolicy -A
   ```
   {: pre}

   Confirm that the `VALIDATED` column shows `True` for all policies. If not, run the following command to check the status conditions.
   ```sh
   oc describe drpolicy <drpolicy_name>
   ```
   {: pre}

7. Verify that the `MirrorPeer` has finished reconciling.
   ```sh
   oc get mirrorpeers -A
   ```
   {: pre}

   Confirm that the `Phase` shows `ExchangedSecret`. If it shows `ExchangingSecret`, verify Submariner connectivity before proceeding.

For more information, see [Installing ODF Multicluster Orchestrator](https://docs.redhat.com/en/documentation/red_hat_openshift_data_foundation/4.21/html-single/configuring_openshift_data_foundation_disaster_recovery_for_openshift_workloads/index#installing-odf-multicluster-orchestrator_mdr){: external} in the Red Hat documentation.

## Upgrading optional operators
{: #odf-rdr-upgrade-optional-operators}
{: step}

If your environment includes the following operators, upgrade them after the ODF-DR operator.

GitOps
:   For more information, see [GitOps overview](https://docs.redhat.com/en/documentation/red_hat_advanced_cluster_management_for_kubernetes/2.15/html/gitops/gitops-overview){: external} in the Red Hat documentation.

OADP
:   For more information, see [Introduction to OpenShift API for data protection](https://docs.redhat.com/en/documentation/openshift_container_platform/4.21/html/backup_and_restore/oadp-application-backup-and-restore#oadp-introduction){: external} in the Red Hat documentation.

## Next steps
{: #odf-rdr-upgrade-next}

After completing all upgrades, verify that the environment is healthy and that disaster recovery is functioning correctly. For detailed verification steps, see [Verifying your ODF Regional Disaster Recovery configuration](https://cloud.ibm.com/docs/openshift?topic=openshift-openshift_odf_rdr_verify&format=markdown).