Quobyte CSI

June 23, 2026 ยท View on GitHub

Quobyte CSI is the implementation of Container Storage Interface (CSI). Quobyte CSI enables easy integration of Quobyte Storage into Kubernetes.

This repository holds source code and development related documentation. For installation instructions and examples, please refer to Quobyte K8S resources

CSI Driver Options

OptionTypeDefaultDescription
api_urlstringQuobyte API URL
driver_namestringQuobyte CSI driver name
driver_versionstringQuobyte CSI driver version
enable_access_key_mountsbooleanfalseEnables use of Quobyte Access keys for mounting volumes
enable_volume_metricsbooleanfalseEnables volume metrics (space and inodes) export
immediate_erasebooleanfalseSchedules erase volume task immediately
node_namestringK8S node name
parallel_deletionsint10Delete 'n' shared volume directories parallelly
quobyte_mount_pathstring/mnt/quobyte/mountsMount point of Quobyte Client
quobyte_versioninteger4Specify Quobyte major version
rolestringnode_driver/controllerQuobyte CSI container role
shared_volumes_liststringComma separated list of shared volume UUIDs
use_delete_files_taskbooleanfalseRemove shared volume PVCs using delete files task. If false, uses rmdir via client mount point
use_k8s_namespace_as_tenantbooleanfalseUses k8s PVC.namespace as Quobyte tenant

Developer Notes

Building

Quobyte CSI Driver builds multi-arch (amd64, arm64) images using docker buildx. To build images, containerd storage backed should be enabled for docker.

To publish Quobyte CSI Driver image, tag release, run:

./src/build.sh release <version> # example version: v2.5.2

The above command publishes a release image, creates release tag and update remote base.

To compile in container, run tests, and push only container image, run:

./src/build.sh container <version> # example version: v2.5.2

The above command publishes a container image (no tags are created).

To run tests and compile in container, run:

./src/build.sh

The above command builds a container image but does not publish/load (must only be used for sanity check). Further, this does not produce any binary.

To build binary:

(cd src; CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o quobyte-csi ./cmd/main.go)

Testing

To run tests and compile in container, run:

./src/build.sh

You can also run

(cd src; go test -v ./...;)

To run E2E tests see here