Volume Group Operator is based on IBM/csi-volume-group spec specification and can be used by any storage provider.
Volume Group Operator follows controller pattern and provides extended APIs for volume grouping. The extended APIs are provided via Custom Resource Definition (CRD).
VolumeGroupClass is a cluster scoped resource that contains driver related configuration parameters.
driver 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 volumegroup.storage.ibm.io/ prefix are reserved by operator and not passed down to the driver.
volumegroup.storage.ibm.io/secret-namevolumegroup.storage.ibm.io/secret-namespace
apiVersion: csi.ibm.com/v1
kind: VolumeGroupClass
metadata:
name: volume-group-class-sample
spec:
driver: example.provisioner.io
parameters:
volumegroup.storage.ibm.io/secret-name: demo-secret
volumegroup.storage.ibm.io/secret-namespace: defaultVolumeGroupContent is a namespaced resource that contains references to storage objects that are part of a group.
driver is name of the storage provisioner
volumeGroupHandle is the unique identifier for the group
VolumeGroupDeletionPolicy is the deletion policy for the group. Possible values are Delete and Retain.
VolumeGroupClassName is the name of the VolumeGroupClass that contains driver related configuration parameters.
apiVersion: csi.ibm.com/v1
kind: VolumeGroupContent
metadata:
name: volume-group-content-sample
namespace: default
spec:
source:
driver: example.provisioner.io
volumeGroupHandle: volume-group-handle-sample
VolumeGroupDeletionPolicy: Delete
VolumeGroupClassName : volume-group-class-sampleVolumeGroup is a namespaced resource that contains references to storage objects that are part of a group.
driver is name of the storage provisioner
selector is a label selector that is used to select PVC objects that are part of the group.
VolumeGroupClassName is the name of the VolumeGroupClass that contains driver related configuration parameters.
apiVersion: csi.ibm.com/v1
kind: VolumeGroup
metadata:
name: volume-group-sample
namespace: default
spec:
VolumeGroupClassName: volume-group-class-sample
source:
driver: example.provisioner.io
selector:
matchLabels:
volume-group-key: volume-group-value--driver-name- Name of the CSI driver.--csi-address- Address of the CSI driver socket. Default is /run/csi/socket--rpc-timeout- Timeout for CSI driver RPCs. Default is 60s.--multiple-vgs-to-pvc- Allow multiple volume groups to be attached to a single PVC. Default is true.--disable-delete-pvcs- Disable deletion of PVCs when volume group is deleted. Default is false.