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