From 7c06ab5a9b4bdf3817a41c46be243e92d0338525 Mon Sep 17 00:00:00 2001 From: xiaolihope Date: Mon, 16 May 2016 11:44:20 +0800 Subject: [PATCH] Support devstack plugin in heat This spec is amied to support devstack plugin in heat. Change-Id: I93fbe10381cd55a759674721a1f4c912091b2a2e Blueprint: heat-support-devstack-plugin --- specs/newton/devstack-plugin.rst | 97 ++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 specs/newton/devstack-plugin.rst diff --git a/specs/newton/devstack-plugin.rst b/specs/newton/devstack-plugin.rst new file mode 100644 index 00000000..dc7a1c9c --- /dev/null +++ b/specs/newton/devstack-plugin.rst @@ -0,0 +1,97 @@ +.. + This work is licensed under a Creative Commons Attribution 3.0 Unported + License. + + http://creativecommons.org/licenses/by/3.0/legalcode + +======================= +Devstack plugin support +======================= + +https://blueprints.launchpad.net/heat/+spec/heat-support-devstack-plugin + +DevStack supports a standard mechanism for including plugins from external +repositories. So add devstack plugin for heat. + +Problem description +=================== + +Devstack support external plugins as documented here: +http://docs.openstack.org/developer/devstack/plugins.html +By enabling this plugin, we just need to properly set up devstack +local[rc] file to be able to setup heat. +A good example is ironic one: +https://review.openstack.org/#/q/topic:ironic-devstack-plugin + +Proposed change +=============== + +1. Introduce devstack plugin. + + An external git repository that includes a devstack/ top level directory. + Inside this directory there can be the following files:: + + devstack/ + override-defaults + settings + plugin.sh + lib/ + + plugin.sh is the actual plugin. It is executed by devstack at well defined + points during a stack.sh run. + + Plugins are registered by adding the following to the localrc section of + local.conf. They are added in the following format:: + + [[local|localrc]] + enable_plugin heat https://git.openstack.org/openstack/heat + + The detailed introduction is here: + http://docs.openstack.org/developer/devstack/plugins.html + +2. Steps to support devstack plugin in heat. + +step1: Copy devstack code to heat tree. + +step2: Add devstack plugin +This adds the actual devstack plugin, devstack should not run the heat code +in the devstack tree. + +step3: Add a heat job to use devstack plugin. +After heat has a devstack plugin in tree. Make a job to be able to test that +it works, non-voting, before we actually switch everything over and drop the +devstack code. + +step4. Switch all heat jobs to use devstack plugin + +step5. Remove heat code from project openstack-dev/devstack + + +Alternatives +------------ + +Implementation +============== + +Assignee(s) +----------- + +Primary assignee: + dixiaoli + +Milestones +---------- + +Target Milestone for completion: + newton-1 + +Work Items +---------- + +- Copy devstack code to heat tree. +- Add devstack plugin +- Switch all heat jobs to use devstack plugin +- Remove heat code from project openstack-dev/devstack + +Dependencies +============