This repo provide plugin source code along side with the resource deffinitions and instructions on how to use Jovian Data Storage Solution as a storage for containers running in Kubernetes cluster.
JovianDSS CSI plugin been tested on following platforms: Talos OS 1.6
Here is a guide on how user can install plugin using kubectl
.
Helm
charts are comming...
General plugin configuration gets done by passing config file in form of kubernetes secret
.
You can check for example on how to expose config file to plugin in installation guide.
Check configuration document to learn about configurational options.
Once plugin
installation is completed user can deploy applications that use volumes from JovianDSS as persistent volumes
Here is examples of volumes and snapshots:
Keep in mind that PVC volumes will get automatically created and deleted with container creation and deletion.
kubectl apply -f ./deploy/example/nginx-pvc.yaml
In order to deploy application with pre provisioned volume administrator first have to create volume.
It can be done with the help of csc tool.
Or it can be done manually with JovianDSS
user interface or cli tool, keep in mind that for existing volume to be used it name have to start with vp_
prefix.
For instance if you have existing zvol
on JovianDSS
named pv-test
and you want to attach it to nginx application running inside kubernetes:
- Rename volume
pv-test
tovp_pv-test
. - Create persistent volume
User can find example of persistent volumes at deploy/example/pv-test.yaml. In order to set your volume user is expected to change
spec: csi: volumeHandle
to exact name that volume have on JovianDSS pool. Once it it done pv can be created by calling:
kubectl apply -f ./deploy/example/pv-test.yaml
- Create persistent volume claim Once you obtain Id of the volume you can create pvc based on specific pv:
kubectl apply -f ./deploy/example/pv-test-pvc.yaml
- Deploy application
kubectl apply -f ./deploy/example/pv-test-pvc-nginx.yaml
Snapshot of volume associated with pvc pv-test-pvc
provided in previous example can be created by:
kubectl apply -f ./deploy/example/pv-test-pvc-snapshot.yaml