This repository was moved to validatedpatterns/regional-resiliency-pattern.
Old README
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.
- Red Hat OpenShift cluster.
- Red Hat OpenShift CLI installed on your workstation.
- [Cloud Vendor Credentials]
⚠️ 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. install_config 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.
⚠️ DO NOT push this file to any repository. -
Use OpenShift CLI and log into the Hub Cluster.
🕵️ 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
-
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.