Merge "Spec for splitting plugins code from Sahara core"
This commit is contained in:
commit
eafb655c21
|
@ -0,0 +1,123 @@
|
||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
===========================
|
||||||
|
Plugins outside Sahara core
|
||||||
|
===========================
|
||||||
|
|
||||||
|
Plugins are a very important part of Sahara, they allow the creation of
|
||||||
|
clusters for different data processing tools and the execution of jobs on those
|
||||||
|
clusters.
|
||||||
|
This proposal is to remove the plugins code from Sahara core and create a new
|
||||||
|
project to host the plugins.
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
|
||||||
|
With the plugins code inside Sahara core we are limited to upgrade plugins
|
||||||
|
versions with the cycle milestone. It also forces the user to upgrade OpenStack
|
||||||
|
version whenever he/she needs to upgrade Sahara plugins.
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
|
||||||
|
We are going to move the plugins to its own project, releasing new versions
|
||||||
|
when we upgrade new plugins, thus allowing the users to upgrade to newer
|
||||||
|
versions without the hussle of upgrading the whole cloud.
|
||||||
|
|
||||||
|
In order to keep the projects as less coupled as possible we are implementing a
|
||||||
|
mediator under sahara/plugins that will be used as an API between the projects.
|
||||||
|
Also this API aims to facilitate manutenability of both projects.
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
Keep the plugins code as it is. Not changing will not break anything or make
|
||||||
|
things more difficult to the users.
|
||||||
|
|
||||||
|
Data model impact
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
REST API impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Other end user impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Deployer impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
User will be able to upgrade plugins versions a lot faster once this is done.
|
||||||
|
Deployer will have to keep an eye for the compatibility between sahara and
|
||||||
|
sahara-plugins if there is significant changes to the API.
|
||||||
|
|
||||||
|
There is also an impact for packagers and translators since we will need to do
|
||||||
|
one-time work to setup and copy translations in the new repository.
|
||||||
|
|
||||||
|
Developer impact
|
||||||
|
----------------
|
||||||
|
|
||||||
|
With a new project, developers will have to get used to the fact that plugins
|
||||||
|
don't live with the core anymore.
|
||||||
|
There is a new API (mediator) implemented on the sahara side that will be the
|
||||||
|
bridge between the two projects. Developers must respect that mediator and
|
||||||
|
significant changes to that will require version bumping or branching.
|
||||||
|
|
||||||
|
Image Packing impact
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Image packing using the new image generation and validation system will
|
||||||
|
require to have sahara-plugins installed as well.
|
||||||
|
|
||||||
|
Sahara-dashboard / Horizon impact
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
tellesnobrega
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Split the plugins code from Sahara core
|
||||||
|
* Bring plugins unit test to the plugins repo
|
||||||
|
* Make sure imports in sahara-plugins from sahara are well structured so not to
|
||||||
|
break with sahara changes later on
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
|
||||||
|
Move plugins tests from sahara core to sahara-plugins
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
|
||||||
|
We need to update the documentation to reflect the change and make sure users
|
||||||
|
and developers are well aware of this new structure.
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
None
|
||||||
|
|
Loading…
Reference in New Issue