29 Commits

Author SHA1 Message Date
Ian Wienand
6d23d20f2f linters: add names to blocks
This is preparation for a later version of ansbile-lint, which finds
missing names on blocks.  This seems a reasonable rule, and the
Ansible manual says [1]

  Names for blocks have been available since Ansible 2.3. We recommend
  using names in all tasks, within blocks or elsewhere, for better
  visibility into the tasks being executed when you run the playbook.

This simply adds a name tag for blocks that are missing it.  This
should have no operational change, but allows us to update the linter
in a follow-on change.

[1] https://docs.ansible.com/ansible/latest/user_guide/playbooks_blocks.html

Change-Id: I92ed4616775650aced352bc9088a07e919f1a25f
2022-07-27 17:13:39 +10:00
James E. Blair
a1e6229171 Remove "include:" usage from multi-node-bridge
This is deprecated, and include_tasks is sufficient and present
in all supported versions.

Change-Id: If88d9d6ce9fb40a9a8e42e7a32d473ffd51b780a
2022-05-23 14:44:12 -07:00
Chandan Kumar (raukadah)
8399dd1842 Donot Setup RDO gpg keys and repo for RHEL and Fedora
Currently in multi-node-bridge role, For RHEL and CentOS
distro, RDO repos are setted up and from where rdo-openvswitch
get pulled in RHEL deployment and causes unwanted failures.

Like a particular version of rdo-openvswitch is not yet available
in CentOS and it fails the job with nothing provides message.

Enabling RDO repos specifically for CentOS and other distros
except RHEL and Fedora will fix the
issue.

Signed-off-by: Chandan Kumar (raukadah) <chkumar@redhat.com>
Change-Id: Id68f5904c4ec3d667a16e9f4f195d53b02d29cec
2022-04-18 21:51:15 +05:30
8989684719 [multi-node-bridge] Allow to skip openvswitch installation
In neutron-multinode jobs where we use ovs/ovn from source,
we want to use multi-node-bridge role only for bridge
configuration but not for ovs installation. In the job
we install ovn and openvswitch before calling this role to
configure the bridges.

Adding a role var 'install_ovs' to allow skipping ovs
installation and service start, it's default to true so
no change in current behavior of the role.

It's an alternative approach to [1].

[1] https://review.opendev.org/c/zuul/zuul-jobs/+/762650

Related-Bug: #1904117
Change-Id: I64942679520681bdf7f953c0a3c7fc0d13e77856
2022-03-09 18:23:41 +05:30
Brian Haley
a6f45c6942 Decrease MTU to account for IPv6 header
(MTU - 50) only supports VxLAN over IPv4, decrease it
to support IPv6 as well, which is 20 bytes larger.

Change-Id: Ifa2633169afe2dd73c78ca7bbfa1a0102caffc95
2020-11-06 17:31:06 -05:00
Sorin Sbarnea
086d1a9284 More E208 fixes
Change-Id: Iddda539a24e03ae33ef5e37630f98a7268f18dbe
2020-11-03 10:04:27 +00:00
Sagi Shnaidman
7975e874e8 Install openswitch and firewall if need a bridge only
In case of nodeset which doesn't have peers and switch there is
no need to install openswitch and firewall rules, because nothing
will be installed. Let's skip it if no need.
Change-Id: I98cf5ec390ee22e538baa076c9ab87eea6a44c9e
2020-10-13 14:25:37 +03:00
Albin Vass
9062289151 Check for loop_control in with_ type loops
Change-Id: I191265df7709a6262b44a428d78fe28ffaeb4b75
2020-05-01 13:45:34 +02:00
Matthew Thode
a5ace834b1
set jobs for installing openvswitch
On Gentoo this allows multiple packages to compile/install at once.

Change-Id: I23fd629a351b4c6b2acc325611ed47cc04bca404
Signed-off-by: Matthew Thode <mthode@mthode.org>
2020-02-19 13:33:48 -06:00
Clark Boylan
a554a401ea Use present for package state instead of installed
Ansible 2.9 does not accept the "installed" state so we need to update
occurences of that to "present".

