This is a (work in progress) volume provisioner for Kubernetes leveraging the BTRFS filesystem to create volumes, enforce storage quotas, create snapshots and make backups.
- Volume provisioning
- Volume deletion
- Enforcing storage quotas
- Static (per Node) StorageClasses
- Volume snapshots
- Volume backups using Borg Backup
- Dynamic (single) StorageClass (automatic node selection and assignment)
- Automatically moving volumes between nodes
- A running K8s cluster
- A BTRFS directory or filesystem at
/volumes
.
First of all, this is experimental software. You're up on your own should you lose data.
helm repo add btrfs-provisioner https://timoschwarzer.github.io/btrfs-provisioner
Deploy the manifests in the deploy
directory:
kubectl apply -f deploy/meta.yaml
kubectl apply -f deploy/controller.yaml
The BTRFS provisioner controller creates a StorageClass for each worker node on startup.