From bb20f3c9cbbbe7665c131016822d4610571edaa7 Mon Sep 17 00:00:00 2001 From: Kai Qiang Wu Date: Thu, 7 Jan 2016 21:33:20 -0600 Subject: [PATCH] Propose Magnum Volume Integration Model This change include spec and related general architecture fig Partially-Implements: blueprint magnum-integrate-with-cinder Change-Id: I76104c17082c3173b33f0dec28f22160171fe41a --- doc/source/images/MagnumVolumeIntegration.png | Bin 0 -> 49470 bytes specs/container-volume-integration-model.rst | 512 ++++++++++++++++++ 2 files changed, 512 insertions(+) create mode 100644 doc/source/images/MagnumVolumeIntegration.png create mode 100644 specs/container-volume-integration-model.rst diff --git a/doc/source/images/MagnumVolumeIntegration.png b/doc/source/images/MagnumVolumeIntegration.png new file mode 100644 index 0000000000000000000000000000000000000000..09a1378fb369d6528d2df206c87d96d0c575ec75 GIT binary patch literal 49470 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 1.1.1 +Swarm need version >= 1.8.3, as Kubernetes 1.1.1 upgraded to that version + +Testing +======= + +Each commit will be accompanied with unit tests. There will also be +functional tests which will be used as part of a cross-functional gate +test for Magnum. + +Documentation Impact +==================== + +The Magnum Developer Quickstart document will be updated to support the +configuration flags introduced by this document. Additionally, background +information on how to use these flags will be included. + +References + +[1] http://kubernetes.io/v1.1/docs/user-guide/volumes.html + +[2] http://kubernetes.io/v1.1/examples/mysql-cinder-pd/ + +[3] https://github.com/kubernetes/kubernetes/tree/master/pkg/volume/cinder + +[3] http://docs.docker.com/engine/extend/plugins/ + +[4] https://docs.docker.com/engine/userguide/dockervolumes/ + +[5] https://github.com/emccode/rexray + +[6] http://rexray.readthedocs.org/en/stable/user-guide/storage-providers/openstack + +[7] http://docs.openstack.org/developer/magnum/ + +[8] http://docs.openstack.org/liberty/config-reference/content/section_volume-drivers.html + +[9] http://docs.openstack.org/admin-guide-cloud/blockstorage_multi_backend.html# + +[10] http://docs.openstack.org/user-guide-admin/dashboard_manage_volumes.html + +[11] https://github.com/kubernetes/kubernetes/issues/14642 + +[12] https://github.com/docker/swarm/issues/1488