Skip to content

topolvm operator provide kubernetes local storage which is light weight and high performance

License

Notifications You must be signed in to change notification settings

cloudbehl/topolvm-operator

 
 

Repository files navigation

Topolvm-Operator

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
  • PVC snapshot
  • Prometheus metric and alarm
  • Auto discover available devices

OperatorHub.io

Topolvm Operator had been shared in operatorhub.io home.

Planned features

  • Raid of volume group
  • 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:

component diagram

How components work

  1. TopolvmCluster controller watch the TopolvmCluster(CRD)
  2. TopolvmCluster controller start ConfigMap controller to watch lvmd ConfigMap if TopolvmCluster created
  3. TopolvmCluster controller create preparevg Job,Topolvm-controller Deployment depend on TopolvmCluster
  4. 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
  5. ConfigMap controller finds the new lvmd ConfigMap then create Topolvm-node Deployment
  6. 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.

About

topolvm operator provide kubernetes local storage which is light weight and high performance

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 97.1%
  • Makefile 1.8%
  • Other 1.1%