contiv-experimental / volplugin

**EXPERIMENTAL** Contiv Storage: Policy backed Clustered Storage (via Ceph or NFS) for Docker
Other
220 stars 29 forks source link
ceph contiv-storage docker kubernetes mesos nfs storage volume

Build-Status ReportCard

volplugin: cluster-wide volume management for container ecosystems

Note: Most of this documentation is about the open source project. If you came to try Contiv, read our documentation.

volplugin controls Ceph RBD or NFS devices, in a way that makes them easy to use for devs with docker, and flexible to configure for ops. Reference your volumes with docker from anywhere your storage is available, and they are located and mounted. Works great with Compose and Swarm, now Mesos too!

Our profiles system makes instantiating lots of similar class volumes a snap, allowing for a variety of use cases:

volplugin currently only supports Docker volume plugins. First class scheduler support for: Kubernetes and Mesos will be available before the first stable release.

volplugin is still alpha at the time of this writing; features and the API may be extremely volatile and it is not suggested that you use this in production.

Try it out

This will start the suite of volplugin tools in containers from the contiv/volplugin image. It will do the work of configuring docker for you. Note that you must have a working ceph environment that volplugin can already use.

$ docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock contiv/volplugin-autorun

If you get an error like "mountpoint / is not a shared mount", set MountFlags=shared in your systemd unit file for docker. It will most likely be set to slave instead.

Development Instructions

Our Getting Started instructions should be the first thing you read. The prerequisites are absolutely necessary.

Please see our CONTRIBUTING document as well.

Please read the Makefile for most targets. If you make build you will get apiserver/volplugin/volcli installed on the guests, so make run-build if you want a go install'd version of these programs on your host. apiserver/volplugin do not run on anything but linux (you can use volcli, however, on other platforms).

make start will start the development environment. make stop stops, and make restart rebuilds it.

If you wish to run the tests, make test. The unit tests (make unit-test) live throughout the codebase as *_test files. The system tests / integration tests (make system-test) live in the systemtests directory. Note that make system-test will not successfully run on OSX due to dependencies on unavailable libraries.