Change-Id: I13c95794efc63697c2418334ded7c6912bd7b59f
2019-12-17 08:24:05 -08:00
Clark Boylan
121baa0d77 Revert "Use import_role on persistent-firewall"
This reverts commit 46b7b6e1c98a8b12647be4b30b5b54405379d6ec.

This didn't end up changing the incidence of the iptables-save command
task failures.

Change-Id: I02e725d7330bc9b438a9864ea49510cca7fee524
2019-10-01 09:11:02 -07:00
Clark Boylan
46b7b6e1c9 Use import_role on persistent-firewall
Previously to persist the filewall we were including the
persistent-firewall role. This seems to occasionally break because the
second invocation of the role (on multinode jobs after setting up the
multinode bridge) fails with an RC of -13 when listing ipv4 iptables
roles. Then when we try to write them to disk the variable is empty.

One thought is that dynamically loading the role multiple times may be
confusing ansible. Use import_role to statically load the role instead
and see if this helps.

Change-Id: I2458f8eb4c2e4638336fa14e436e13b5a2263cce
2019-09-30 10:39:02 -07:00
Bogdan Dobrelya
db6677a867 Fix evaluating nodepool_ip and switch_ip facts
In I32fb17bae98f13f735da4d5b9a6a01e948f21678, the evaluated facts
should also fallback to public_ipv4, when private_ipv4 is "empty-like",
e.g. contains no valid IP but something like '\n'.

It also restores the lost switch_private_ip fact just in case.

Change-Id: I139272746129213994f298a4a9178b4441d439af
Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
2019-09-10 17:54:17 +02:00
Jeremy Stanley
2711d10186 Be consistent about spaces before and after vars
With the arrival of ansible-lint 4, Jinja2 variable expansions must
include spaces before and after the variable name inside the
brackets.

Adjust the new violations accordingly and remove the rule
206 exclusion.

Change-Id: Ib3ff7b0233a5d5cf99772f9c2adc81861cf34ffa
2019-08-07 20:17:41 +01:00
Andreas Jaeger
311a3a84ed Fix Gentoo ovs install
openvswitch on gentoo needs another packaging hint, add it.

For failure, see https://review.opendev.org/668249

Co-Authored-By: Matthew Thode <mthode@mthode.org>
Change-Id: I0a43dbf2fa63fa93bd7bf73db210ba4685b28127
2019-06-30 10:38:21 +02:00
Ronelle Landy
9853d3608f Default private_ipv4 to use public_ipv4 address when null
The static zuul driver returns only a public_ipv4 address for
nodes in use. The multinode bridge role accesses the node
private_ipv4 address. As such, when the private address is
empty/null the role fails.

This review defaults that private address so that the role
uses the public address when the private address is null.

Change-Id: I32fb17bae98f13f735da4d5b9a6a01e948f21678
2019-01-23 10:30:20 +01:00
David Moreau Simard
68375810ee
Vendor the RDO repository configuration for installing OVS
Installing OVS on CentOS requires one RDO repository and the
centos-release-openstack packages sets up two additional repos which
aren't required.

In addition, we removed the centos-release-openstack package but this
did not remove the two extra repositories, causing them to "leak" into
the jobs.

This sets up the one repository we need and ensures it is removed after
OVS is installed.

Change-Id: Ida2299a4356282d23b79fac6753b6171211a7651
2018-12-12 19:18:06 -05:00
Zuul
b61bca7f1e Merge "use find instead of ls to list interfaces" 2018-09-26 00:26:03 +00:00
Matthew Thode
cfd13c561c
use find instead of ls to list interfaces
find is used instead of ls as we can select the 'link' type with find
only the link type is needed because files do not have interface
properties and directories are not used for this area of /sys
As an example, the bonding_masters exists in /sys/class/net/ as a file
without any 'subdirectory' of information to it.

