From f592ed232b573d760d8c07edd2da8cb66df0b10a Mon Sep 17 00:00:00 2001 From: Kevin Carter Date: Thu, 15 Mar 2018 18:45:30 -0500 Subject: [PATCH] Use production like interfaces in the gate The gate presently sets up a pseudo networking environment using a collection of bridges without any interfaces within them. This change implements the production example interface file using dummy interfaces. With this change we'll have the ability to test a production networking stack with bonded interfaces, VLAN tags, and bridges. To ensure we're enabling this setup in a uniform way the systemd-networkd role is used to create everything needed. > Terminal output from what will be created with this change http://paste.openstack.org/show/702382/ Change-Id: I7fb15ce81056cf7ad5139333d59787e610bd9c75 Signed-off-by: Kevin Carter --- .../tasks/check-requirements.yml | 10 +- .../tasks/prepare_networking.yml | 156 ++++++++++++++---- 2 files changed, 126 insertions(+), 40 deletions(-) diff --git a/tests/roles/bootstrap-host/tasks/check-requirements.yml b/tests/roles/bootstrap-host/tasks/check-requirements.yml index 99afb5e388..fb5ebd644c 100644 --- a/tests/roles/bootstrap-host/tasks/check-requirements.yml +++ b/tests/roles/bootstrap-host/tasks/check-requirements.yml @@ -121,9 +121,11 @@ tags: - check-disk-size -- name: Ensure that the kernel has VXLAN support +- name: Ensure that the kernel has VXLAN, VLAN, and bonding support modprobe: - name: vxlan + name: "{{ item }}" state: present - tags: - - check-vxlan + with_items: + - vxlan + - bonding + - 8021q diff --git a/tests/roles/bootstrap-host/tasks/prepare_networking.yml b/tests/roles/bootstrap-host/tasks/prepare_networking.yml index 3b1b43c1d3..2e1c5ae9ea 100644 --- a/tests/roles/bootstrap-host/tasks/prepare_networking.yml +++ b/tests/roles/bootstrap-host/tasks/prepare_networking.yml @@ -22,23 +22,61 @@ systemd_run_networkd: true systemd_netdevs: - NetDev: - Name: dummy0 - Kind: dummy + Name: bond0 + Kind: bond + Bond: + Mode: 802.3ad + TransmitHashPolicy: layer3+4 + MIIMonitorSec: 1s + LACPTransmitRate: fast - NetDev: - Name: dummy1 + Name: bond1 + Kind: bond + Bond: + Mode: 802.3ad + TransmitHashPolicy: layer3+4 + MIIMonitorSec: 1s + LACPTransmitRate: fast + + - NetDev: + Name: dummy0 Kind: dummy - NetDev: Name: dummy2 Kind: dummy + - NetDev: + Name: dummy1 + Kind: dummy - NetDev: Name: dummy3 Kind: dummy + - NetDev: - Name: dummy4 - Kind: dummy + Name: bond0.110 + Kind: vlan + VLAN: + Id: 110 - NetDev: - Name: dummy5 - Kind: dummy + Name: bond0.120 + Kind: vlan + VLAN: + Id: 120 + - NetDev: + Name: bond0.130 + Kind: vlan + VLAN: + Id: 130 + - NetDev: + Name: bond0.140 + Kind: vlan + VLAN: + Id: 140 + - NetDev: + Name: bond1.210 + Kind: vlan + VLAN: + Id: 210 + - NetDev: Name: br-mgmt Kind: bridge @@ -51,45 +89,89 @@ - NetDev: Name: br-vlan Kind: bridge + - NetDev: + Name: br-dbaas + Kind: bridge + - NetDev: + Name: br-lbaas + Kind: bridge + - NetDev: Name: br-vlan-veth Kind: veth Peer: Name: eth12 - - NetDev: - Name: br-dbaas - Kind: bridge - NetDev: Name: br-dbaas-veth Kind: veth Peer: Name: eth13 - - NetDev: - Name: br-lbaas - Kind: bridge - NetDev: Name: br-lbaas-veth Kind: veth Peer: Name: eth14 + systemd_networks: - - interface: "dummy0" + - interface: "bond0" + config_overrides: + Network: + VLAN: + ? "bond0.110" + ? "bond0.120" + ? "bond0.130" + ? "bond0.140" + mtu: 9000 + + - interface: "bond1" + bridge: "br-vlan" + config_overrides: + Network: + VLAN: + ? "bond1.210" + mtu: 9000 + + - interface: "bond0.110" bridge: "br-mgmt" + mtu: 9000 - interface: "br-mgmt" address: "172.29.236.100" netmask: "255.255.252.0" - - interface: "dummy1" - bridge: "br-vxlan" - - interface: "br-vxlan" - address: "172.29.240.100" - netmask: "255.255.252.0" - - interface: "dummy2" + + - interface: "bond0.120" bridge: "br-storage" + mtu: 9000 - interface: "br-storage" address: "172.29.244.100" netmask: "255.255.252.0" - - interface: "dummy3" - bridge: "br-vlan" + + - interface: "bond0.130" + bridge: "br-dbaas" + mtu: 9000 + - interface: "br-dbaas" + address: "172.29.232.100" + netmask: "255.255.252.0" + - interface: "br-dbaas-veth" + bridge: "br-dbaas" + mtu: 9000 + + - interface: "bond0.140" + bridge: "br-lbaas" + mtu: 9000 + - interface: "br-lbaas" + address: "172.29.252.100" + netmask: "255.255.252.0" + - interface: "br-lbaas-veth" + bridge: "br-lbaas" + mtu: 9000 + + - interface: "bond1.210" + bridge: "br-vxlan" + mtu: 9000 + - interface: "br-vxlan" + address: "172.29.240.100" + netmask: "255.255.252.0" + - interface: "br-vlan" config_overrides: Network: @@ -98,20 +180,20 @@ ? "172.29.248.1/22" - interface: "br-vlan-veth" bridge: "br-vlan" - - interface: "dummy4" - bridge: "br-dbaas" - - interface: "br-dbaas" - address: "172.29.232.100" - netmask: "255.255.252.0" - - interface: "br-dbaas-veth" - bridge: "br-dbaas" - - interface: "dummy5" - bridge: "br-lbaas" - - interface: "br-lbaas" - address: "172.29.252.100" - netmask: "255.255.252.0" - - interface: "br-lbaas-veth" - bridge: "br-lbaas" + mtu: 9000 + + - interface: "dummy0" + bond: "bond0" + mtu: 9000 + - interface: "dummy2" + bond: "bond0" + mtu: 9000 + - interface: "dummy1" + bond: "bond1" + mtu: 9000 + - interface: "dummy3" + bond: "bond1" + mtu: 9000 tags: - network-config @@ -133,6 +215,8 @@ execstarts: - "-/sbin/iptables -A POSTROUTING -t mangle -p tcp --dport 22 -j CHECKSUM --checksum-fill" - "-/sbin/iptables -t nat -A POSTROUTING -o {{ bootstrap_host_public_interface }} -j MASQUERADE" + - "-/sbin/ethtool -K bond0 gso off sg off tso off tx off" + - "-/sbin/ethtool -K bond1 gso off sg off tso off tx off" - "-/sbin/ethtool -K br-mgmt gso off sg off tso off tx off" - "-/sbin/ethtool -K br-vxlan gso off sg off tso off tx off" - "-/sbin/ethtool -K br-storage gso off sg off tso off tx off"