Bug 2307976

Summary: [MDR][RDR][RFE] Inconsistency between Fusion B/R and Ramen Recipes
Product: [Red Hat Storage] Red Hat OpenShift Data Foundation Reporter: astreit
Component: odf-drAssignee: Raghavendra Talur <rtalur>
odf-dr sub component: ramen QA Contact: krishnaram Karthick <kramdoss>
Status: MODIFIED --- Docs Contact:
Severity: high    
Priority: unspecified CC: kseeger, muagarwa
Version: 4.16Keywords: FutureFeature
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description astreit 2024-08-26 17:42:08 UTC
Description of problem (please be detailed as possible and provide log
snippests): 
Inconsistencies between: 
- Fusion B/R Recipe CRD/CR: https://github.ibm.com/ProjectAbell/isf-data-protection-operator/blob/master/config/crd/bases/spp-data-protection.isf.ibm.com_recipes.yaml
- Ramen Recipe: https://github.com/RamenDR/recipe/blob/main/config/crd/bases/ramendr.openshift.io_recipes.yaml

The following is a list of differences between the two Recipe CRD/CR that causes confusion for application developers and prevents possible merger into a single CRD.

B/R Recipe:
1) Resource groups are by default iterated over all namespaces defined in the associated B/R Application CR
````
spec
  groups:
  - name: db2u-resources
    labelSelector: app=db2u
````

2) Volumes are defined/selected by a .spec.groups with .type: volume
````
spec:
  groups:
  - name: db2u-volumes
    type: volume
    labelSelector: app=db2u
````

3) Backup and Restore sequences are defined in .spec.workflow array.  The .backup and .restore are the specific workflows leveraged by the B/R Recipe engine
````
spec:
  workflows:
  - name: backup
    sequence:
    - ....
  - name: restore
    sequence:
    - ...
```` 

Ramen Recipe:
1) Resource groups are required to explicitly specify all the application namespaces by .includedNamespaces
````
spec:
  groups:
  - name: db2u-resources
    labelSelector: app=db2u
    includedNamespaces:
    - db2u
````

2) Volumes are defined/selected separately by .spec.volumes
````
spec:
  volumes:
    name: db2u-volumes
    type: volume
    labelSelector: app=db2u
````

3) Capture and Recover sequences are defined separately by .spec.captureWorkflow and .spec.recoverWorkflow respectfully and leveraged specifically by the Ramen Recipe engine
````
spec:
  captureWorkflow:
    sequence:
    - ....
  recoverWorkflow:
    sequence:
    - ...
````