Change-Id: Id31fcfb858c6abff4d44444e019f0d48e4f3c671
2018-09-24 01:57:03 -05:00
Matthew Thode
7311980404
create the pacage.use file...
Change-Id: I7e2483f38270f7d51214a89037539325fd8ab0b3
2018-09-23 21:20:29 -05:00
Matthew Thode
ea5c35e8c4
lay down gentoo use file for openvswitch
Change-Id: I9d5637b0a00e3b302f98c18c113790c5a8801699
2018-09-23 15:22:23 -05:00
Paul Belanger
e24fd6b7c0
Switch to centos-release-openstack-queens for ovs
Drop the dependency on RDO infra in favor of latest OVS releases in
centos-7. This means we'll be bumping to 2.9.0.

This still isn't the best, as we are pinning to a specific release of
openstack. However, until there is the OVS SIG in centos, this is the
best we can do.

Change-Id: Ic8a7ee26ebe0ef4f8c2dcecf9bcfce03b55422e5
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2018-07-10 13:02:23 -04:00
Clark Boylan
258a0d6ec7 Dynamically determine overlay network mtu
Not all clouds will provide us with MTUs of 1500. Instead of assuming a
1500 - 50 byte MTU to accomodate for vxlan overhead we list all
interface MTUs, filter by those that appear to be "real" interfaces (to
avoid those we ourselves may have created), take the smallest one and
subtract it by 50 to accomodate for vxlan overhead. You can still set an
explicitl bridge_mtu value if necessary.

Change-Id: If899a1bee3b4b69df8c2905a219b41e119d8f652
2018-06-28 13:47:03 -07:00
Mohammed Naser
fbb58ddfde Add PATH to ip command execution
It seems that there has been a recent change where the PATH used
has changed somehow.  This adds it and make sure that it covers
all 3 major distros location where `ip` is stored.

Change-Id: Ic3c255bd24d1202fec436d4fcc484ce420110518
2018-06-18 17:37:10 -04:00
David Moreau-Simard
0bb84bc58e
Persist iptables rules
We configured iptables rules but did not persist them.
This meant that rules would be flushed when restarting iptables or
the instance.

Change-Id: I9d90f55323a33d6a0f0dda1f7ab25d10984fa6cb
2017-10-31 17:39:32 -04:00
David Moreau-Simard
efd90dd2f9
Authorize the multi-node-bridge network in iptables if there's one
This allows packets to flow freely between things that bind IPs on the
network bridge.

Change-Id: Iaacdca31b27b7033ec08499bcea7061b9d3ec279
2017-10-31 14:25:56 -04:00
David Moreau-Simard
337835ad20
Don't set up RDO repositories on Fedora
The RDO community doesn't meaningfully test their packages on
Fedora and openvswitch is also available in Fedora base
repositories at a recent enough version.

Change-Id: I30713e1ecd70d03d8a520e31bdccdfbe08482699
2017-10-15 12:54:44 -04:00
David Moreau-Simard
e375ddc738
Append /sbin and /usr/sbin to $PATH for 'ip' commands
While the 'iproute' package is installed on our CentOS images, it
was found that '/sbin/ip' was not in PATH and thus resulting in a
command not found error.
This is because 'become: yes' may not include '/sbin' and '/usr/sbin'
paths [1].

This can also occur on other distributions so let's include this all
the time.

[1]: http://git.openstack.org/cgit/openstack/diskimage-builder/tree/diskimage_builder/lib/common-defaults?id=22e03f98209be206a1e9e60f0b9cd9381317096e#n46

Change-Id: Ia7480dab0f357b5710d1962a40499381837942b3
2017-09-26 15:32:07 -04:00
David Moreau-Simard
645a3935ee
Multi-node: Set up connectivity with default OVS bridge
This sets up a default 'br-infra' bridge between nodes in a multi-node
job. Two groups are expected in order for this to be set up:
- switch
- peers

The 'switch' group, with only one expected member, will be set up as
the switch node while the 'peers' group will be connected to the switch
node with virtual ports.

The default settings such as the bridge name, the IP range used, the MTU
and so on can be overridden at the job level by setting vars.

Change-Id: If5a3f512837e5b235bd2f6dbfdbb454435aa983e
2017-09-26 15:32:02 -04:00