Skip to content

topolvm/topolvm

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
api
February 9, 2023 02:22
October 6, 2023 07:23
October 6, 2023 07:23
November 2, 2023 10:05
October 6, 2023 07:23
November 2, 2023 10:05
November 16, 2022 10:23
October 26, 2023 09:42
November 2, 2023 10:05
October 26, 2023 09:42
November 16, 2022 10:23
July 27, 2021 01:47
June 19, 2021 22:02
October 13, 2023 08:42
October 6, 2023 07:23
November 16, 2022 10:23
March 28, 2022 07:20
October 11, 2023 13:09
December 20, 2022 06:29

TopoLVM logo GitHub release Main PkgGoDev Go Report Card

TopoLVM

TopoLVM is a CSI plugin using LVM for Kubernetes. It can be considered as a specific implementation of local persistent volumes using CSI and LVM.

  • Project Status: Testing for production
  • Conformed CSI version: 1.5.0

Our supported platform are:

  • Kubernetes: 1.27, 1.26, 1.25
  • Node OS: Linux with LVM2 (*1)
  • Filesystems: ext4, xfs, btrfs(experimental)
  • lvm version 2.02.163 or later (adds JSON output support)

*1 The host's Linux Kernel must be v4.9 or later which supports rmapbt and reflink, if you use xfs filesystem with an official docker image.

Docker images are available on ghcr.io.

Getting started

A demonstration of TopoLVM running on kind (Kubernetes IN Docker) is available at example directory.

For production deployments, see deploy/README.md.

User manual is at docs/user-manual.md.

Deprecated: If you want to use TopoLVM on Rancher/RKE, see docs/deprecated/rancher.md.

Contributing

TopoLVM project welcomes contributions from any member of our community. To get started contributing, please see our Contributing Guide.

Scope

In Scope

  • Dynamic provisioning: Volumes are created dynamically when PersistentVolumeClaim objects are created.
  • Raw block volume: Volumes are available as block devices inside containers.
  • Topology: TopoLVM uses CSI topology feature to schedule Pod to Node where LVM volume exists.
  • Extended scheduler: TopoLVM extends the general Pod scheduler to prioritize Nodes having larger storage capacity.
  • Volume metrics: Usage stats are exported as Prometheus metrics from kubelet.
  • Volume Expansion: Volumes can be expanded by editing PersistentVolumeClaim objects.
  • Storage capacity tracking: You can enable Storage Capacity Tracking mode instead of using topolvm-scheduler.

Planned features

Deprecated features

  • Pod security policy support is deprecated and will be removed when TopoLVM removes the support of Kubernetes < v1.25. This policy is same as Kubernetes.

Communications

If you have any questions or ideas, please use discussions.

Resources

docs directory contains the user manual, designs and specifications, and so on.

A diagram of components is available in docs/design.md.

TopoLVM maintainers presented the motivation and implementation of TopoLVM at KubeCon Europe 2020: https://kccnceu20.sched.com/event/ZerD

License

This project is licensed under Apache License 2.0.