topolvm

Capacity-aware CSI plugin for Kubernetes

APACHE-2.0 License

Stars
696

Bot releases are visible (Hide)

topolvm - Release v0.6.0

Published by github-actions[bot] about 4 years ago

Fixed

  • Fix default configuration file path (#202)

Changed

  • Replace base image (#199)

Added

  • Support for Kubernetes 1.18 (#204)
  • Add Vagrant example (#183)

Removed

  • Support for Kubernetes 1.15 (#204)

Contributors

  • @frederiko
topolvm - Release v0.5.3

Published by github-actions[bot] about 4 years ago

Changed

  • Fix to accept implicit StorageClassName (#182)
  • Fix documents (#172, #173, #174, #175, #176, #179)

Contributors

  • @briantopping
  • @chez-shanpu
  • @sebgl
topolvm - Release v0.5.2

Published by github-actions[bot] about 4 years ago

Note

  • Since this version, TopoLVM container repository is quay.io/topolvm/topolvm.
  • The manifests of TopoLVM v0.5.1 use non-existing container image, quay.io/cybozu/topolvm: v0.5.1 .
    Therefore, use this version directly to update v0.5.0.

Changed

  • Change container repository (#170)
topolvm - Release v0.5.1

Published by github-actions[bot] over 4 years ago

Changed

  • Allow non-root containers to use filesystem volume (#162).
  • Migrate CI workflows from CircleCI to GitHub Actions (#161, #165).
  • Change the module name in go.mod to github.com/topolvm/topolvm (#166).
topolvm - v0.5.0

Published by cybozu-neco over 4 years ago

TopoLVM 0.5.0 has breaking changes that must be considered before upgrading.

Upgrade guide

1. Prepare the configuration file for lvmd

If you've run the lvmd command with --volume-group, --listen or --spare in v0.4 or before,
you have to prepare the configuration file as follows:

socket-name: /run/topolvm/lvmd.sock
device-classes:
  - name: ssd
    volume-group: myvg
    default: true
    spare-gb: 10
  • socket-name: The path to UNIX domain socket.
  • name: An arbitrary device-class name.
  • volume-group: The name of the volume-group you’ve been using.
  • default: Be sure to specify true.
  • spare-gb: Same value as before (default is ‘10’).

Put the configuration file on each node. (e.g. /etc/topolvm/lvmd.yaml)

2. Restart lvmd

lvmd v0.5.0 is backward-compatible with old TopoLVM installations.

  • Stop old lvmd processes.
  • Replace the old lvmd binary with new one.
  • Run the new lvmd as follows: lvmd --config=/etc/topolvm/lvmd.yaml

3. Update manifests

Retrieve the git repository of TopoLVM with the following command:

git clone https://github.com/cybozu-go/topolvm.git
git checkout v0.5.0

If you are running topolvm-scheduler as a DaemonSet, run the following command:

kustomize build ./deploy/manifests/overlays/daemonset-scheduler | kubectl apply -f -

Instead, if you are running topolvm-scheduler as a Deployment, run the following command:

kustomize build ./deploy/manifests/overlays/deployment-scheduler | kubectl apply -f -

Changed

  • lvmd

    • BREAKING: Introduce device-class configuration file, instead of --volume-group, --spare and --listen options
    • Change gRPC interfaces of lvmd
  • topolvm-scheduler

    • BREAKING: Introduce the configuration file, instead of --listen and --divisor options

Added

  • Support for multiple volume groups (#147)
topolvm - v0.5.0-rc.1

Published by zoetrope over 4 years ago

topolvm - v0.4.8

Published by cybozu-neco over 4 years ago

Fixed

  • Recreate device file when expanding volume if needed (#144).
topolvm - v0.4.7

Published by cybozu-neco over 4 years ago

Changed

  • Add key usages to certificate resources in sample manifests (#137).
topolvm - v0.4.6

Published by morimoto-cybozu over 4 years ago

Changed

  • Update client-go and controller-runtime (#135).
topolvm - v0.4.5

Published by cybozu-neco over 4 years ago

Nothing changed.

topolvm - v0.4.4

Published by cybozu-neco over 4 years ago

Fixed

  • LV name duplicates (#126).
topolvm - v0.4.3

Published by cybozu-neco over 4 years ago

Nothing changed.

topolvm - v0.4.2

Published by cybozu-neco over 4 years ago

Changed

  • Set default value for option --leader-election-id (#121).
topolvm - v0.4.1

Published by cybozu-neco over 4 years ago

This release is to support Kubernetes 1.17.

topolvm - v0.4.0

Published by cybozu-neco over 4 years ago

We are proud to announce the release of version 0.4.0 of TopoLVM.

New feature

The main feature of this release is support for volume expansion.
You can use this feature with Kubernetes 1.16 by adding allowVolumeExpansion: true to your StorageClass object.

Added

  • Implement Volume expansion functionality (#101).
  • Add scheduler tuning guide (#106).
  • Deploy guide for Rancher/RKE (#108).

Contributors

  • @funkypenguin
topolvm - v0.3.0

Published by cybozu-neco over 4 years ago

New Features

Ephemeral Volume

TopoLVM now supports the CSI Ephemeral Inline Volumes feature. Many thanks to @matthias50 !!

To use ephemeral volumes, please refer to the user manual.

Make sure to update LVMd to v0.3.0 because the LVMd protocol has been extended for this feature.

Added

  • Add support for volume tags to lvmd (#86).
  • Add support for inline ephemeral volume (#93).

Changed

  • Upgrade cybozu-go/well to 1.10.0 (#85).
  • Extend the timeout for waiting for the startup topolvm-controller (#90).
  • Update CSIDriver config for k8s 1.16 for e2e while leaving legacy alone (#89).
  • Update kubebuilder and controller-tools (#95).
  • Change the author line to "The TopoLVM Authors" (#98).

Fixed

  • Fix the TopoLVM webhook to permit creating pods in advance of their PVCs (#99).

Contributors

  • @matthias50
  • @pohly
  • @ridv
topolvm - v0.2.2

Published by cybozu-neco almost 5 years ago

topolvm - v0.2.1

Published by cybozu-neco almost 5 years ago

This release is to support Kubernetes 1.16.

topolvm - v0.2.0

Published by cybozu-neco about 5 years ago

We are very proud to announce the new TopoLVM version 0.2.0!

Our kudos to Matt Martin (@matthias50) who raised many issues in production usage.

Although there are a lot of new features, we tell the most important thing first.

This version breaks backward compatibility completely so existing deployments must be uninstalled.
We are sorry for the inconveniences. After 1.0.0, we will make sure to prepare migration paths.

To uninstall TopoLVM 0.1, do:

  1. Delete all PVC (and Pod) using TopoLVM StorageClass.

  2. Delete all TopoLVM StorageClass.

  3. Delete cluster resources:

    $ kubectl delete mutatingwebhookconfigurations topolvm-hook
    $ kubectl delete ns topolvm-system
    $ kubectl delete clusterrolebindings,clusterroles \
        topolvm-system:csi-topolvm-controller topolvm-system:csi-topolvm-node topolvm-system:topolvm-hook
    $ kubectl delete crds logicalvolumes.topolvm.cybozu.com
    $ kubectl delete csidrivers topolvm.cybozu.com
    

Now let's see new features:

  • Volumes and associated Pods are cleaned up after Node deletion (#53).
  • Controller pod is now deployed using Deployment with leader election for better availability (#58).
  • kubelet exports filesystem usage stats of TopoLVM volumes as Prometheus metrics (#62).
  • Controller and node plugins implement health check (#61).

Programs and source code are heavily re-organized:

  • csi-topolvm, a unified CSI plugin, is removed.
  • topolvm-controller, a CSI controller plugin as well as custom Kubernetes controller, is added.
  • topolvm-hook is merged into topolvm-controller and removed.
  • topolvm-node is reconstructed as a CSI node plugin as well as a custom Kubernetes controller.
  • lvmetrics is merged into topolvm-node and removed.

Compare component diagrams for 0.1.2
Components for 0.1.2

and 0.2.0:
Components for 0.2.0

For the full list of changes, see CHANGELOG.

Enjoy!

P.S. We expect PVC resizing with Kubernetes 1.16 support for the next release.

topolvm - v0.1.2

Published by cybozu-neco about 5 years ago

Package Rankings
Top 2.35% on Proxy.golang.org
Badges
Extracted from project README
GitHub release Main PkgGoDev Go Report Card
Related Projects