kadalu

A lightweight Persistent storage solution for Kubernetes / OpenShift / Nomad using GlusterFS in background. More information at https://kadalu.tech

OTHER License

Downloads
1.9K
Stars
689
Committers
47

Bot releases are visible (Hide)

kadalu - 0.7.3

Published by amarts almost 4 years ago

This is a minor release, with some highlights being:

  • RKE operator.yaml file got KUBELET path changed to /var/lib/kubelet
  • operator now support handle_deleted(), which can be used to cleanup storage instances.
  • storage-remove support added to CLI too.
  • CLI (kubectl-kadalu) now works with python2 too.
kadalu - 0.7.2

Published by amarts almost 4 years ago

This is a minor release after 0.7 release, to make sure we keep the incremental changes happening.

Few minor improvements done:

  • operator now handles 'MODIFIED' event, which means, one can replace one of the brick in storage pool (for REPLICA2 and REPLICA3 types).
  • kubectl-kadalu is now installed in operator image itself, so one can use it without python dependency (or installing it) in a machine.
  • kadalu-quotad is updated to handle external storage better.
kadalu - 0.7.2alpha1

Published by amarts about 4 years ago

Testing the automated scripts

kadalu - 0.7.2alpha0

Published by amarts about 4 years ago

  • Test the automated release jobs, which should build multi-arch images, and also upload artifcates, generated manifest files to release folder!
kadalu - 0.7.1

