Deprecates old OpenContrail driver
The first OpenContrail Driver was not developed with production ready in mind, it was more a proof of concept. We do not recommend to use it in production. Instead a production ready driver is available in the OpenContrail monolithic Neutron core plugin tree. This patch deprecates the driver in the Queens release and we plan to completly remove it in Rocky release. Change-Id: I07a7e462e174207499f0641a15467a7122447b7e Partial-Bug: #1743820
This commit is contained in:
5 changed files with 80 additions and 54 deletions
@@ -19,35 +19,36 @@ supported with each driver.
Driver Compatibility Matrix
---------------------------
+-------------------------------------------+--------------------------------------------------+
| API | Driver |
+---------------------+---------------------+-----------+--------------+--------------+--------+
| Object | Attribute | Neutron | OpenContrail | OpenDaylight | Nuage |
| | | w. bagpipe| | | |
| | +-------+---+------+-------+-------+------+ |
| | | ovs |lnx|v1 | v2 | v1 | v2 | |
+=====================+=====================+=======+===+======+=======+=======+======+========+
| bgpvpn | base object | Yes | Yes | Yes | Yes | Yes | Yes |
| +---------------------+-----------+------+-------+-------+------+--------+
| | route_distinguisher | No | No | No | Yes | Yes | Yes |
| +---------------------+-----------+------+-------+-------+------+--------+
| | route_targets | Yes | Yes | Yes | Yes | Yes | Yes |
| +---------------------+-----------+------+-------+-------+------+--------+
| | import_targets | Yes | Yes | Yes | Yes | Yes | Yes |
| +---------------------+-----------+------+-------+-------+------+--------+
| | export_targets | Yes | Yes | Yes | Yes | Yes | Yes |
| +-------+-------------+-------+---+------+-------+-------+------+--------+
| | | L3 | Yes |Yes| Yes | Yes | Yes | Yes | Yes |
| | type +-------------+-------+---+------+-------+-------+------+--------+
| | | L2 |(note) |Yes| No | ? | No | ? | ? |
+---------------------+-------+-------------+-------+---+------+-------+-------+------+--------+
| network_association | base object | Yes | Yes | Yes | Yes | Yes | No |
+---------------------+---------------------+-----------+------+-------+-------+------+--------+
| router_association | base object | Yes | No | Yes | Yes | Yes | Yes |
+---------------------+---------------------+-----------+------+-------+-------+------+--------+
+-------------------------------------------+---------------------------------------------------+
| API | Driver |
+---------------------+---------------------+-----------+---------------+--------------+--------+
| Object | Attribute | Neutron | OpenContrail | OpenDaylight | Nuage |
| | | w. bagpipe| | | |
| | +-------+---+-------+-------+-------+------+ |
| | | ovs |lnx|v1 [#]_| v2 | v1 | v2 | |
+=====================+=====================+=======+===+=======+=======+=======+======+========+
| bgpvpn | base object | Yes | Yes | Yes | Yes | Yes | Yes |
| +---------------------+-----------+-------+-------+-------+------+--------+
| | route_distinguisher | No | No | No | Yes | Yes | Yes |
| +---------------------+-----------+-------+-------+-------+------+--------+
| | route_targets | Yes | Yes | Yes | Yes | Yes | Yes |
| +---------------------+-----------+-------+-------+-------+------+--------+
| | import_targets | Yes | Yes | Yes | Yes | Yes | Yes |
| +---------------------+-----------+-------+-------+-------+------+--------+
| | export_targets | Yes | Yes | Yes | Yes | Yes | Yes |
| +-------+-------------+-------+---+-------+-------+-------+------+--------+
| | | L3 | Yes |Yes| Yes | Yes | Yes | Yes | Yes |
| | type +-------------+-------+---+-------+-------+-------+------+--------+
| | | L2 |No [#]_|Yes| No | Yes | No | ? | ? |
+---------------------+-------+-------------+-------+---+-------+-------+-------+------+--------+
| network_association | base object | Yes | Yes | Yes | Yes | Yes | No |
+---------------------+---------------------+-----------+-------+-------+-------+------+--------+
| router_association | base object | Yes | No | Yes | Yes | Yes | Yes |
+---------------------+---------------------+-----------+-------+-------+-------+------+--------+
.. note::
Support for BGPVPNs of type L2 with Neutron/bagpipe is supported
.. [#] OpenContrail driver v1 has been deprecated in favor of the production
ready `driver v2`_. Warning, **no** migration path is planned.
.. [#] Support for BGPVPNs of type L2 with Neutron/bagpipe is supported
with linuxbridge agents. The support for OVS agents is being worked on
in the Queens cycle.
in the Queens cycle.
.. _driver v2: https://github.com/Juniper/contrail-neutron-plugin/tree/master/neutron_plugin_contrail/plugins/opencontrail/networking_bgpvpn
@@ -6,35 +6,36 @@ Introduction
------------
The **OpenContrail** driver for the BGPVPN service plugin is designed to work
jointly with the `OpenContrail SDN controller<http://www.opencontrail.org/>`__
(`GitHub <https://github.com/Juniper/contrail-controller>`__).
There are two versions of the driver. `Version 1`_ and `version 2`_.
jointly with the `OpenContrail SDN controller`_ (`GitHub`_). The BGP VPN driver
can be found in the `monolithic Neutron plugin tree`__ [#]_.
.. _Version 1: https://github.com/openstack/networking-bgpvpn/tree/master/networking_bgpvpn/neutron/services/service_drivers/opencontrail
.. _Version 2: https://github.com/Juniper/contrail-neutron-plugin/tree/master/neutron_plugin_contrail/plugins/opencontrail/networking_bgpvpn
.. Warning::
The `old OpenContail driver`_ has been deprecated in Queens release in favor
of the production ready `driver`_ and plan to be completly removed in Rocky
release. Be careful, **no** migration path is planned.
Limitations
-----------
VPN Type
~~~~~~~~
The OpenContrail driver for the BGPVPN service plugin can create only L3 VPN
type. The L2 is not yet supported.
Route Distinguishers
~~~~~~~~~~~~~~~~~~~~
The OpenContrail driver for the BGPVPN service plugin does not permit
specifying `route distinguisher`_.
Router Association
~~~~~~~~~~~~~~~~~~
Resource Association
~~~~~~~~~~~~~~~~~~~~
The OpenContrail driver for the BGPVPN service plugin does not support
`associations with routers`_. Only `network associations`_ are available for the
moment.
The OpenContrail driver for the BGPVPN service plugin does not yet support
`association with ports`_. But it supports `network associations`_ and `router
associations`_.
VPN Type
~~~~~~~~
The OpenContrail driver for the BGPVPN service plugin can create L2 & L3 VPN
types for network associations and L3 VPN type for router association.
How to use ?
------------
@@ -57,7 +58,7 @@ A `devstack plugin`_ can be used to setup an OpenContrail dev/test platform.
* Here a proposed devstack ``local.conf`` file which permits to deploy
OpenStack keystone, glance, nova, neutron/networking-bgpvpn and
compile/install all OpenContrail services and dependences:
compile/install all OpenContrail services and dependencies:
.. code-block:: bash
@@ -90,9 +91,16 @@ A `devstack plugin`_ can be used to setup an OpenContrail dev/test platform.
enable_plugin contrail https://github.com/zioc/contrail-devstack-plugin.git
enable_plugin networking-bgpvpn git://git.openstack.org/openstack/networking-bgpvpn.git
NETWORKING_BGPVPN_DRIVER="BGPVPN:OpenContrail:networking_bgpvpn.neutron.services.service_drivers.opencontrail.opencontrail.OpenContrailBGPVPNDriver:default"
NETWORKING_BGPVPN_DRIVER="BGPVPN:OpenContrail:neutron_plugin_contrail.plugins.opencontrail.networking_bgpvpn.contrail.ContrailBGPVPNDriver:default"
.. _route distinguisher : https://developer.openstack.org/api-ref/networking/v2/#on-route-distinguishers-rds
.. _associations with routers : https://developer.openstack.org/api-ref/networking/v2/#router-associations
.. _network associations : https://developer.openstack.org/api-ref/networking/v2/#network-associations
.. _devstack plugin : https://github.com/zioc/contrail-devstack-plugin
.. [#] That driver requires OpenContrail release upper or equal to 4.0
.. _OpenContrail SDN controller: http://www.opencontrail.org/
.. _GitHub: https://github.com/Juniper/contrail-controller
.. _driver: https://github.com/Juniper/contrail-neutron-plugin/tree/master/neutron_plugin_contrail/plugins/opencontrail/networking_bgpvpn
__ driver_
.. _old OpenContail driver: https://github.com/openstack/networking-bgpvpn/tree/stable/queens/networking_bgpvpn/neutron/services/service_drivers/opencontrail
.. _route distinguisher: https://developer.openstack.org/api-ref/networking/v2/#on-route-distinguishers-rds
.. _router associations: https://developer.openstack.org/api-ref/networking/v2/#router-associations
.. _network associations: https://developer.openstack.org/api-ref/networking/v2/#network-associations
.. _association with ports: https://developer.openstack.org/api-ref/network/v2/#port-associations
.. _devstack plugin: https://github.com/zioc/contrail-devstack-plugin
@@ -15,6 +15,7 @@
import uuid
from debtcollector import removals
from oslo_log import log
from oslo_serialization import jsonutils
from oslo_utils import uuidutils
@@ -34,7 +35,14 @@ OPENCONTRAIL_BGPVPN_DRIVER_NAME = 'OpenContrail'
LOG = log.getLogger(__name__)
MESSAGE = ("replaced by a new driver which could be found in the Contrail "
"Neutron monolithic core plugin tree: 'neutron_plugin_contrail."
"plugins.opencontrail.networking_bgpvpn.contrail."
"ContrailBGPVPNDriver'")
@removals.removed_class('OpenContrailBGPVPNDriver', version='Queens',
removal_version='Rocky', message=MESSAGE)
class OpenContrailBGPVPNDriver(driver_api.BGPVPNDriverBase):
"""BGP VPN Service Driver class for OpenContrail."""
@@ -0,0 +1,9 @@
---
prelude:>
Deprecates old OpenContrail driver
deprecations:
- |
The first OpenContrail Driver was not developed with production ready in
mind, it was more a proof of concept. We do not recommend to use it in
production. Instead a production ready driver is available in the
OpenContrail monolithic Neutron core plugin tree.
@@ -12,4 +12,4 @@ oslo.utils>=3.33.0 # Apache-2.0
sphinxcontrib-blockdiag>=1.5.4 # BSD
sphinxcontrib-seqdiag>=0.8.4 # BSD
neutron-lib>=1.12.0 # Apache-2.0
debtcollector>=1.2.0 # Apache-2.0
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.