This change updates sample OVN local.conf files in order
to enable q-qos service and compile kernel module.
Some distros, like Ubuntu Bionic, doesn't support ovs meters
with default shipped kernel.
Change-Id: I6c4878c8718e42814f50f8f7eba86cfde49e18d5
This patch adds QoS service plugin and enable QoS
tests whiel using OVN as a backend.
Note that:
* We need to compile OVS kernel module, in order to support
OpenFlow Meter action in Ubuntu [1]
* Because of bug [2] for now we need also to create the integration
bridge with specified OpenFlow version 1.3.
* Added qos extension to the list of neutron extensions in tempest
config file to be able to run qos related tests.
[1] https://mail.openvswitch.org/pipermail/ovs-discuss/2018-December/048009.html
[2] https://bugzilla.redhat.com/show_bug.cgi?id=1782834
Co-Authored-By: Slawek Kaplonski <skaplons@redhat.com>
Change-Id: I175511acef0e661bd1f282f37b1e528959c118a5
There are usecases where ovn-northd is running standalone with ovs, the
suggested local.conf is among the sample files (see: [0]). The service
however doesn't start as it needs OVS to run. This patch makes OVS
installed and started by ovn devstack plugin if ovn-northd is enabled in
local.conf.
[0]: https://opendev.org/openstack/neutron/src/branch/master/devstack/ovn-db-local.conf.sample
Change-Id: Ib12a076e50f010464735c6779d0e67bb218b66be
Closes-Bug: #1871730
ovn-local.conf.sample had a "disable_service n-net" in it
that has no effect since devstack dropped it last year.
Trivialfix
Change-Id: I69ba4be4a84720847e38169d2f49145effb3cb98
Looks like this was initially missed on the OVN migration,
but after talking with Octavia, this setup should really
all live here since it's SDN-specific things that are
being configured.
Content basically copied from the octavia devstack/plugin.sh
script with some small modifications to support OVN.
Change-Id: Idb80cd164c6b41ca6636373696a9a1e7f19b5e62
OVN 20.03 (v20.03.0 tag) is the new stable released version of OVN which
is compatible with the OVS 2.13 version, also bumped in this review.
The patch also updates the use_new_ovn_repository to strip all
non-numeric characters of the branch name when comparing the versions,
that way we can compare branch-<version> against v<version> version
formats.
Change-Id: I06f06fbc42c625ad2deab03a92238ae5e68d9033
Signed-off-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
OVN makes use of TLS for authorization and authentication of its
peers and it does not really make sense to deploy without it.
Let's reflect this fact in the functional tests.
Change-Id: Ibaec2043a45c52cffba0a5ca376eaa453e62df5a
Related-Bug: #1847032
Related-Bug: #1850160
In local dev environments devstack may be configured to clone
a component from a git repo with a working directory, for example:
$HOME/src/ovn/.git
The original logic took the the base name without the .git extension
as the repo name to use - for this path that is the empty string,
which of course did not work.
This change supplies a meaningful default repo name for cases like this.
Change-Id: I3a2796f67d7f0634b1f25d44f4fa229d31ef9cc1
The sanity checks related to neutron-server config only make sense
when q-svc service is enabled. When building a devstack without q-svc
(for example a compute-only devstack) do not force this configuration
to be present where it's meaningless.
Change-Id: I5b9176d4a55a826f498e367f1f02569429dbe546
... to q-ovn-metadata-agent.
To the best of my understanding we decided to keep using the
neutron-legacy devstack module since it is the one used in the gate:
http://lists.openstack.org/pipermail/openstack-discuss/2019-December/thread.html#11544
And we merge new features like the ovn migration only working with
neutron-legacy:
https://review.opendev.org/696592
It seems to me we were a bit inconsistent in naming devstack service
'neutron-ovn-metadata-agent' since legacy style devstack service
names start with 'q-'.
For example this sample config is broken:
https://opendev.org/openstack/neutron/src/branch/master/devstack/ovn-compute-local.conf.sample#L31-L35
stack.sh dies with:
lib/neutron: line 368: neutron_plugin_create_nova_conf: command not found
Because not having a single 'q-' service in that enabled service list
we trip up devstack's 'is_neutron_legacy_enabled' check:
e51cbf0ea9/lib/neutron (L127-L135)
This change renames devstack service neutron-ovn-metadata-agent
to q-ovn-metadata-agent.
I'm not proud to propose this change in 2020 (circa 5 years after
the rename from Quantum to Neutron) so let me know if you see a better
way. :-)
Change-Id: I507a3426e2b63bff49891bd5a51fa9d9999a0ffa
We will soon have different version for OVN and OVS, this patch is
splitting the OVN_BRANCH and OVS_BRANCH variables in the DevStack
module.
Change-Id: Icf32d168d177268afeb02c95084543d97f4f07e6
Signed-off-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
Move networking-ovn/vagrant into neutron/tools/ovn_vagrant
Also added two sample local.conf files for a DB-only and
VTEP nodes.
Co-Authored-By: zhangyanxian <zhangyanxianmail@163.com>
Co-Authored-By: chen-li <shchenli@cn.ibm.com>
Co-Authored-By: Russell Bryant <rbryant@redhat.com>
Co-Authored-By: Kyle Mestery <mestery@mestery.com
Co-Authored-By: Miguel Angel Ajo <majopela@redhat.com>
Co-Authored-By: Richard Theis <rtheis@us.ibm.com>
Co-Authored-By: JUNJIE NAN <nanjj@cn.ibm.com>
Co-Authored-By: Flavio Fernandes <flavio@flaviof.com>
Co-Authored-By: John Kasperski <jckasper@us.ibm.com>
Co-Authored-By: Matthew Kassawara <mkassawara@gmail.com>
Co-Authored-By: venkatamahesh <venkatamaheshkotha@gmail.com>
Co-Authored-By: Tong Li <litong01@us.ibm.com>
Co-Authored-By: venkata anil <anilvenkata@redhat.com>
Co-Authored-By: Vu Cong Tuan <tuanvc@vn.fujitsu.com>
Co-Authored-By: RYAN D. MOATS <rmoats@us.ibm.com>
Change-Id: I12966d5548a60b46edd5c84ee0035eb11671fd8c
Partially-Implements: blueprint neutron-ovn-merge
In order to add another compute node to an existing DevStack setup
(multi-node) we need to set a few extra variables to the local.conf to
enable the OVN driver in neutron.
The patch is also adding a new neutron_plugin_create_nova_conf function
to the ovn_agent module (no-op) otherwise the DevStack setup will fail.
Change-Id: I4d53f7206f151dc7ffa51b4c8bd601279aa88a46
Signed-off-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
There are variables in devstack that should be used
for services listening endpoints which change depending
on what SERVICE_IP_VERSION is set to, 4 or 6. Use them
in the ovn_agent script to support IPv6.
Change ovsdb-server to listen on [$SERVICE_LOCAL_HOST]
if IPv6, else 127.0.0.1 if IPv4.
Change ovn-northd to listen on 0.0.0.0 instead of
$SERVICE_LISTEN_ADDRESS.
Un-quote the metadata host address if it is IPv6, i.e.
2001:db8::1, not [2001:db8::1].
Closes-bug: #1860612
Change-Id: I5e9b6b70b502caf9dd6ec78f293f9d4b5b45e360
This patch is providing a sample local.conf file for deploying OVN with
DevStack.
Change-Id: Iaba0233ead60cccd2d0fc6691133ec3e56ae07df
Signed-off-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
devstack/lib/ovn_agent previously hardcoded the expectation that there
is a group with the same name as $STACK_USER. This group exists in a
default Ubuntu installation, but not in all possible systems.
This change starts all services previously using this group under
$STACK_USER's actual primary group.
Change-Id: I2015157e07f8284199cd4926d7d83bc1bb637339
This patch is changing DevStack to deploy with the local OVN driver
(instead of the networking-ovn old repo).
A few tweaks were needed in the code in order to get it to work, more
precisely:
* OVN metadata configuration was pointing to some module variables that
didn't exist.
* OVN metadata configuration generation was missing
Below is the following configuration needed in the local.conf to deploy
OVN:
[[local|localrc]]
enable_plugin neutron https://opendev.org/openstack/neutron
Q_AGENT=ovn
Q_ML2_PLUGIN_MECHANISM_DRIVERS=ovn,logger
Q_ML2_PLUGIN_TYPE_DRIVERS=local,flat,vlan,geneve
Q_ML2_TENANT_NETWORK_TYPE="geneve"
enable_service ovn-northd
enable_service ovn-controller
enable_service neutron-ovn-metadata-agent
disable_service n-net
enable_service q-svc
disable_service q-agt
disable_service q-l3
disable_service q-dhcp
disable_service q-meta
Change-Id: I0b899a33943550a53822d1d057cdee525cbbc6ec
Signed-off-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
use_new_ovn_repository function is used to determine whether
OVN source is co-located with OVS repo or if it is post-split [1].
In a nutshell, OVS versions 'branch-2.13' and newer are on a
separate repo [2].
The existing implementation only looks at minor portion of version
to determine if OVN is post-split, which is not future proof.
Since 'M' comes after 'B', the logic sees 'master' as newer
than 'branch-2.12', which is actually the wanted behavior.
[1]: f3e24610ea
[2]: https://github.com/ovn-org/ovn
Change-Id: I7abeb05ea53b6eeced77ca9490a9bb7c5c07c64c
Signed-off-by: Flavio Fernandes <flaviof@redhat.com>
Co-authored-by: Terry Wilson <twilson@redhat.com>
As described in [0] a new attribute ``dns_publish_fixed_ip`` is added
to subnets, allowing to specify directly whether DNS records should be
published for this subnet. This overrides the previous behaviour that
makes this decision based on various properties of the network that
the subnet is contained in, see [1].
[0] https://launchpad.net/bugs/1784879
[1] https://docs.openstack.org/neutron/latest/admin/config-dns-int-ext-serv.html
Change-Id: I14605ead2694d9e9422b3d7b519aed2e3c340e2a
Partial-Bug: 1784879
This patch is moving the DevStack module to deploy OVN to the Neutron
DevStack plugin.
As a first step, this plugin will continue to use the
openstack/networking-ovn repository and, as we advance into the mergings
steps we will modify this plugin (just few lines) to use the code in
the Neutron repository itself.
TODO's where left in the code on top of all the bits that will change
once the networking-ovn code is merged into Neutron.
Below is a snippet of the what needs to be enabled in local.conf to get
OVN deployed:
[[local|localrc]]
enable_plugin neutron https://opendev.org/openstack/neutron
Q_AGENT=ovn
Q_ML2_PLUGIN_MECHANISM_DRIVERS=ovn,logger
Q_ML2_PLUGIN_TYPE_DRIVERS=local,flat,vlan,geneve
Q_ML2_TENANT_NETWORK_TYPE="geneve"
Partially-Implements: blueprint neutron-ovn-merge
Change-Id: I24ab11ab923339959eecfbaed79a3ceadc4a87f4
Signed-off-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
The admin part of the designate implementation, never
passes the region or url to client. This means that it
may fail in multi-region situations.
We fix this by always passing the endpoint
override to the client every-time it's instantiated.
We also add an alternative uri for devstack
when a designate-api port isn't set.
Closes-Bug: #1845891
Change-Id: Ia86c3177f1c0a1909a35e55e63b60aec5167124d
This commit adds possibility to configure L3 conntrack_helper
service plugin and l3 extension with devstack plugin.
Related-Bug: #1823633
Change-Id: Ie96ff80f1c296c40ec2cd82c8d917a8bb262b12e
No longer build the OVS kernel modules when installing from
source. This was added when OVS didn't support conntrack,
which hasn't been the case for a while.
This is breaking one of the networking-ovn repos periodic jobs.
Depends-on: https://review.opendev.org/#/c/680066/
Change-Id: Ia9cc8f3ee11802f51317eb0e7c82fadd1c15c4b4
Closes-bug: #1830248
In change https://review.opendev.org/#/c/661065/ we stopped
compiling openvswitch from source, which was always doing
a reload of the kernel module. We've seen in some cases
the module isn't loaded, so change to always load the
module unconditionally to avoid this.
Change-Id: I2ac2aa4cc84d6f5ac62bc8c7aec67ac17d89c614
Closes-bug: #1845324
Function "configure_auth_token_middleware" was deprecated in devstack
in [1].
Patch [1] also introduced regression which cause failures in neutron's
neutron-tempest-plugin-designate-scenario job.
New function configure_keystone_authtoken_middleware should be used
instead.
This patch switches to use this new function to solve problem
caused by patch [1] when old function is used.
[1] https://review.opendev.org/#/c/628651/
Change-Id: I96d69bc7a1489377b5e95965e95dc3d3f2f3a933
Closes-Bug: #1834849
When openvswitch firewall driver is used, it is required to load
nf_conntrack_proto_gre kernel module to make GRE tunnels from VM to VM
working properly.
This patch adds such info in ovs firewall documentation as it should be
deployer decision to load or not load this module.
This patch also adds sanity check which checks if nf_conntrack_proto_gre
module is loaded or not, and can warn user when this module is not
loaded.
It also adds loading of this kernel module in neutron devstack plugin.
Change-Id: Ic97ca00c804f0a540ee0dc53d9e4e07bf8410869
Closes-Bug: #1828053
This patch implements devstack plugin for network-segment-range api.
The network-segment-range api service is based on network-segment-range
spec [1].
[1] https://specs.openstack.org/openstack/neutron-specs/specs/stein/network-segment-range-management.html
Co-authored-by: Allain Legacy <Allain.legacy@windriver.com>
Partially-implements: blueprint network-segment-range-management
Change-Id: I09116a4323763db12917e03f354cf0ef25289fd0
When openvswitch module is loaded by modprobe in [1], if virtual
interface "ovs-system" exists, it causes the error " modprobe:
FATAL: Module openvswitch is in use."
This patch will check "ovs-system" exists or not, then delete it
before load openvswitch module.
[1] https://github.com/openstack/neutron/blob/master/devstack/lib/ovs#L92
Change-Id: I750bd74d1d07a73b57924b84f3d8506e6063936c
This patch implements the L3 agent side router gateway IP rate
limit. For routers in centralized snat node (network node),
the tc rules will be set on the corresponding device in router
namespace:
1. Legacy and HA router, qrouter-namespace and qg-device
2. Dvr (edge) router, snat namespace and qg-device
If gateway IP rate limit was set, then under the same router,
all the VMs without floating IP will share the bandwidth.
Partially-Implements blueprint: router-gateway-ip-qos
Closes-Bug: #1757044
Change-Id: Ie92ff0d4df0e85ce71c7d50f34ea6ff973812af8
This commit adds possibility to configure fip port_forwarding
service plugin and l3 extension with devstack plugin.
Change-Id: If01dd1db1b4a44ba2f7e2d8f8326e331f9dc79e9
If the host OS is using an older kernel and invoke the compile_ovs
function from the DevStack OVS library (devstack/lib/ovs), that function
will try to install the kernel-dev and kernel-headers package even if
the "build_modules" parameter is set to False.
That could fail because the specific kernel-* packages for the version
of the kernel running may not be present in the distro's repository
anymore. Plus, if the kernel modules will not be compiled, there's no
reason to install such packages.
This patch is fixing this problem by using the "build_modules" parameter
as a flag to whether install or not those kernel-* packages.
Change-Id: I11af0e22d25973e6334e867ab2659fbdf9f10d86
Closes-Bug: #1802101
Signed-off-by: Lucas Alvares Gomes <lucasagomes@gmail.com>
The patch is fixing two problems found when stacking DevStack on a
Fedora 28 host OS.
Problem 1: Account to the different patch versions between the
kernel-devel and kernel-headers packages.
Problem 2: Install the elfutils-libelf-devel package which is needed to
compile OVS.
For more a detailed information about each problem, check the bug linked
in this patch.
Closes-Bug: #1790143
Change-Id: Idfdee28124ff19272abcaaa3adade0435e3e474a