Published by amarts about 4 years ago

  • Microk8s Support. (#269)

  • Rancher RKE support. (#275)

  • PV deleting issue. (#254)

  • Fix minor issues to handle multi architecture runs (#267 and few others)

  • Added storage-list to kubectl kadalu CLI

  • minor bug fixes alongs the way!

kadalu - 0.7.0

Published by amarts over 4 years ago

[0.7.0] - 2020-05-11

Highlights

  • New documentation added for Storage Classes
  • Kadalu can be used as Local storage with the introduction of new
    Storage Class filter node_affinity.
  • Experimental Arm support added with separate tag master.
  • Python 2 support for Kadalu Kubectl extension
  • Added support for Kubernetes 1.18
  • Kadalu Server and CSI container images are upgraded to the latest
    stable release of Gluster(7.4).
  • Fixed an issue of Server pods not starting due to long
    names. Removed hostname identifier from the Server pod names so that
    the Server pod name length will be well within limits. Use kubectl get pods -n kadalu -o wide to see the hostnames.
kadalu - 0.6.0

Published by amarts over 4 years ago

  • Replica 2 support added using the Thin arbiter feature of GlusterFS
  • Fixed issue showing the wrong status of server Pod as "Running" instead of the actual error.
  • Fixed Gluster remount failure, when connectivity with storage pods goes down, and df command doesn't show the Gluster mount.
  • CSI provisioner is enhanced to choose available storages randomly to avoid retrying with the same storage pool if that is down. This method also helps to utilize all the available storage pool for PVs.
  • Fixed permissions issue when app pods try to use mounted PVs with a non-root user.
  • Kadalu base container image upgraded to Fedora 31 and Gluster version in server and CSI container images to 7.3.
  • Fixed issue in kubectl kadalu plugin while parsing arguments related to external storage and Tiebreaker node.

All patches included in release from 0.5.0 - https://github.com/kadalu/kadalu/compare/0.5.0...0.6.0

kadalu - 0.5.2

Published by amarts over 4 years ago

  • Replica2 support (uses thin-arbiter option)
  • Fixes for connection issues.
kadalu - 0.5.1-rc0

Published by amarts over 4 years ago

  • Automated build testing using Github Actions
kadalu - Kadalu 0.5.0

Published by aravindavk over 4 years ago

Release highlights (CHANGELOG)

  • Documentation updated for the new features introduced in
    0.4.0(Kubectl plugin, External storage, and Storage configurations)
  • Cleanup script enhanced to handle CSIDriver object, which was
    introduced in the latest version of Kubernetes.
  • Troubleshooting documentation is added.
  • Introduced Thread lock while updating the info file and while
    mounting the Storage pool to avoid race conditions when PV claim and
    pod create done in parallel.
  • All Pylint tests are now passing.
  • Upgraded Kadalu Server container images to Gluster latest
    release(7.x)
  • Fixed Python compatibility issue in Kadalu Kubectl plugin.
  • Introduced "install" subcommand in kubectl-kadalu
  • Added support for external gluster storage in kubectl-kadalu
kadalu - Kadalu 0.4.0

Published by aravindavk almost 5 years ago

Release highlights (CHANGELOG)

  • Enhancement to support Kadalu storage on top of existing PVC
  • Support for using external Gluster Volumes with K8s using Kadalu
  • Kadalu kubectl plugin(pip3 install kubectl-kadalu) is
    introduced. This plugin helps to define Kadalu storage without the
    hassle of YAML files.
  • Fixed hang issue while terminating the server pods.
  • Added sidecar container to capture logs from the mount processes
    in CSI pods.
  • kadalu-quotad is now available as pypi package to use with
    external Gluster Volumes.
  • Deploy attacher as a container in provisioner statefulset instead of
    deploying it as a pod
  • Added tests to cover different Volume types(Replica1 and Replica3). Each PV claim size in tests made different so that it can be easily debugged.

Usage

Deploy KaDalu Operator on an already running Kubernetes cluster using,

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

Use kadalu-operator-openshift-0.4.0.yaml in case of Openshift.

oc-master# oc create -f https://raw.githubusercontent.com/kadalu/kadalu/master/manifests/kadalu-operator-openshift-0.4.0.yaml

Add storage devices using the new kubectl plugin(pip3 install kubectl-kadalu)

kube-master# kubectl kadalu storage-add storage-pool-1 \
    --device kube1:/dev/vdc

Operator will start the storage export pods as required. And, in 2 steps, your storage system is up and running.

Check the status of Pods using,

kube-master# kubectl get pods -nkadalu
NAME                                READY   STATUS    RESTARTS   AGE
csi-nodeplugin-5hfms                3/3     Running   0          14m
csi-nodeplugin-924cc                3/3     Running   0          14m
csi-nodeplugin-cbjl9                3/3     Running   0          14m
csi-provisioner-0                   4/4     Running   0          14m
operator-577f569dc8-l2q6c           1/1     Running   0          15m
server-storage-pool-1-0-kube1-0     2/2     Running   0          11m

Run oc get pods -n kadalu in case of Openshift.

For more information, please visit Kadalu GitHub page.

kadalu - Kadalu 0.3.0

Published by aravindavk almost 5 years ago

Release highlights (CHANGELOG)

  • Improved documentation. (Thanks to @papanito)
  • Enhanced to handle invalid Pod names when k8s node name is used as part of pod name.
  • Added more test cases to cover Replica 3 Volume use cases.
  • Fixed a crash during Gluster volume mount in CSI pods.
  • The operator is enhanced to start self heal daemon when Replica 3 volume is created.

Usage

Deploy KaDalu Operator on an already running Kubernetes cluster using,

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

Use kadalu-operator-openshift-0.3.0.yaml in case of Openshift.

oc create -f https://raw.githubusercontent.com/kadalu/kadalu/master/manifests/kadalu-operator-openshift-0.3.0.yaml

KaDalu Operator listens to Storage setup configuration changes and starts the required pods. For example,

# File: storage-config.yaml
---
apiVersion: kadalu-operator.storage/v1alpha1
kind: KadaluStorage
metadata:
  # This will be used as the name of PV Hosting Volume
  name: storage-pool-1
spec:
  type: Replica1
  storage:
    - node: kube1      # node name as shown in `kubectl get nodes`
      device: /dev/vdc # Device to provide storage to all PVs

Now request kadalu-operator to setup storage using,

$ kubectl create -f storage-config.yaml

Operator will start the storage export pods as required. And, in 2 steps, your storage system is up and running.

Check the status of Pods using,

$ kubectl get pods -nkadalu
NAME                             READY   STATUS    RESTARTS   AGE
server-storage-pool-1-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

Run oc get pods -n kadalu in case of Openshift.

For more information, please visit Kadalu GitHub page.

kadalu - Kadalu 0.2.0

Published by aravindavk almost 5 years ago

Release highlights (CHANGELOG)

  • Improvements to Volfile templates by removing distribute graph in case of no distribute Volume.
  • Added Security Context Constraints to support Openshift deployment.
  • Improved Tracking to understand the workload better.
  • New make command for release management.

Usage

Deploy KaDalu Operator on an already running kubernetes cluster using,

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

Use kadalu-operator-openshift-0.2.0.yaml in case of Openshift.

oc create -f https://raw.githubusercontent.com/kadalu/kadalu/master/manifests/kadalu-operator-openshift-0.2.0.yaml

KaDalu Operator listens to Storage setup configuration changes and starts the required pods. For example,

# File: storage-config.yaml
---
apiVersion: kadalu-operator.storage/v1alpha1
kind: KadaluStorage
metadata:
  # This will be used as name of PV Hosting Volume
  name: storage-pool-1
spec:
  type: Replica1
  storage:
    - node: kube1      # node name as shown in `kubectl get nodes`
      device: /dev/vdc # Device to provide storage to all PVs

Now request kadalu-operator to setup storage using,

$ kubectl create -f storage-config.yaml

Operator will start the storage export pods as required. And, in 2 steps, your storage system is up and running.

Check the status of Pods using,

$ kubectl get pods -nkadalu
NAME                             READY   STATUS    RESTARTS   AGE
server-storage-pool-1-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

Run oc get pods -n kadalu in case of Openshift.

For more information, please visit Kadalu github page.

kadalu - Kadalu 0.1.0

Published by aravindavk about 5 years ago

Deploy KaDalu Operator on an already running kubernetes cluster using,

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

KaDalu Operator listens to Storage setup configuration changes and starts the required pods. For example,

# File: storage-config.yaml
---
apiVersion: kadalu-operator.storage/v1alpha1
kind: KadaluStorage
metadata:
  # This will be used as name of PV Hosting Volume
  name: storage-pool-1
spec:
  type: Replica1
  storage:
    - node: kube1      # node name as shown in `kubectl get nodes`
      device: /dev/vdc # Device to provide storage to all PVs

Now request kadalu-operator to setup storage using,

$ kubectl create -f storage-config.yaml

Operator will start the storage export pods as required. And, in 2 steps, your storage system is up and running.

Check the status of Pods using,

$ kubectl get pods -nkadalu
NAME                             READY   STATUS    RESTARTS   AGE
server-storage-pool-1-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

For more information, please visit Kadalu github page.