English | 简体中文
Baidu Cloud CSI plugins implement an interface between CSI enabled Container Orchestrator and Baidu Cloud Storage.
The following CSI gRPC calls are implemented:
- Controller Service: CreateVolume, DeleteVolume, ControllerPublishVolume, ControllerUnpublishVolume, ControllerGetCapabilities, ValidateVolumeCapabilities
- Node Service: NodeStageVolume, NodeUnstageVolume, NodePublishVolume, NodeUnpublishVolume, NodeGetCapabilities, NodeGetInfo
- Identity Service: GetPluginInfo, GetPluginCapabilities, Probe
Features:
- Static Provisioning - create persistence volume (PV) from the existing CDS volume and consume the PV from container using persistence volume claim (PVC).
- Dynamic Provisioning - uses persistence volume claim (PVC) to request the Kuberenetes to create the CDS volume on behalf of user and consumes the volume from inside container.
- Mount Option - mount options could be specified in persistence volume (PV) to define how the volume should be mounted.
- Block Volume - consumes the CDS volume as a raw block device for latency sensitive application. The corresponding CSI feature (CSIBlockVolume) is GA since Kubernetes 1.18.
The following CSI gRPC calls are implemented:
- Node Service: NodePublishVolume, NodeUnpublishVolume, NodeGetCapabilities, NodeGetInfo
- Identity Service: GetPluginInfo, GetPluginCapabilities, Probe
Features:
- Static Provisioning - create persistence volume (PV) from the existing BOS bucket and consume the PV from container using persistence volume claim (PVC).
- Mount Option - mount options could be specified in persistence volume (PV) to define how the bosfs should be run.
These instructions will get you a copy of the project up and running on your environment for development and testing purposes. See installing for notes on how to deploy the project on a Baidu Cloud CCE cluster.
A health CCE kubernetes cluster. See documents for creating a CCE cluster.
Prerequisite: Helm
Please read the values.yaml before installation and modify it when needed.
helm upgrade --install csi-cdsplugin ./deploy/helm/cds -f ./deploy/helm/cds/values.yaml
helm upgrade --install csi-bosplugin ./deploy/helm/bos -f ./deploy/helm/bos/values.yaml
make test
Please go through CSI Spec and General CSI driver development guideline to get some basic understanding of CSI driver before you start.
- Golang 1.18.+
- Docker 17.05+ for releasing
Dependencies are managed through go module.
To build the project, first turn on go mod using export GO111MODULE=on
, then build the docker image using: make image-all
.
- Please create an issue in issue list.
- Contact Committers/Owners for further discussion if needed.
- Maintainers: yezichao@baidu.com
- Issue list.
- Ruliu Group ID: 1586317