quobyte-csi-driver

Shared Volume for Dynamic volumes

With this feature, you can provision PV as a sub-directory of the volume instead of an exclusive Quobyte volume.

Requirements

Storage Class configuration

Your storage class must provide parameters.quobyteTenant and parameters.sharedVolumeName along with other parameters. Following is the sample storage class that uses shared_volume of the tenant csi-test

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: quobyte-csi-shared-volume
# must match Quobyte CSI provisioner name
provisioner: csi.quobyte.com
# For shared volumes, volume expansion if requested from k8s always succeeds.
# admin need to either disable it via this flag or set Quota limits on shared volume.
#allowVolumeExpansion: true
parameters:
  quobyteTenant: "csi-test"
  # provisions PV as subdirectory of the "shared_volume"
  # Not having "sharedVolumeName" parameter, triggers creation of a new Quobyte volume
  # (with the name same as PV's name) for the dynamic provisioning
  # If shared volume is created beforehand, permissions should be 1777, so that PVCs can
  # be accessed by other users.
  sharedVolumeName: "shared_volume"
  # createQuota is not required with shared volumes and ignored if provided.
  # If Storage admin requires Quota for shared volumes, they must set Quota for volume via
  # Quobyte's management API at tenant level/volume level
  #createQuota: "true"
  csi.storage.k8s.io/provisioner-secret-name: "quobyte-admin-credentials"
  csi.storage.k8s.io/provisioner-secret-namespace: "quobyte"
  csi.storage.k8s.io/controller-expand-secret-name: "quobyte-admin-credentials"
  csi.storage.k8s.io/controller-expand-secret-namespace: "quobyte"
  csi.storage.k8s.io/node-publish-secret-name: "quobyte-admin-credentials"
  csi.storage.k8s.io/node-publish-secret-namespace: "quobyte"
  # user/group is optional - if not provided, user/group is retrieved from the Quobyte user
  # associated with the provisioner-secret provided above.
  user: root
  group: root
  # Permissions for PVC directory created inside shared volume (if not provided defaults to 700)
  # Keep other permissions to 0, so that only user[/group] can access this PV inside shared
  # volume.
  accessMode: "750"
reclaimPolicy: Delete