The Regional Resiliency Pattern is a Validated Pattern derived from the
Multicluster DevSevOps Pattern.
The pattern uses Red Hat OpenShift Data Foundation's Regional DR solution for
cross-regional disaster recovery and the Regional DR Trigger Operator for automating
applications failover between Red Had Advanced Cluster Management Managed Clusters in
active-passive scenarios.
:warning: Do not install the Regional Resiliency Pattern in a pre-configured Advanced Cluster Management setup.
Fork the pattern and clone the fork to your workstation.
In values-global.yaml, create your cluster pairs. _installconfig is documented here. Use the existing example as a base:
regionalDR:
- name: resilient # Matches with ClusterSet
globalnetEnabled: false # Support for overlapping CIDR
clusters: # Pair of clusters, make sure to create each in a different region
primary:
name: ocp-primary
version: 4.14.12
install_config: # See OpenShift documentation for install config spec
...
secondary:
name: ocp-secondary
version: 4.14.12
install_config: # See OpenShift documentation for install config spec
...
# List of sync policy intervals: RPO should be larger than the sync time.
# If your sync process takes 3 mins, the interval should be at least 4-5 mins.
intervals:
- 1m
- 2m
Push your changes to your fork.
Create your own values-secrets.yaml file, use values-secret.yaml.template as a base.
:warning: DO NOT push this file to any repository.
Use OpenShift CLI and log into the Hub Cluster.
:detective: Now will be an excellent time to examine values-hub.yaml and and values-resilient.yaml, and evaluate what's included in Pattern for the Hub and Managed Clusters respectively.
Install the pattern. The following will install everything described by the pattern, including namespaces, operators, subscriptions, etc.
# Check and verify the generated pattern object
./pattern.sh make show
# If everything looks good, install the pattern (if needed, use TARGET_ORIGIN and TARGET_BRANCH)
./pattern.sh make install
Obtain the RedHat GitOps routes, and access them. There are two different servers. One for the Pattern Framework and one for our Pattern Instance:
# Framework GitOps
oc get Route -n openshift-gitops openshift-gitops-server
# Pattern GitOps
oc get Route -n regional-resiliency-pattern-hub hub-gitops-server
Verify the Framework's GitOps server:
Observe the Pattern's GitOps server and wait for all resources to be reconciled.
Depending on the target vendor's resources, creating and configuring the clusters might take some time.
In ACM's UI, verify Submariner is healthy:
In ACM's UI, verify the Managed Clusters are healthy:
In the Hub's UI, verify the DR Policies are validated match your requirements:
For every Managed Cluster, obtain the RedHat GitOps routes, and access them. There are two different servers. One for the Pattern Framework and one for our Pattern Instance:
# Framework GitOps
oc get Route -n openshift-gitops openshift-gitops-server
# Pattern GitOps
oc get Route -n regional-resiliency-pattern-resilient resilient-gitops-server
For every Managed Cluster, verify the Framework's GitOps server:
For every Managed Cluster, verify the Pattern's GitOps server:
All Done.
Get started deploying DR Applications with the Regional DR docs and the
example application. Based on the Primary Managed Cluster availability maintained
by ACM's heartbeat mechanism, a failover will be triggered to all related applications.