https://github.com/timoschwarzer/btrfs-provisioner
Kubernetes volume provisioner that uses BTRFS subvolumes
https://github.com/timoschwarzer/btrfs-provisioner
btrfs kubernetes provisioner volumes
Last synced: about 2 months ago
JSON representation
Kubernetes volume provisioner that uses BTRFS subvolumes
- Host: GitHub
- URL: https://github.com/timoschwarzer/btrfs-provisioner
- Owner: timoschwarzer
- License: mit
- Created: 2022-12-07T11:51:09.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-12-12T06:47:06.000Z (over 1 year ago)
- Last Synced: 2025-03-19T20:40:07.681Z (2 months ago)
- Topics: btrfs, kubernetes, provisioner, volumes
- Language: Rust
- Homepage:
- Size: 210 KB
- Stars: 19
- Watchers: 3
- Forks: 3
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# btrfs-provisioner for Kubernetes
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.
### What works…
- Volume provisioning
- Volume deletion
- Enforcing storage quotas
- Static (per Node) StorageClasses### …and what doesn't (yet)
- Volume snapshots
- Volume backups using [Borg Backup](https://www.borgbackup.org/)
- Dynamic (single) StorageClass (automatic node selection and assignment)
- Automatically moving volumes between nodes## Getting started
### Prerequisites
- A running K8s cluster
- A BTRFS directory or filesystem at `/volumes`.### Installation
First of all, **this is experimental software**. You're up on your own should you lose data.
#### Helm
`helm repo add btrfs-provisioner https://timoschwarzer.github.io/btrfs-provisioner`
#### Manual
Deploy the manifests in the `deploy` directory:
```shell
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.