Scaleway Block Volume CSI driver
The Scaleway Block Volume Container Storage Interface (CSI) driver is an implementation of the CSI interface to provide a way to manage Scaleway Block Volumes through a container orchestration system, like Kubernetes.
WARNING: this project is under active development and should be considered alpha.
CSI Specification Compability Matrix
|Scaleway CSI Driver \ CSI Version||v1.2.0|
Here is a list of functionality implemented by the Scaleway CSI driver.
Raw Block Volume
Raw Block Volumes allows the block volume to be exposed directly to the container as a block device, instead of a mounted filesystem. To enable it, the
volumeMode needs to be set to
Block. For instance, here is a PVC in raw block volume mode:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-raw-pvc spec: volumeMode: Block [...]
Volume Snapshots allows the user to create a snapshot of a specific block volume.
The Scaleway CSI driver implements the
NodeGetVolumeStats CSI method. It is used to gather statistics about the used block volumes. In Kubernetes,
kubelet exposes these metrics.
This section is Kubernetes specific. Note that Scaleway CSI driver may work for older Kubernetes version than those announced. The CSI driver allows to use Persistent Volumes in Kubernetes.
Kubernetes Version Compability Matrix
|Scaleway CSI Driver \ Kubernetes Version||K8S v1.17|
Some examples are available here.
These steps will cover how to install the Scaleway CSI driver in your Kubernetes cluster.
- A Kubernetes cluster running on Scaleway instances (v1.17+)
- Scaleway Organizaton ID, Access and Secret key
- Configure the Scalewy secrets.
Edit the secret file in order to set your own secrets. Once replaced, you can create the secret:
$ kubectl apply -f ./deploy/kubernetes/scaleway-secret.yaml
- Deploy the Scaleway CSI driver and the needed sidecars.
It's recommended to deploy the latest tagged version, but you can also deploy the master version. Here we will deploy the latest version
$ kubectl apply -f ./deploy/kubernetes/scaleway-csi-v0.1.0.yaml
You can now verify that the driver is running:
$ kubectl get pods -n kube-system [...] scaleway-csi-controller-76897b577d-b4dgw 5/5 Running 0 3m scaleway-csi-node-hvkfw 3/3 Running 0 3m scaleway-csi-node-jmrz2 3/3 Running 0 3m [...]
and you should see the scaleway-csi-controller and the scaleway-csi-node pods.
You can build the Scaleway CSI driver executable using the following commands:
You can build a local docker image named scaleway-csi for your current architecture using the following command:
In order to run the tests:
If you are looking for a way to contribute please read the contributing guide
Code of conduct
Participation in the Kubernetes community is governed by the CNCF Code of Conduct.
We love feedback. Feel free to reach us on Scaleway Slack community, we are waiting for you on #k8s.
You can also join the official Kubernetes slack on #scaleway-k8s channel
You can also raise an issue if you think you've found a bug.