Blueprint: murano-fuel-plugin
Change-Id: I4490afa95272b64ee1ea14d026db2dbb293b4317
This commit is contained in:
parent
7189971093
commit
24858b713a
273
specs/9.0/murano-fuel-plugin.rst
Normal file
273
specs/9.0/murano-fuel-plugin.rst
Normal 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
|
Loading…
Reference in New Issue
Block a user