3.11. Create sample application for testing disaster recovery solution


OpenShift Data Foundation disaster recovery (DR) solution supports disaster recovery for Subscription-based and ApplicationSet-based applications that are managed by RHACM. For more details, see Subscriptions and ApplicationSet documentation.

The following sections detail how to create an application and apply a DRPolicy to an application.

3.11.1. Subscription-based applications

3.11.1.1. Creating a sample Subscription-based application

In order to test failover from the Primary managed cluster to the Secondary managed cluster and relocate, we need a sample application.

Prerequisites

  • When creating an application for general consumption, ensure that the application is deployed to ONLY one cluster.
  • Use the sample application called busybox as an example.
  • Ensure all external routes of the application are configured using either Global Traffic Manager (GTM) or Global Server Load Balancing (GLSB) service for traffic redirection when the application fails over or is relocated.
  • As a best practice, group Red Hat Advanced Cluster Management (RHACM) subscriptions that belong together, refer to a single Placement Rule to DR protect them as a group. Further create them as a single application for a logical grouping of the subscriptions for future DR actions like failover and relocate.

    注意

    If unrelated subscriptions refer to the same Placement Rule for placement actions, they are also DR protected as the DR workflow controls all subscriptions that references the Placement Rule.

Procedure

  1. On the Hub cluster, navigate to Applications and click Create application.
  2. Select type as Subscription.
  3. Enter your application Name (for example, busybox) and Namespace (for example, busybox-sample).
  4. In the Repository location for resources section, select Repository type Git.
  5. Enter the Git repository URL for the sample application, the github Branch and Path where the resources busybox Pod and PVC will be created.

    Use the sample application repository as https://github.com/red-hat-storage/ocm-ramen-samples where the Branch is release-4.15 and Path is busybox-odr-metro.

  6. Scroll down in the form until you see Deploy application resources on clusters with all specified labels.

    • Select the global Cluster sets or the one that includes the correct managed clusters for your environment.
    • Add a label <name> with its value set to the managed cluster name.
  7. Click Create which is at the top right hand corner.

    On the follow-on screen go to the Topology tab. You should see that there are all Green checkmarks on the application topology.

    注意

    To get more information, click on any of the topology elements and a window will appear on the right of the topology view.

  8. Validating the sample application deployment.

    Now that the busybox application has been deployed to your preferred Cluster, the deployment can be validated.

    Log in to your managed cluster where busybox was deployed by RHACM.

    $ oc get pods,pvc -n busybox-sample

    Example output:

    NAME                          READY   STATUS    RESTARTS   AGE
    pod/busybox-67bf494b9-zl5tr   1/1     Running   0          77s
    
    
    NAME                                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                AGE
    persistentvolumeclaim/busybox-pvc   Bound    pvc-c732e5fe-daaf-4c4d-99dd-462e04c18412   5Gi        RWO            ocs-storagecluster-ceph-rbd   77s

3.11.1.2. Apply Data policy to sample application

Prerequisites

  • Ensure that both managed clusters referenced in the Data policy are reachable. If not, the application will not be protected for disaster recovery until both clusters are online.

Procedure

  1. On the Hub cluster, navigate to All Clusters Applications.
  2. Click the Actions menu at the end of application to view the list of available actions.
  3. Click Manage data policy Assign data policy.
  4. Select Policy and click Next.
  5. Select an Application resource and then use PVC label selector to select PVC label for the selected application resource.

    注意

    You can select more than one PVC label for the selected application resources. You can also use the Add application resource option to add multiple resources.

  6. After adding all the application resources, click Next.
  7. Review the Policy configuration details and click Assign. The newly assigned Data policy is displayed on the Manage data policy modal list view.
  8. Verify that you can view the assigned policy details on the Applications page.

    1. On the Applications page, navigate to the Data policy column and click the policy link to expand the view.
    2. Verify that you can see the number of policies assigned along with failover and relocate status.
    3. Click View more details to view the status of ongoing activities with the policy in use with the application.
  9. After you apply DRPolicy to the applications, confirm whether the ClusterDataProtected is set to True in the drpc yaml output.

3.11.2. ApplicationSet-based applications

3.11.2.1. Creating ApplicationSet-based applications

