CSI-S3
Learn how to configure CSI-S3 for use with Filebase.
What is CSI-S3?
CSI-S3 is a container storage interface developed for S3-compatible storage. Container storage interfaces like CSI-S3 can dynamically allocate buckets and mount them via FUSE inside any container, such as Docker containers.
Read below to learn how to use CSI-S3 with Filebase.
1. Download the CSI-S3 GitHub repository into your working directory:
git clone https://github.com/CTrox/csi-s3
2. Create a new Kubernetes secret with the command:
kubectl create secret filebase-config
By default, this will create a file located at secret/filebase-config
3. Open this file and enter the following content:
Replace the following values:
FILEBASE_ACCESS_KEY: Filebase Access Key
FILEBASE_SECRET_KEY: Filebase Secret Key
4. Next, deploy the driver for CSI-S3:
cd deploy/kubernetes
kubectl create -f provisioner.yaml
kubectl create -f attacher.yaml
kubectl create -f csi-s3.yaml
5. Then create a storage class using the command:
kubectl create -f examples/storageclass.yaml
6. Test the S3 driver with the following workflow:
kubectl create -f examples/pvc.yaml
Make sure that the PVC has been bound:
kubectl get pvc csi-s3-pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
csi-s3-pvc Bound pvc-c5d24383235-4634f8507-11e8-9f330e4b 5Gi RWO csi-s3 12m
Then create and start a test pod:
kubectl create -f examples/pod.yaml
CSI-S3 will create a new bucket for each volume you create by default. The bucket will match the Volume’s ID.
To set configure a custom bucket name, edit the examples/storageclass.yaml
file to reflect the following content:
Note: This requires rClone to be installed to mount the bucket locally. For more information on rClone, check out our documentation here.
If you have any questions, please join our Discord server, or send us an email at hello@filebase.com
Last updated