Skip to content

Latest commit

 

History

232 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quobyte CSI

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

Option Type Default Description
api_url string Quobyte API URL
driver_name string Quobyte CSI driver name
driver_version string Quobyte CSI driver version
enable_access_key_mounts boolean false Enables use of Quobyte Access keys for mounting volumes
enable_volume_metrics boolean false Enables volume metrics (space and inodes) export
immediate_erase boolean false Schedules erase volume task immediately
node_name string K8S node name
parallel_deletions int 10 Delete 'n' shared volume directories parallelly
quobyte_mount_path string /mnt/quobyte/mounts Mount point of Quobyte Client
quobyte_version integer 4 Specify Quobyte major version
role string node_driver/controller Quobyte CSI container role
shared_volumes_list string Comma separated list of shared volume UUIDs
use_delete_files_task boolean false Remove shared volume PVCs using delete files task. If false, uses rmdir via client mount point
use_k8s_namespace_as_tenant boolean false Uses k8s PVC.namespace as Quobyte tenant

Developer Notes

For Quobyte developers, see additional setup instructions

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

Releases

Packages

Used by

Contributors

Languages