topolvm-operator

command module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2021 License: Apache-2.0 Imports: 5 Imported by: 0

README

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
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:

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.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
v1
Package v1 contains API Schema definitions for the topolvm v1 API group +kubebuilder:object:generate=true +groupName=topolvm.cybozu.com
Package v1 contains API Schema definitions for the topolvm v1 API group +kubebuilder:object:generate=true +groupName=topolvm.cybozu.com
cmd
pkg
operator/k8sutil
Package k8sutil for Kubernetes helpers.
Package k8sutil for Kubernetes helpers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL