Skip to content
Container Storage Interface (CSI) Driver for https://www.scaleway.com/block-storage/
Go Makefile Dockerfile
Branch: master
Clone or download

Latest commit

Sh4d1 Merge pull request #12 from Sh4d1/fix_manifest
fix: add missing rbac for snapshot on 0.1.1
Latest commit 28e8f9a Apr 6, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github feat: add simple PR template Mar 23, 2020
cmd/scaleway-csi Initial commit Mar 23, 2020
deploy/kubernetes fix: add missing rbac for snapshot on 0.1.1 Apr 6, 2020
driver Initial commit Mar 23, 2020
examples/kubernetes Initial commit Mar 23, 2020
scaleway fix: fix the limit of max size to 10TB Mar 31, 2020
.dockerignore Initial commit Mar 23, 2020
.gitignore Initial commit Mar 23, 2020
CODE_OF_CONDUCT.md feat: add code of conduct Mar 23, 2020
CONTRIBUTING.md Initial commit Mar 23, 2020
Dockerfile feat: add xfsprog to the docker image Mar 23, 2020
LICENSE Initial commit Mar 23, 2020
Makefile Initial commit Mar 23, 2020
OWNERS Initial commit Mar 23, 2020
README.md Initial commit Mar 23, 2020
go.mod Initial commit Mar 23, 2020
go.sum Initial commit Mar 23, 2020

README.md

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
master branch yes
v0.1.0 yes

Features

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

Volume Snapshots allows the user to create a snapshot of a specific block volume.

Volume Statistics

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.

Kubernetes

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
master branch yes
v0.1.0 yes

Examples

Some examples are available here.

Installation

These steps will cover how to install the Scaleway CSI driver in your Kubernetes cluster.

Requirements

  • A Kubernetes cluster running on Scaleway instances (v1.17+)
  • Scaleway Organizaton ID, Access and Secret key

Deployment

  1. 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
  1. 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 0.1.0.

$ 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.

Development

Build

You can build the Scaleway CSI driver executable using the following commands:

make build

You can build a local docker image named scaleway-csi for your current architecture using the following command:

make docker-build

Test

In order to run the tests:

make test

Contribute

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.

Reach us

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.

You can’t perform that action at this time.