During the Zed PTG it was decided to handle unsupported features in Neutron as experimental. See section titled "When we say something is not supported?", day 2 in [1]. The agreement was: "We keep existing jobs for linuxbridge driver for example, but when the tests start to fail we skip them and finally we stop the job also. To make it clear for operators we add warning logs highlighting that the given feature/driver is experimental, and introduce cfg option to enable such features explicitly." This commit implements this agreement, initially with Linuxbridge Depends-On: https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/845646 [1] https://lists.openstack.org/pipermail/openstack-discuss/2022-April/028164.html Change-Id: Ib18efa3f472736b58c8967847b1061da0e3897d7changes/81/845181/13
parent
7ebc8281e5
commit
7f0413c84c
@ -0,0 +1,37 @@
|
||||
.. _config-experimental-framework:
|
||||
|
||||
===============================
|
||||
Experimental features framework
|
||||
===============================
|
||||
|
||||
Some Neutron features are not supported because the community doesn't have
|
||||
the resources and/or technical expertise to maintain them anymore. As they
|
||||
arise, the Neutron team designates these features as experimental. Deployers
|
||||
can continue using these features at their own risk, by explicitly enabling
|
||||
them in the ``experimental`` section of ``neutron.conf``.
|
||||
|
||||
.. note::
|
||||
Of course, the Neutron core team would love to return experimetal features
|
||||
to the supported status, if interested parties step up to maintain them. If
|
||||
you are interested in maintaining any of the experimental features listed
|
||||
below, please contact the PTL shown in the
|
||||
`Neutron project page
|
||||
<https://governance.openstack.org/tc/reference/projects/neutron.html>`_.
|
||||
|
||||
The following table shows the Neutron features currently designated as
|
||||
experimetal:
|
||||
|
||||
.. table:: **Neutron Experimental features**
|
||||
|
||||
========================= ===================================
|
||||
Feature Option in neutron.conf to enable
|
||||
========================= ===================================
|
||||
ML2 Linuxbridge driver linuxbridge
|
||||
========================= ===================================
|
||||
|
||||
This is an example of how to enable the use of an experimental feature:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[experimental]
|
||||
linuxbridge = true
|
@ -0,0 +1,39 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log
|
||||
|
||||
from neutron.conf import experimental
|
||||
|
||||
|
||||
LOG = log.getLogger(__name__)
|
||||
|
||||
|
||||
CONF = cfg.CONF
|
||||
experimental.register_experimental_opts()
|
||||
|
||||
|
||||
def validate_experimental_enabled(feature):
|
||||
try:
|
||||
is_enabled = cfg.CONF.experimental[feature]
|
||||
except cfg.NoSuchOptError:
|
||||
LOG.error("Experimental feature '%s' doesn't exist", feature)
|
||||
raise SystemExit(1)
|
||||
if is_enabled:
|
||||
LOG.warning("Feature '%s' is unsupported and is treated as "
|
||||
"experimental. Use at your own risk.", feature)
|
||||
else:
|
||||
LOG.error("Feature '%s' is experimental and has to be explicitly "
|
||||
"enabled in 'cfg.CONF.experimental'", feature)
|
||||
raise SystemExit(1)
|
@ -0,0 +1,29 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
|
||||
from oslo_config import cfg
|
||||
|
||||
from neutron._i18n import _
|
||||
|
||||
EXPERIMENTAL_CFG_GROUP = 'experimental'
|
||||
EXPERIMENTAL_LINUXBRIDGE = 'linuxbridge'
|
||||
experimental_opts = [
|
||||
cfg.BoolOpt(EXPERIMENTAL_LINUXBRIDGE,
|
||||
default=False,
|
||||
help=_('Enable execution of the experimental Linuxbridge '
|
||||
'agent.')),
|
||||
]
|
||||
|
||||
|
||||
def register_experimental_opts(cfg=cfg.CONF):
|
||||
cfg.register_opts(experimental_opts, EXPERIMENTAL_CFG_GROUP)
|
@ -0,0 +1,19 @@
|
||||
---
|
||||
prelude: >
|
||||
Introduce the experimental features framework.
|
||||
features:
|
||||
- |
|
||||
Some Neutron features are not supported due to lack of resources or
|
||||
technical expertise to maintain them. As they arise, those features will
|
||||
be marked as experimental by the Neutron core team.
|
||||
Deployers will be able to continue using experimental features by
|
||||
explicitly enabling them in the 'experimental' section of neutron.conf.
|
||||
The ML2 linuxbridge driver is the first feature to be marked as
|
||||
experimental. To continue using it, deployers have to set to True the
|
||||
'linuxbridge' option in the 'experimental' section of neutron.conf.
|
||||
deprecations:
|
||||
- |
|
||||
The ML2 linuxbridge agent has been marked as experimental due to lack
|
||||
of resources to maintain it. To continue using it, deployers have to set
|
||||
to True the 'linuxbridge' option in the 'experimental' section of
|
||||
neutron.conf
|
Loading…
Reference in new issue