Skip to content

Commit

Permalink
docs: add docs for volumegroupreplication CR
Browse files Browse the repository at this point in the history
add docs for volumegroupreplication and volumegroupreplicationclass
CRs.

Signed-off-by: Nikhil-Ladha <[email protected]>
  • Loading branch information
Nikhil-Ladha committed Dec 3, 2024
1 parent 3124840 commit 7d2176f
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 1 deletion.
37 changes: 37 additions & 0 deletions docs/volumegroupreplication.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# VolumeGroupReplication

VolumeGroupReplication is a namespaced resource that contains references to storage object to be grouped and replicated, VolumeGroupReplicationClass corresponding to the driver providing replication, VolumeGroupContent and VolumeReplication CRs.

`volumeGroupReplicationClassName` is the name of the class providing group replication.

`volumeReplicationClassName` is the name of the class providing the replication for volumeReplication CR.

`volumeReplicationName` is the name of the volumeReplication CR created by this volumeGroupReplication CR

`volumeGroupReplicationContentName` is the name of the volumeGroupReplicationConten CR created by this volumeGroupReplication CR.

`replicationState` is the state of the volume being referenced. Possible values are `primary`, `secondary` and `resync`.

- `primary` denotes that the volume is primary
- `secondary` denotes that the volume is secondary
- `resync` denotes that the volume needs to be resynced

`source` contains the source of the volumeGroupReplication i.e, the selectors to match the PVC/PVs to be replicated.

- `selector` is a label selector to filter the pvcs that are to be included in the group replication

```yaml
apiVersion: replication.storage.openshift.io/v1alpha1
kind: VolumeGroupReplication
metadata:
name: volumegroupreplication-sample
namespace: default
spec:
volumeReplicationClassName: volumereplicationclass-sample
volumeGroupReplicationClassName: volumegroupreplicationclass-sample
replicationState: primary
source:
selector:
matchLabels:
group: replication
```
24 changes: 24 additions & 0 deletions docs/volumegroupreplicationclass.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# VolumeGroupReplicationClass

VolumeGroupReplicationClass is a cluster scoped resource that contains driver related configuration parameters for volume group replication.

`provisioner` is name of the storage provisioner.

`parameters` contains key-value pairs that are passed down to the driver. Users can add their own key-value pairs. Keys with `replication.storage.openshift.io/` prefix are reserved by operator and not passed down to the driver.

## Reserved parameter keys

- `replication.storage.openshift.io/group-replication-secret-name`
- `replication.storage.openshift.io/group-replication-secret-namespace`

```yaml
apiVersion: replication.storage.openshift.io/v1alpha1
kind: VolumeGroupReplicationClass
metadata:
name: volumegroupreplicationclass-sample
spec:
provisioner: example.provisioner.io
parameters:
replication.storage.openshift.io/group-replication-secret-name: secret-name
replication.storage.openshift.io/group-replication-secret-namespace: secret-namespace
```
31 changes: 31 additions & 0 deletions docs/volumegroupreplicationcontent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# VolumeGroupReplicationContent

VolumeGroupReplicationContent is a cluster scoped resource that contains volume grouping related information.

`volumeGroupReplicationRef` contains object reference of the volumeGroupReplication resource that created this resource.

`volumeGroupReplicationHandle` (optional) is an existing (but new) group replication ID.

`volumeGroupReplicationClassName` is the name of the VolumeGroupReplicationClass that contains the driver related info
for volume grouping.

`source` (optional) contains the VolumeGroupReplicationContentSource struct.

- `VolumeHandles` is the list of volume handles that this resource is responsible for grouping.

```yaml
apiVersion: replication.storage.openshift.io/v1alpha1
kind: VolumeGroupReplicationContent
metadata:
name: volumegroupreplicationcontent-sample
spec:
volumeGroupReplicationRef:
kind: VolumeGroupReplication
name: volumegroupreplication-sample
namespace: default
volumeGroupReplicationClassName: volumegroupreplicationclass-sample
provisioner: example.provisioner.io
source:
volumeHandles:
- myPersistentVolumeHandle
```
2 changes: 1 addition & 1 deletion docs/volumereplicationclass.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# VolumeReplicationClass

`VolumeReplicationClass` is a cluster scoped resource that contains driver related configuration parameters.
VolumeReplicationClass is a cluster scoped resource that contains driver related configuration parameters.

`provisioner` is name of the storage provisioner.

Expand Down

0 comments on commit 7d2176f

Please sign in to comment.