Topolvm-Operator
Topolvm-Operator is an open source cloud-native local storage orchestrator for Kubernetes, which bases on topolvm.
Supported environments
- Kubernetes: 1.20, 1.19
- Node OS: Linux with LVM2
- Filesystems: ext4, xfs
The CSIStorageCapacity feature gate should be turned on
Features
- Orchestrate topolvm
- Prepare volume group
- Volume group dynamic expand
- Perception of storage topology
- Volume capacity limit
Planned features
- Raid of volume group
- Auto discover available devices
- Manage volume group that user created
Components
operator
: orchestrate topolvm include TopolvmCluster controller
and ConfigMap controller
preparevg
: prepare volume group on each node
Diagram
A diagram of components and the how they work see below:
How components work
TopolvmCluster controller
watch the TopolvmCluster
(CRD)
TopolvmCluster controller
start ConfigMap controller
to watch lvmd ConfigMap
if TopolvmCluster
created
TopolvmCluster controller
create preparevg
Job,Topolvm-controller
Deployment depend on TopolvmCluster
preparevg
Job on specific node check disk that provided in TopolvmCluster
and create volume group, if volume group created successfully and then create lvmd ConfigMap
for the node
ConfigMap controller
finds the new lvmd ConfigMap
then create Topolvm-node
Deployment
TopolvmCluster controller
update TopolvmCluster
status
Getting started and Documentation
docs directory contains documents about installation and specifications
Topolvm
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
Docker images
Report a Bug
For filing bugs, suggesting improvements, or requesting new features, please open an issue.