Fuel plugin 2.0 for contrail spec added
Change-Id: Id6ae09bc43c90a4dc211302c6bb2a10a8eab801e
This commit is contained in:
parent
84fad847a4
commit
eb0b4b4af5
133
specs/spec-2.0.rst
Normal file
133
specs/spec-2.0.rst
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
==============================
|
||||||
|
Fuel Contrail plugin 2.0 specs
|
||||||
|
==============================
|
||||||
|
|
||||||
|
|
||||||
|
Get rid of fabric scripts
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Contrail plugin 1.0 uses fabric scripts shipped by Juniper within their Contrail packages.
|
||||||
|
We should get rid of fabric scripts and implement puppet-driven installation.
|
||||||
|
|
||||||
|
Reasons
|
||||||
|
-------
|
||||||
|
* Fabric makes installation process complex and hard to debug.
|
||||||
|
* Fabric scripts behaviour is not idempotent. It’s quite important for normal Fuel operation. We use some dirty hacks to accomplish it for now.
|
||||||
|
* Puppet is a native way to install and configure things in Fuel.
|
||||||
|
* Fabric scripts make impossible by design to use plugin with Opencontrail
|
||||||
|
|
||||||
|
Proposed solution
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Eliminate “contrail::run_fabric” class and all its invocations in favor of puppet manifests.
|
||||||
|
|
||||||
|
Such as:
|
||||||
|
run_fabric { 'prov_control_bgp'}
|
||||||
|
run_fabric { 'prov_external_bgp'}
|
||||||
|
run_fabric { 'prov_metadata_services'}
|
||||||
|
run_fabric { 'prov_encap_type'}
|
||||||
|
run_fabric { 'install_database'}
|
||||||
|
run_fabric { 'setup_database'}
|
||||||
|
run_fabric { 'install_cfgm'}
|
||||||
|
run_fabric { 'install_control'}
|
||||||
|
run_fabric { 'install_collector'}
|
||||||
|
run_fabric { 'install_webui'}
|
||||||
|
run_fabric { 'setup_contrail_keepalived'}
|
||||||
|
run_fabric { 'fixup_restart_haproxy_in_collector'}
|
||||||
|
run_fabric { 'fix-service-tenant-name'}
|
||||||
|
run_fabric { 'setup_cfgm'}
|
||||||
|
run_fabric { 'setup_control'}
|
||||||
|
run_fabric { 'setup_collector'}
|
||||||
|
run_fabric { 'setup_webui'}
|
||||||
|
|
||||||
|
Provide better support for multiple L2 segments in plugin-enabled environments
|
||||||
|
==============================================================================
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
The Fuel Contrail Plugin version 1.0 uses Neutron with VLAN segmentation as the only network type supported.
|
||||||
|
This network type does not fully support Node groups feature introduced in Fuel 6.0 to simplify the deployments in multi-rack environments with different L2 network in each rack.
|
||||||
|
|
||||||
|
Proposed solution
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Update the plugin to support Neutron with GRE segmentation Fuel network type and use Private network settings set in Fuel Web UI.
|
||||||
|
|
||||||
|
Use “plugin role” feature from Fuel 7.0
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Plugin installation process is complex and not obvious for end users because of workaround with base-os role and mandatory node_user_name for every node with plugin functions.
|
||||||
|
|
||||||
|
Proposed solution
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Rewrite plugin logic to drop the workaround and utilize new plugin SDK feature Plugin role to enable selection of plugin-defined node roles for end-user.
|
||||||
|
|
||||||
|
Related blueprints
|
||||||
|
------------------
|
||||||
|
https://blueprints.launchpad.net/fuel/+spec/role-as-a-plugin
|
||||||
|
|
||||||
|
Use Neutron supported by Mirantis
|
||||||
|
=================================
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Contrail-enabled OpenStack environment is using juniper-shipped Neutron which is not supported by Mirantis. Updates and security fixes for Neutron component should be applied manually.
|
||||||
|
|
||||||
|
Proposed solution
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Use Mirantis OpenStack Neutron running on OpenStack controllers instead of shipped by Juniper one.
|
||||||
|
Automate installation of contrail neutron plugin on controllers.
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
|
||||||
|
- Oleksandr Martsyniuk <omartsyniuk@mirantis.com> - feature lead, developer
|
||||||
|
|
||||||
|
Other contributors:
|
||||||
|
|
||||||
|
- Vyacheslav Struk <vstruk@mirantis.com> - developer
|
||||||
|
|
||||||
|
Project manager:
|
||||||
|
|
||||||
|
- Andrian Noga <anoga@mirantis.com>
|
||||||
|
|
||||||
|
Quality assurance:
|
||||||
|
|
||||||
|
- Oleksandr Kosse <okosse@mirantis.com> - qa
|
||||||
|
- Iryna Vovk <ivovk@mirantis.com> - qa
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Create pre-dev environment and manually deploy Contrail software
|
||||||
|
* Create Fuel plugin bundle, which contains deployments scripts, puppet modules and metadata
|
||||||
|
* Extend the puppet module with the following functions:
|
||||||
|
|
||||||
|
- full puppet-based Contrail controllers deployment and configuration
|
||||||
|
- support Neutron with GRE segmentation network type in Fuel
|
||||||
|
- contrail neutron plugin installation
|
||||||
|
- support plugin-based node role
|
||||||
|
|
||||||
|
* Test Contrail plugin version 2.0
|
||||||
|
|
||||||
|
- Update tests and test plans to cover new functionality
|
||||||
|
|
||||||
|
* Update Documentation
|
||||||
|
|
||||||
|
- Documentation should content explicit statement about impossibilty of upgrading 1.0 to 2.0 because of plugin framework restrictions.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user