Installing DR operator

Replication Plug-in for Containers Installation and User Guide

Version
3.18.x
Audience
anonymous
Part Number
MK-92ADPTR155-10
ft:lastEdition
2026-07-07

The Disaster Recovery (DR) operator helps automate disaster recovery processes, such as replication, failover, failback, and resynchronization between the primary and secondary sites.

  • Install Hitachi Storage Plug-in for Containers on both the primary and secondary clusters. See Hitachi Storage Plug-in for Containers Quick Reference Guide for more information.
  • Install Replication Plug-in for Containers on both the primary and secondary clusters. See Installing and configuring Replication Plug-in for Containers for more information.
  1. Create a clone of https://github.com/hitachi-vantara/csi-operator-hitachi. Enter:
    # git clone https://github.com/hitachi-vantara/csi-operator-hitachi
  2. Navigate to the target Replication Plug-in for Containers version. Enter:
    # cd csi-operator-hitachi/hrpc/<version>/dr-operator
  3. Verify the following packages are available on both the primary and secondary sites:
    • cert-manager.yaml is located in the csi-operator-hitachi/hrpc/<version>/dr-operator/yaml/ directory
    • dr-operator-install.yaml is located in the csi-operator-hitachi/hrpc/<version>/dr-operator/yaml directory
    • dr-operator-uninstall.yaml is located in the csi-operator-hitachi/hrpc/<version>/dr-operator/yaml directory
    • remote-cluster-management.sh is located in the csi-operator-hitachi/hrpc/<version>/dr-operator/scripts directory
  4. Install the cert-manager package on both the primary and secondary sites. Enter:
    kubectl apply -f cert-manager.yaml
  5. Install the dr-operator-install package on both the primary and secondary sites. Enter:
    kubectl apply -f dr-operator-install.yaml
    Note: In the dr-operator-install.yaml file, update the storageClassName parameter with the StorageClass configured for Replication Plug-in for Containers.

    On Red Hat OpenShift Container Platform, specify the fsGroup value for the namespace where you want to install the DR operator on both the primary and secondary sites:

    1. Retrieve the fsGroup range value for the namespace from both the primary and secondary sites. Enter:
      # kubectl get ns <namespace> -o yaml |grep supplemental-groups
      Example output:
      openshift.io/sa.scc.supplemental-groups: 1000830000/10000
    2. Update the fsGroup value in the dr-operator-install.yaml file on both the primary and secondary sites. Enter:
      vi dr-operator-install.yaml
      Update the fsGroup value for the fsGroup parameter. For example:
      securityContext:
              fsGroup: 1000830000 
              runAsNonRoot: true
  6. Register kubeconfig of the secondary site in the primary site. Enter:
    # ./remote-cluster-management.sh <secondary site> secondary-kubeconfig
  7. Register kubeconfig of the primary site in the secondary site. Enter:
    # ./remote-cluster-management.sh <primary site> primary-kubeconfig
  8. Verify the cert-manager is installed and is in Running state. Enter:
    kubectl get pods -n cert-manager
    NAME                                       READY   STATUS    RESTARTS   AGE
    cert-manager-786fb48656-xtrmr              1/1     Running   0          9h
    cert-manager-cainjector-5965d694d9-m6nnj   1/1     Running   0          9h
    cert-manager-webhook-5bf5f9c8f6-zmtdf      1/1     Running   0          9h
  9. Verify the hspc-replication-operator-system is created. Enter:
    kubectl get ns
    NAME                      	STATUS   AGE
    cert-manager              	 Active   6d8h
    default                   	 Active   38d
    hspc-replication-operator-system  Active   3d8h
    hspc-operator-system      	 Active   34d
    hvplugin                  	 Active   34d
    kube-flannel              	 Active   38d
    kube-node-lease           	 Active   38d
    kube-public               	 Active   38d
    kube-system               	 Active   38d
    kurl                      	 Active   38d
    monitoring                	 Active   38d
    openebs                   	 Active   38d
  10. Verify the hspc-dr-operator-controller-manager pod is created and is in the Running state. Enter:
    kubectl get pod -n  hspc-replication-operator-system
    NAME                                                  READY   STATUS    RESTARTS       AGE
    hspc-dr-operator-controller-manager-dbbc5546d-snl7d   1/1     Running   82 (32m ago)   3d9h
  11. Verify the remote-kubeconfig secret is created. Enter:
    kubectl get secret -n  hspc-replication-operator-system
    NAME                  TYPE                DATA   AGE
    metrics-server-cert   kubernetes.io/tls   3      3d9h
    remote-kubeconfig     Opaque              1      19h
    webhook-server-cert   kubernetes.io/tls   3      3d9h
  12. Verify the remote-kubeconfig secret file. Enter:
    kubectl describe secret remote-kubeconfig -n  hspc-replication-operator-system
    Name:         remote-kubeconfig
    Namespace:     hspc-replication-operator-system
    Labels:       <none>
    Annotations:  <none>
    Type:  Opaque
    Data
    ====
    remote site:  5656 bytes
  13. Verify drpolicies.hspc.hitachi.com is installed. Enter:
    kubectl get crd
    NAME                                        CREATED AT
    alertmanagerconfigs.monitoring.coreos.com   2025-09-05T16:38:56Z
    alertmanagers.monitoring.coreos.com         2025-09-05T16:38:56Z
    certificaterequests.cert-manager.io         2025-10-07T21:31:18Z
    certificates.cert-manager.io                2025-10-07T21:31:18Z
    challenges.acme.cert-manager.io             2025-10-07T21:31:18Z
    clusterissuers.cert-manager.io              2025-10-07T21:31:18Z
    drpolicies.hspc.hitachi.com                 2025-10-22T17:06:12Z
    hspcs.csi.hitachi.com                       2025-09-09T07:39:17Z
    installers.cluster.kurl.sh                  2025-09-05T16:37:47Z
    issuers.cert-manager.io                     2025-10-07T21:31:18Z
    localvolumes.hspc.hitachi.com               2025-09-15T09:56:56Z
    orders.acme.cert-manager.io                 2025-10-07T21:31:18Z
    podmonitors.monitoring.coreos.com           2025-09-05T16:38:57Z
    probes.monitoring.coreos.com                2025-09-05T16:38:57Z
    prometheusagents.monitoring.coreos.com      2025-09-05T16:38:57Z
    prometheuses.monitoring.coreos.com          2025-09-05T16:38:57Z
    prometheusrules.monitoring.coreos.com       2025-09-05T16:38:57Z
    remotevolumes.hspc.hitachi.com              2025-09-15T09:56:56Z
    replications.hspc.hitachi.com               2025-09-15T09:56:56Z
    scrapeconfigs.monitoring.coreos.com         2025-09-05T16:38:58Z
    servicemonitors.monitoring.coreos.com       2025-09-05T16:38:58Z
    spcnodes.csiutil.hitachi.com                2025-09-09T07:42:43Z
    thanosrulers.monitoring.coreos.com          2025-09-05T16:38:58Z