Exoscale Block Storage Container Storage Interface Driver.
- An API key associated to an IAM role with at least those permissions:
{
"default-service-strategy": "deny",
"services": {
"compute": {
"type": "rules",
"rules": [
{
"expression": "operation in ['list-zones', 'get-block-storage-volume', 'list-block-storage-volumes', 'create-block-storage-volume', 'delete-block-storage-volume', 'attach-block-storage-volume-to-instance', 'detach-block-storage-volume', 'update-block-storage-volume-labels', 'resize-block-storage-volume', 'get-block-storage-snapshot', 'list-block-storage-snapshots', 'create-block-storage-snapshot', 'delete-block-storage-snapshot']",
"action": "allow"
}
]
}
}
}
- Create a kubernetes secret for the API key with exoscale-secret.sh.
export EXOSCALE_API_KEY=EXOxxxxx export EXOSCALE_API_SECRET=xxxxx deployment/exoscale-secret.sh
kubectl apply -k 'github.com/exoscale/exoscale-csi-driver/deployment/latest?ref=main'
You should see your exoscale-csi-controller
and exoscale-csi-node
pods running in the kube-system
namespace.
kubectl -n kube-system get pods
...
exoscale-csi-controller-5df549794-7ptgw 7/7 Running 0 5d1h
exoscale-csi-node-nkbzw 3/3 Running 0 5d1h
exoscale-csi-node-v8skv 3/3 Running 0 5d1h
...
Since one exoscale-csi-node
is deployed per node, you should see one pod per node.
You can deploy a test App example to try it out.
# You should see an Exoscale Block Storage Volume created in your Organization.
kubectl apply -f doc/examples/namespace.yaml
kubectl apply -f doc/examples/pvc.yaml
# You should see your example App pod running and the Volume attached to one of your nodes.
kubectl apply -f doc/examples/deployment.yaml
Warning: It is discouraged to manually modify volumes managed by the CSI through the Exoscale API(Portal, CLI or otherwise). We recommend applying changes through kubernetes whenever possible.
You can build a binary
make build
Or you can build a container image
make docker
The Exoscale CSI adheres to Semantic Versioning.
Minor versions are aligned with the minor version number of the latest Kubernetes release.
The aligned version 0.y
is compatible with Kubernetes version 1.y
and unless specified otherwise in the compatibility matrix below, CSI 0.y
is also compatible with the two most recent Kubernetes minor versions before 1.y
. Even older versions may work but without guarantee.
For example, CSI 0.99
would be compatible with Kubernetes versions 1.99
, 1.98
and 1.97
.
CSI version | supported Kubernetes versions |
---|---|
0.31 | 1.31, 1.30 |
0.29 | 1.29, 1.28, 1.27 |