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 iSCSI plugin using kubectl.
Here is a guide on how user can install NFS plugin.
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 iSCSI configuration document to learn about configurational options.
For NFS please check nfs installation guide and NFS configuration document
This section describes installing application with iSCSI.
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.yamlIn 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-testtovp_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: volumeHandleto 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.yamlSnapshot 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.yamlUser can use same approach to for NFS based volumes. Examples for NFS volumes can be found in folder:
deploy/examples/nfs
For instance installation of NGINX with NFS can be done by
kubectl apply -f ./deploy/example/nfs/nginx-pvc.yaml