Blueprint: murano-fuel-plugin

Change-Id: I4490afa95272b64ee1ea14d026db2dbb293b4317
This commit is contained in:
iberezovskiy 2016-02-02 14:00:21 +03:00 committed by Denis Egorenko
parent 7189971093
commit 24858b713a
1 changed files with 273 additions and 0 deletions

View File

@ -0,0 +1,273 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
=====================
Murano as Fuel plugin
=====================
https://blueprints.launchpad.net/fuel/+spec/murano-fuel-plugin
--------------------
Problem description
--------------------
Now Murano is aligned with Fuel releases, and if user wants to get new
Murano features for its OpenStack environment deployed by Fuel user should
wait for new Fuel release, then upgrade whole cluster (all OpenStack
components). Main problem here that Fuel releases only every six month.
The main goal of moving Murano to plugin is to provide flexibility for
Murano: to support multiple releases and versions (for some Fuel version),
also provide ability to detach Murano from controller node as separate node.
----------------
Proposed changes
----------------
Murano Fuel plugin can solve problem with getting new Murano features for
OpenStack environment deployed by Fuel. Murano as plugin for Fuel can be
continiously delivered and updated. Plugin will include Murano service packages
and upstream puppet-murano module for deployment, so support of new features
will come very fast.
User doesn't need to upgrade or reinstall whole Fuel cluster, he should
get only new Murano service packages and deployment manifests and run
upgrade script. This script will include backing up Murano database,
updating puppets for Murano and will be runned by Octane tool.
For Fuel 9.0 Murano as a plugin should support Murano Mitaka with identity
API v3 version for Murano services. Also there are two Murano features in
upstream: Glance Artifact repository and Cloud Foundry Service Broker API
features. These two feature can't work simultaneously. Hence will be added
possibility to choose only one of them.
Transition from Fuel default box to Fuel plugin deployment should follow next
way:
* We deprecate Murano deployment in Fuel 9.0, we leave an ability to deploy it
keeping puppet manifests for Murano in fuel-library, keeping UI settings
untill plugin will be prepared and tested;
* Fuel 9.0 should support same Murano deployment as it was supported in
Fuel 8.0 without any new features;
* It will not be possible to install Murano plugin with Murano enabled from
the box.
* All Murano codebase will be removed in Fuel 10.0 release.
Implementation of these transition steps means successfull transfer to Murano
plugin deployment.
Web UI
======
Murano will be deprecated on the Web UI: we will add deprecation message for
Murano and helper text, pointing to the plugin for at least one cycle.
Nailgun
=======
Nailgun tests for Murano will be removed, config in openstack.yaml fixture
will be kept. Whole Nailgun stuff will be removed in Fuel 10.0 release.
Data model
----------
None
REST API
--------
None
Orchestration
=============
RPC Protocol
------------
None
Fuel Client
===========
None
Plugins
=======
None
Fuel Library
============
All related Murano manifests in fuel-library will be kept in Fuel 9.0, but
will be removed in Fuel 10.0 release.
------------
Alternatives
------------
As alternative, manual configuration of Murano services can be used, by using
Debian/UCA/RDO packages and upstream puppet manifests. But it this way
requires expertise in Murano configuration and puppet knowledge.
--------------
Upgrade impact
--------------
It should be possible to upgrade Fuel 8.0 environment with Murano to
Fuel 9.0 environment using Murano plugin manifests and service packages.
---------------
Security impact
---------------
None
--------------------
Notifications impact
--------------------
None
---------------
End user impact
---------------
We will show warning on the Fuel Web UI that Murano deployment from box
is deprecated and it is recommended to use Fuel Murano plugin.
------------------
Performance impact
------------------
None
-----------------
Deployment impact
-----------------
When Fuel Murano deployment will be deprecated, Murano will be available
via plugin and from box for Fuel 9.0. All Murano related stuff will be removed
in Fuel 10.0 release.
On a deployment process side there are no any actual important changes - all
current Murano's features, which already exist in Fuel, will be kept. Murano
deployment from box will not support any new features.
----------------
Developer impact
----------------
None
---------------------
Infrastructure impact
---------------------
This feature requires additional CI tests for plugin repository. These CI
jobs should deploy simple Fuel environment with Murano plugin installed on
each commit to Murano plugin repository.
--------------------
Documentation impact
--------------------
Murano can be used as built in Fuel and as plugin. It will be impossible
to deploy Murano as plugin in the same time with Murano from box.
It should be noted: Murano deployment as built in Fuel is deprecated.
--------------
Implementation
--------------
Assignee(s)
===========
Primary assignee:
Denis Egorenko
Other contributors:
Ivan Berezovskiy
Victor Ryzhenkin
Mandatory design review:
Sergii Golovatiuk
Serg Melikyan
QA engineer:
Victor Ryzhenkin
Work Items
==========
* Murano service packages: murano, murano-dashboard, python-muranoclient and
other Murano dependencies which are unique for it.
* Murano puppet module and modular tasks: upstream puppet-murano module
should be used as a base for Murano deployment. In orchestration level we
should have similar modular task as we have right now in Fuel.
* Murano network and node role in Fuel: Fuel Murano network role will be
overridden by plugin. Also it should be possible to deploy standalone
Murano and Murano on controller nodes. This requires to have specific
Murano node role in plugin.
* Plugin Web UI: the same option from current Fuel Web UI will be moved to
plugin Web UI.
* Upgrade script for plugin: this script should be able to update Murano
plugin to newer version. Also it should be possible to upgrade Murano from
Fuel 8.0 environment which is going to be upgraded to 9.0 with Murano
from plugin.
* Murano OSTF tests will be kept in Fuel 9.0, without any changes and will
be removed in Fuel 10.0 release.
* Murano tests in CI: these tests should verify base Murano plugin
deployment on Fuel 9.0 and should run on every commit to Murano plugin
repository.
Dependencies
============
------------
Testing, QA
------------
* Additional Murano tests for CI should be implemented to support
Murano deployment from plugin.
* CI jobs should be implemented to tests each commit for Murano plugin
repository. These jobs should check Murano deployment and base functionaly.
Acceptance criteria
===================
Murano should be deprecated in base Fuel installation.
Murano plugin should include following components for deployment:
* Web UI with ability to use all current Murano features.
* Plugin uses upstream murano-puppet module as base for deployment.
* Puppet manifests in plugin are idempotent.
* Plugin includes Murano service packages and its dependencies which are
unique for Murano.
* End users are able to deploy Murano and its features:
CFapi and GLARE at least.
----------
References
----------
1. LP Blueprint https://blueprints.launchpad.net/fuel/+spec/murano-fuel-plugin