values-global.yaml
variants/
odf/
values-odf.yaml
values-resilient.yaml # full ODF spoke BOM
drpartner-s4/
values-drpartner-s4.yaml
values-resilient.yaml # partner spoke BOM (no ODF)
values-regional-dr.yaml # infrastructureEnabled: DRClusters + 2m-novm only + hub s3StoreProfiles
values-console-plugins-*.yaml
drpartner-minimal/
values-drpartner-minimal.yaml # no vp-s4-storage
values-resilient.yaml
values-regional-dr.yaml # resourcesEnabled + infrastructureEnabled false
values-opp-policy.yaml # submariner.enabled: false
values-console-plugins-*.yaml
overrides/ # shared hub/spoke chart overridesInstallation steps
The pattern executes the following steps on the cluster. Hub and spoke chart values differ by install variant; see Variant installation differences.
Apply Subscriptions and Applications to the hub cluster.
Install Red Hat Advanced Cluster Management (RHACM), OpenShift Data Foundation, and the OpenShift Data Foundation Multicluster Orchestrator on the hub cluster for the
odfvariant. Partner variants install Red Hat Advanced Cluster Management (RHACM), Multicluster Orchestrator (Ramen), OpenShift Virtualization, and OADP without ODF StorageSystem or MirrorPeer.Build managed clusters (
ocp-primaryandocp-secondary) with Hive.The managed clusters have identical subscription and application configuration, so they are both in the
resilientcluster group.
The
opp-policyapplication is responsible for copying CA certificates to the following places:Creating a
cluster-proxy-ca-bundleConfigMap in theopenshift-confignamespace.Assigning this ConfigMap to the proxy cluster resource.
Adding the certificate material to the
ramen-dr-cluster-operatorconfig inopenshift-dr-system.
The
regional-drapplication is responsible for:Ensuring ODF is set up properly (
odfvariant).Installing Submariner add-ons on managed clusters (
odfvariant; disabled for partner variants).Creating DRPolicy, MirrorPeer, DRPC, and Placement objects for RamenDR (
odfvariant).Creating DRClusters and hub
s3StoreProfileswithout DRPC or VMs (drpartner-s4variant).Installing the VM workload on the primary cluster (
odfvariant).Disabling sync on the
regional-drapplication after settlement to prevent potential conflicts later.
Variant installation differences
The pattern uses the clustergroup/RHACM variants/ folder layout. When variants/ is present, the patterns-operator sets global.vpNewFolderDir=true. Spoke configuration nests under each variant as variants/<variant>/values-<managedClusterGroup.name>.yaml.
Cluster provisioning (Hive vs BYOC)
By default, Hive provisions ocp-primary and ocp-secondary on AWS through Red Hat Advanced Cluster Management (RHACM). Set byoc: true in
overrides/values-cluster-names.yaml
to use existing regional DR clusters instead. Add their kubeconfigs to your secrets file and run ./pattern.sh make install-byoc.
See Using bring your own cluster (BYOC) for requirements and configuration steps.
| Mode | Install command | Managed clusters |
|---|---|---|
Hive (default) |
| Hive creates and registers |
BYOC |
| You provision and register clusters; pattern validates kubeconfigs before install |
Variant component differences
| Component | odf | drpartner-s4 | drpartner-minimal |
|---|---|---|---|
Hub DRClusters | MirrorPeer / Multicluster Orchestrator |
| none |
Hub | MirrorPeer / Multicluster Orchestrator |
| none |
S3 buckets | ODF |
| none |
CA on profiles |
|
| n/a |
Submariner | enabled | disabled | disabled |
DRPolicy / DRPC / VMs |
|
| none |
| yes | no | no |
Variant layout
Set the variant in values-global.yaml:
main:
variant: drpartner-s4Chart overrides live in the pattern repository. For TLS/CA roles and certificate chart references, see TLS and CA on the Architecture page.
Pattern scripts
scripts/cleanup-gitops-vms-non-primary.sh
Designed to be run when you need to manually clean up resources from a "failed" cluster.
Intended to be run with the kubeconfig from the hub cluster; it will determine where to
delete resources based on the current DRPC state. Applies to the odf variant.
scripts/download-kubeconfigs.sh
Downloads and extracts the kubeconfigs for the managed clusters to the current directory. Useful when you need to check something or do something on one of the managed clusters.
charts/hub/opp/scripts/argocd-health-monitor.sh
Ensures that ArgoCD is progressing properly in deploying resources. A workaround for an ArgoCD bug encountered during development.
charts/hub/opp/scripts/odf-ssl-precheck.sh
Ensures all the preconditions have been met for extracting certificates to distribute among the clusters.
charts/hub/opp/scripts/odf-ssl-certificate-extraction.sh
Extracts and distributes the CA material to the places it needs to go. Will also restart velero (OADP) pods if needed.
charts/hub/rdr/scripts/odf-dr-prerequisites-check.sh
Ensures that ODF is fully ready to be configured for Disaster Recovery. In particular waits for ODF to finish deployment and for the NooBaa/S3 service to be operational on all clusters.
charts/hub/rdr/scripts/submariner-prerequisites-check.sh
Ensures that Submariner is running properly and operational on both clusters. This is required for ODF PVC replication to work.
charts/hub/rdr/scripts/edge-gitops-vms-deploy.sh
Deploys the VM workload to the primary cluster. It uses the Validated Patterns Helm chart but
is not an ArgoCD application to avoid starting up resources on clusters where you do not want them running.
Thus it runs from the hub cluster. Applies to the odf variant.
charts/hub/rdr/scripts/drpc-health-check-argocd-sync-disable.sh
Disables sync on the regional-dr application to prevent ArgoCD from changing resources during settlement.
charts/hub/rdr/scripts/submariner-sg-tag.sh
During development of the pattern, a bug in Submariner was discovered that can prevent LoadBalancer services from being created correctly after Submariner is installed. This is a workaround for that bug.
