Bug 2097398 - [RDR] Provide proper documentation on how application workloads needs to be designed [NEEDINFO]
Summary: [RDR] Provide proper documentation on how application workloads needs to be d...
Keywords:
Status: ASSIGNED
Alias: None
Product: Red Hat OpenShift Data Foundation
Classification: Red Hat Storage
Component: documentation
Version: 4.10
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
: ---
Assignee: Olive Lakra
QA Contact: Neha Berry
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-06-15 15:32 UTC by Aman Agrawal
Modified: 2023-08-09 16:43 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Embargoed:
amagrawa: needinfo? (rtalur)
olakra: needinfo? (srangana)
olakra: needinfo? (rtalur)


Attachments (Terms of Use)

Comment 4 Benamar Mekhissi 2022-09-02 14:40:03 UTC
Supported Applications
===
Ramen protects Applications’ Persistent Volumes across a set of Managed Clusters. In order for Ramen to determine what PVCs to protect, a Label Selector must be provided to it. This is the same label selector found in the DRPC resource.
```
spec:
  ...
  pvcSelector:
    matchLabels:
      appname: busybox
```
Hence, Ramen will protect any PVC that matches the label. In this example, any PVC with label `appname: busybox` will be protected.

PVC Creation/Deletion
--- 
We have tested applications with 3 methods of PVC creation/deletion.
- PVCs created statically
- PVCs created by Custom Operators
- PVCs created by StatefulSet Controller

1. PVCs created statically
We have mostly tested with statically create PVCs. A PVC object is created from a static manifest file describing the PVC. An example of this is found here: https://github.com/RamenDR/ocm-ramen-samples/tree/main/busybox
In that example, busybox Pod is created when the busybox-pod.yaml is applied by ACM Subscription. The Pod uses the PVC to request physical storage. The PVC is also created when busybox-pvc.yaml is applied by ACM Subscription. This type of application has been tested and verified to work reliably.

1. PVCs created by Custom Operators
The Postgres Operator from Crunchy Data is an example of an operator that automatically manages PostgreSQL clusters. It creates PVCs dynamically, and the name of the PVCs that it creates follows a pattern that can’t be regenerated in the other cluster when the failover takes place. We have a work-in-progress PR to fix this. https://github.com/RamenDR/ramen/pull/350

2. PVCs created by StatefulSet Controller
StatefulSet Pods will deploy and failover correctly, however, to relocate to the original cluster, a manual deletion of the PVCs of the previous run must be performed before issuing a failback request. This is a StatefulSet limitation https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#limitations. K8s v1.23 provides a solution to this problem.

Comment 16 krishnaram Karthick 2023-03-13 04:43:24 UTC
Moved the bug to 4.13.


Note You need to log in before you can comment on or make changes to this bug.