Comments (10)
I have been working on a simple btrfs provisioner: https://github.com/timoschwarzer/btrfs-provisioner
I eventually want to add support for automatic node selection, moving volumes between nodes (using btrfs send/receive) and more in the future.
from local-path-provisioner.
I'm glad to see there is some interest on this topic.
from local-path-provisioner.
@dvonessen What needs to be done in order to integrate this with the volume snapshot API?
from local-path-provisioner.
I think this feature would be really great.
from local-path-provisioner.
Hello, I think this is possible.
You can use the setup
and teardown
bash scripts to create subvolumes.
Requirements: local-path-provisioner version >= v0.0.15
Steps:
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml
to get the local-path-provisioner into you kubernetes cluster.- If you want to use
btrfs
tools, make sure you are using a helper image which has those tools available. By default local-path-provisioner usesbusybox
docker image. To change thiskubectl edit deployments.apps -n local-path-storage local-path-provisioner
and edit the container templates command. Append it with e.g. alpine linux image. kubectl edit configmaps local-path-config -n local-path-storage
in the data object there edit setup and teardown as wished. eg.
setup: |-
#!/bin/sh
path=$1
echo "$@"
apk add btrfs-progs
btrfs subvolume create ${path}
teardown: |-
#!/bin/sh
path=$1
rm -rf ${path}
For now it seems not possible to get btrfs subvolume delete ${path}
working. I think the helper image hast to run as privileged or need some capabilities.
I hope that helps.
from local-path-provisioner.
Is there also an environment variable for the quota in the setup
script?
I think btrfs subvolumes still need to be supported directly in local-path-provisioner (or similar project) in order to integrate it with the volume snapshot API, right?
from local-path-provisioner.
@dvonessen I can look into the permissions problems,
As I've started to look into this issue it appears that there is a btrfs storage driver for docker. I plan on diving into the volume snapshot api later this week, but in the interim I came across the ember-csi which appears to have btrfs support in some capacity. Not sure if either of these will be of use, but they may provide context to solve the problem.
from local-path-provisioner.
The btrfs storage driver for docker is about storing images, not volumes.
from local-path-provisioner.
Any updates on this?
What needs to be done?
from local-path-provisioner.
Any update/plans?
from local-path-provisioner.
Related Issues (20)
- when create PVC, some of the pv are 755 permission HOT 1
- Not able to use instance created with aws bottlerocket image for local storage
- Possibility to change affinity rules HOT 3
- ProvisioningFailed due to mkdir: can't create directory '': No such file or directory HOT 1
- SELinux blocking disk operations on a hostPath volume HOT 5
- busybox 1.36.1 Illegal option -a HOT 1
- Can we update go version to 1.20.5 and publish to docker hub? HOT 3
- E2E test failing due to conflicting PersistentVolume with previous test when volume type is "local"
- [question]: Is `fsGroup` working with `ReadWriteMany` PV?
- volume folder created with unexpected different user and folder HOT 3
- Should support anti afinity policy settings on pvc
- Pod with nodeName hangs while waiting for PVC to be provisioned HOT 2
- feature: add support to set folderName on PVC HOT 4
- Volume not provisioned when binding type is set to `Immediate` HOT 3
- Helm: Chart.yaml file is missing on helm install
- StorageClass annotations defaultVolumeType not work HOT 7
- Helm chart contains duplicate labels HOT 1
- How to set multiple nodepaths to one sc
- Multiple sharedFS as storageClass?
- Permission denied on RHEL based OS
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from local-path-provisioner.