Skip to content
/ kadalu Public
forked from humblec/kadalu

A project to export any 'filesystem or device' inside container world using CSI

License

Notifications You must be signed in to change notification settings

Madhu-1/kadalu

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KaDalu

Note 1: kaDalu project is still in its infancy, not yet ready for production use.

Note 2: If you are using 'minikube' to try out kaDalu, then please use --vm-driver=none option. In our testing, we found issues specific to CSI pods when we used kvm2 driver.

Get Started

Deploy KaDalu Operator using,

kubectl create -f https://raw.githubusercontent.com/kadalu/kadalu/master/manifests/kadalu-operator.yaml

Check the status of Pods using,

$ kubectl get pods -nkadalu
NAME                        READY   STATUS    RESTARTS   AGE
csi-attacher-0              2/2     Running   0          30m
csi-nodeplugin-5hfms        2/2     Running   0          30m
csi-nodeplugin-924cc        2/2     Running   0          30m
csi-nodeplugin-cbjl9        2/2     Running   0          30m
csi-provisioner-0           3/3     Running   0          30m
operator-6dfb65dcdd-r664t   1/1     Running   0          30m

KaDalu Operator listens to PV Hosting volume configuration changes and starts the required pods. For example,

# File: storage-config.yaml
---
apiVersion: kadalu-operator.gluster/v1alpha1
kind: KadaluVolume
metadata:
  # This will be used as name of PV Hosting Volume
  name: gvol1
spec:
  type: Replica1
  storage:
    - node: kube1  # node name as shown in `kubectl get nodes`
      path: /mnt/data  # Directory path xattrs support.
                       # This is the directory which would
                       # export the storage to all the  PVs.
  options: {}

Now request kadalu-operator to create hosting volume using,

$ kubectl create -f storage-config.yaml

Operator will start the storage export pods as required.

$ kubectl get pods -nkadalu
NAME                        READY   STATUS    RESTARTS   AGE
server-gvol1-kube1-0        1/1     Running   0          84s
csi-attacher-0              2/2     Running   0          30m
csi-nodeplugin-5hfms        2/2     Running   0          30m
csi-nodeplugin-924cc        2/2     Running   0          30m
csi-nodeplugin-cbjl9        2/2     Running   0          30m
csi-provisioner-0           3/3     Running   0          30m
operator-6dfb65dcdd-r664t   1/1     Running   0          30m

Now we are ready to create Persistent volumes and use them in application Pods.

Create PVC using,

$ kubectl create -f manifests/sample-pvc.yaml
persistentvolumeclaim/pv1 created

and check the status of PVC using,

$ kubectl get pvc
NAME   STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS     AGE
pv1    Bound    pvc-8cbe80f1-428f-11e9-b31e-525400f59aef   1Gi        RWO            kadalu.gluster   42s

Design

KaDalu namespace

KaDalu namespace

KaDalu Storage Export Pod

KaDalu Server Pod

About

A project to export any 'filesystem or device' inside container world using CSI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 84.6%
  • Dockerfile 7.6%
  • Shell 6.2%
  • Makefile 1.6%