Topolvm-Operator is an open source cloud-native local storage orchestrator for Kubernetes, which bases on topolvm.
- Kubernetes: 1.20, 1.19
- Node OS: Linux with LVM2
- Filesystems: ext4, xfs
The CSIStorageCapacity feature gate should be turned on
- Orchestrate topolvm
- Prepare volume group
- Volume group dynamic expand
- Perception of storage topology
- Volume capacity limit
- PVC snapshot
- Prometheus metric and alarm
- Auto discover available devices
Topolvm Operator had been shared in operatorhub.io home.
- Raid of volume group
- Manage volume group that user created
operator
: orchestrate topolvm includeTopolvmCluster controller
andConfigMap controller
preparevg
: prepare volume group on each node
A diagram of components and the how they work see below:
TopolvmCluster controller
watch theTopolvmCluster
(CRD)TopolvmCluster controller
startConfigMap controller
to watchlvmd ConfigMap
ifTopolvmCluster
createdTopolvmCluster controller
createpreparevg
Job,Topolvm-controller
Deployment depend onTopolvmCluster
preparevg
Job on specific node check disk that provided inTopolvmCluster
and create volume group, if volume group created successfully and then createlvmd ConfigMap
for the nodeConfigMap controller
finds the newlvmd ConfigMap
then createTopolvm-node
DeploymentTopolvmCluster controller
updateTopolvmCluster
status
docs directory contains documents about installation and specifications
topolvm-operator is based on topolvm, we fork topolvm/topolvm and do some changes.
see alauda/topolvm
the changes are below:
- remove topolvm-scheduler
- lvmd containerized
- topolvm-operator alaudapublic/topolvm-operator
- topolvm alaudapublic/topolvm
For filing bugs, suggesting improvements, or requesting new features, please open an issue.