Prerequisite

  • Ensure that the Red Hat OpenShift GitOps operator is installed on the Hub cluster. For instructions, see RHACM documentation.
  • Ensure that both Primary and Secondary managed clusters are registered to GitOps. For registration instructions, see Registering managed clusters to GitOps. Then check if the Placement used by GitOpsCluster resource to register both managed clusters, has the tolerations to deal with cluster unavailability. You can verify if the following tolerations are added to the Placement using the command oc get placement <placement-name> -n openshift-gitops -o yaml.

      tolerations:
      - key: cluster.open-cluster-management.io/unreachable
        operator: Exists
      - key: cluster.open-cluster-management.io/unavailable
        operator: Exists

    In case the tolerations are not added, see Configuring application placement tolerations for Red Hat Advanced Cluster Management and OpenShift GitOps.

Procedure

  1. On the Hub cluster, navigate to All Clusters Applications and click Create application.
  2. Choose application type as Argo CD ApplicationSet - Push model
  3. In General step 1, enter your Application set name.
  4. Select Argo server openshift-gitops and Requeue time as 180 seconds.
  5. Click Next.
  6. In the Repository location for resources section, select Repository type Git.
  7. Enter the Git repository URL for the sample application, the github Branch and Path where the resources busybox Pod and PVC will be created.

    1. Use the sample application repository as https://github.com/red-hat-storage/ocm-ramen-samples
    2. Select Revision as release-4.15
    3. Choose Path as busybox-odr-metro.
  8. Enter Remote namespace value. (example, busybox-sample) and click Next.
  9. Select Sync policy settings and click Next.

    You can choose one or more options.

  10. Add a label <name> with its value set to the managed cluster name.
  11. Click Next.
  12. Review the setting details and click Submit.

Prerequisites

  • Ensure that both managed clusters referenced in the Data policy are reachable. If not, the application will not be protected for disaster recovery until both clusters are online.

Procedure

  1. On the Hub cluster, navigate to All Clusters Applications.
  2. Click the Actions menu at the end of application to view the list of available actions.
  3. Click Manage data policy Assign data policy.
  4. Select Policy and click Next.
  5. Select an Application resource and then use PVC label selector to select PVC label for the selected application resource.

    注意

    You can select more than one PVC label for the selected application resources.

  6. After adding all the application resources, click Next.
  7. Review the Policy configuration details and click Assign. The newly assigned Data policy is displayed on the Manage data policy modal list view.
  8. Verify that you can view the assigned policy details on the Applications page.

    1. On the Applications page, navigate to the Data policy column and click the policy link to expand the view.
    2. Verify that you can see the number of policies assigned along with failover and relocate status.
  9. After you apply DRPolicy to the applications, confirm whether the ClusterDataProtected is set to True in the drpc yaml output.

3.11.3. Deleting sample application

This section provides instructions for deleting the sample application busybox using the RHACM console.

重要

When deleting a DR protected application, access to both clusters that belong to the DRPolicy is required. This is to ensure that all protected API resources and resources in the respective S3 stores are cleaned up as part of removing the DR protection. If access to one of the clusters is not healthy, deleting the DRPlacementControl resource for the application, on the hub, would remain in the Deleting state.

Prerequisites

  • These instructions to delete the sample application should not be executed until the failover and relocate testing is completed and the application is ready to be removed from RHACM and the managed clusters.

Procedure

  1. On the RHACM console, navigate to Applications.
  2. Search for the sample application to be deleted (for example, busybox).
  3. Click the Action Menu (⋮) next to the application you want to delete.
  4. Click Delete application.

    When the Delete application is selected a new screen will appear asking if the application related resources should also be deleted.

  5. Select Remove application related resources checkbox to delete the Subscription and PlacementRule.
  6. Click Delete. This will delete the busybox application on the Primary managed cluster (or whatever cluster the application was running on).
  7. In addition to the resources deleted using the RHACM console, delete the DRPlacementControl if it is not auto-deleted after deleting the busybox application.

    1. Log in to the OpenShift Web console for the Hub cluster and navigate to Installed Operators for the project busybox-sample.

      For ApplicationSet applications, select the project as openshift-gitops.

    2. Click OpenShift DR Hub Operator and then click the DRPlacementControl tab.
    3. Click the Action Menu (⋮) next to the busybox application DRPlacementControl that you want to delete.
    4. Click Delete DRPlacementControl.
    5. Click Delete.
注意

This process can be used to delete any application with a DRPlacementControl resource.

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部