This repository defines the official Container Storage Interface (CSI) Helm Charts for use with Crusoe Cloud.
The CSI Helm Charts are currently in 🚧 Alpha 🚧.
The Crusoe CSI Driver is only supported on Crusoe Managed Kubernetes (CMK). This guide assumes that the user has already set up CMK on Crusoe Cloud.
Other configurations will be supported on a best-effort basis.
The examples below assume the intended namespace
for the CSI Driver is crusoe-csi-driver
.
As the CSI Driver will communicate with the Crusoe Cloud API to orchestrate storage operations, you will have to set up
credentials in your Kubernetes cluster which the driver can then use to communicate with the API. Here is a template .yaml
file
which can be modified with your credentials and applied to your cluster.
apiVersion: v1
data:
CRUSOE_CSI_ACCESS_KEY: <base-64 encoded Crusoe Access Key>
CRUSOE_CSI_SECRET_KEY: <base-64 encoded Crusoe Secret Key>
kind: Secret
metadata:
name: crusoe-api-keys
namespace: crusoe-csi-driver
An appropriate secret can be created in your cluster by filling out the command below and running it in the terminal:
kubectl create secret generic crusoe-api-keys -n crusoe-csi-driver -o yaml \
--from-literal=CRUSOE_CSI_ACCESS_KEY=$YOUR_CRUSOE_ACCESS_KEY \
--from-literal=CRUSOE_CSI_SECRET_KEY=$YOUR_CRUSOE_SECRET_KEY
By default, the driver will use the crusoe-api-keys
secret.
The name of the secret as well as the name of the Secret keys that contain the access and secret keys
may be changed in the secrets
section of the values.yaml
file.
Helm must be installed to use the charts. Please refer to Helm's documentation to get started.
Once Helm has been set up correctly, add the repo as follows:
helm repo add <repo alias> https://crusoecloud.github.io/crusoe-csi-driver-helm-charts/charts
If you have already added this repo earlier, run helm repo update
to retrieve
the latest versions of the packages. You can then run helm search repo <repo alias>
to see the available charts.
To install the Crusoe CSI Driver chart in the crusoe-csi-driver
namespace:
helm install <chart alias> <repo alias>/crusoe-csi-driver -n crusoe-csi-driver
To uninstall the chart:
helm delete <chart alias>
The name of the secret containing the access and secret keys can be changed by modifying the secrets.crusoeApiKeys.secretName
value.
The persistent disk and shared filesystem drivers operate independently, and can be enabled or disabled by modifying the csi.ssd.enabled
and csi.fs.enabled
values.
See the examples directory for persistent disk and shared filesystem volume examples.
Feature | Persistent Disk (SSD) | Shared Filesystem (FS) |
---|---|---|
Access Modes | ReadWriteOnce | ReadWriteOnce, ReadWriteMany |
Volume Modes | Block, Filesystem | Filesystem |
Volume Expansion | Offline | Offline, Online |
Instance Type Support | All instance types | All c1a and s1a instance types, full GPU instance types |
Shared Filesystems are generally supported on the largest instance type in a family for GPU enabled instance types. For most GPU instance types, the largest instance type is the *.8x
type.
For l40s-48gb
instances, the largest instance type is the l40s-48gb.10x
type. Shared Filesystems are not supported on l40s-48gb.8x
types or smaller.
If you are deploying on a self-managed Kubernetes cluster, it is strongly recommended that you change the crusoe.projectID
value to the Crusoe project ID
that contains your node VMs.