CSI base Object Storage driver/plug-in. Currently, the driver supports s3fs and rclone mounters.
For building the driver docker
and GO
should be installed on the system
-
Install latest Go
-
Set the
GOPATH
environment variable. -
Build the driver image
$ mkdir -p $GOPATH/src/github.com/IBM $ cd $GOPATH/src/github.com/IBM/ $ git clone https://github.com/IBM/ibm-object-csi-driver.git $ cd ibm-object-csi-driver
export RHSM_USER=<RHSM_USER> export RHSM_PASS=<RHSM_PASS> make container
An image named ibm-object-csi-driver:latest
is created. Please retag and push the image to suitable registries to deploy in cluster.
Update images if required in deploy/ibmCloud/kustomization.yaml
file.
Deploy the resources
kubectl apply -k deploy/ibmCloud/
To clean up the deployment
kubectl delete -k deploy/ibmCloud/
kubectl apply -k deploy/ibmUnmanaged/
To clean up the deployment
kubectl delete -k deploy/ibmUnmanaged/
Provide proper values for parameters in secret under examples/cos-s3-csi-pvc-secret.yaml
-
Create Secret, PVC and POD
kubectl create -f examples/cos-s3-csi-pvc-secret.yaml
If you want to use your own bucket, bucketName should be specified in the secret. If left empty, a temp bucket will be generated.
kubectl create -f examples/cos-s3-csi-pvc.yaml
kubectl create -f examples/cos-csi-app.yaml
If rclone mount options need to be provided they can be provided in Secret using StringData field. For example
stringData: mountOptions: | upload_concurrency=30 low_level_retries=3
-
Verify PVC is in
Bound
state -
Check for successful mount
If mounter type is rclone
, you will see
mount | grep rclone
rclone-remote:rcloneambfail on /data type fuse.rclone (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
If mounter type is s3fs
, you will see
root@cos-csi-app:/# mount | grep s3fs
s3fs on /data type fuse.s3fs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
Collect logs using below commands to check failure messages
oc logs cos-s3-csi-controller-0 -c cos-csi-provisioner
oc logs cos-s3-csi-driver-xxx -c cos-csi-driver