[WIP] global VGR support for agnostic DR#2426
Draft
parikshithb wants to merge 3 commits intoRamenDR:mainfrom
Draft
[WIP] global VGR support for agnostic DR#2426parikshithb wants to merge 3 commits intoRamenDR:mainfrom
parikshithb wants to merge 3 commits intoRamenDR:mainfrom
Conversation
91196a1 to
3edcc6d
Compare
BenamarMk
reviewed
Feb 19, 2026
| @@ -751,6 +754,10 @@ func (v *VRGInstance) updateAsyncPVCs(pvcList *corev1.PersistentVolumeClaimList) | |||
| } | |||
|
|
|||
| if offloaded { | |||
Member
There was a problem hiding this comment.
Offloaded here will be either for individual VGRs or one single global VGR. Maybe move the check in 905 to processOffloadedPCs
Or maybe just add a new function called isGlobalOffload() that will return true or false
| for idx := range vrgList.Items { | ||
| vrg := &vrgList.Items[idx] | ||
|
|
||
| if vrg.Spec.Action != expectedAction { |
Member
There was a problem hiding this comment.
Check the action, replicationstate, and the drplacementcontrol.ramendr.openshift.io/destination-cluster annotation on the destination cluster.
Make sure that every VRG using the same VRGClass has identical values for these fields.
The annotation format is:
drplacementcontrol.ramendr.openshift.io/destination-cluster: <clusterName>
d5258c4 to
d6afff7
Compare
parikshithb
commented
Feb 20, 2026
d6afff7 to
147453e
Compare
When a VRG's PVCs use a globally scoped VGRClass, label the VRG with the storageID from its StorageClass. Before creating or updating a VolumeGroupReplication resource, verify that all VRGs with the same storageID agree on action, replication state, and destination cluster. If consensus is not reached, requeue and wait until all sibling VRGs are aligned. Signed-off-by: Parikshith <[email protected]>
After consensus is reached, override VGR name and namespace for globally offloaded VRGs, and skip owner references since global VGRs are cross namespace. Signed-off-by: Parikshith <[email protected]>
147453e to
3778da7
Compare
Signed-off-by: Parikshith <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is the initial implementation for the Global VGR support described in the Ramen Controller and Consensus Logic story (Approach 2).
Labels VRGs with storageID when VGRClass is globally scoped, and blocks VGR creation until all VRGs with the same storageID agree on the same action.