Fix connectivity between multinode devstack jobs
To have connectivity through public network to the vms which are on various nodes in the ci job, we need to configure special bridge called "br-infra" and connect this bridge with br-ex with patch ports. This can be done using "multi-node-bridge" role from zuul roles and "multi-node-setup" added to this repository. Change-Id: I80d7d2bed8291ba21ddc68b48fef5d0aac996b39
This commit is contained in:
parent
f0bb306fec
commit
d833b3d2ee
@ -2,7 +2,7 @@
|
||||
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v3.3.0
|
||||
rev: v3.4.0
|
||||
hooks:
|
||||
- id: check-added-large-files
|
||||
- id: check-byte-order-marker
|
||||
|
3
playbooks/multinode-setup.yaml
Normal file
3
playbooks/multinode-setup.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
- hosts: all
|
||||
roles:
|
||||
- multi-node-setup
|
23
roles/multi-node-setup/README.rst
Normal file
23
roles/multi-node-setup/README.rst
Normal file
@ -0,0 +1,23 @@
|
||||
Set up connection between infra bridge and Neutron external bridge
|
||||
|
||||
Network topology used in CI multinode jobs is described In `Devstack documention
|
||||
<https://opendev.org/openstack/devstack-gate/src/branch/master/multinode_setup_info.txt#L81>`_
|
||||
|
||||
In case when DVR is used, there is also additional bridge ``br-infra`` added
|
||||
on each node to provide connectivity to floating IPs from main node.
|
||||
|
||||
This bridge needs to be connected with bridge used by Neutron as
|
||||
external bridge. Typically it is ``br-ex`` and this role adds patch ports
|
||||
between those bridges.
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: neutron_external_bridge_name
|
||||
:default: br-ex
|
||||
|
||||
Name of the Neutron external bridge.
|
||||
|
||||
.. zuul:rolevar:: infra_bridge_name
|
||||
:default: br-infra
|
||||
|
||||
Name of the infra bridge.
|
4
roles/multi-node-setup/defaults/main.yaml
Normal file
4
roles/multi-node-setup/defaults/main.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
|
||||
infra_bridge_name: br-infra
|
||||
neutron_external_bridge_name: br-ex
|
32
roles/multi-node-setup/tasks/main.yaml
Normal file
32
roles/multi-node-setup/tasks/main.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
|
||||
- name: Configure Neutron bridge for multi node setup
|
||||
when: "( ansible_play_hosts | length ) > 1"
|
||||
block:
|
||||
|
||||
- name: Ensure the infra bridge exists
|
||||
become: true
|
||||
openvswitch_bridge:
|
||||
bridge: "{{ infra_bridge_name }}"
|
||||
state: present
|
||||
fail_mode: standalone
|
||||
|
||||
- name: Ensure the Neutron external bridge exists
|
||||
become: true
|
||||
openvswitch_bridge:
|
||||
bridge: "{{ neutron_external_bridge_name }}"
|
||||
state: present
|
||||
fail_mode: standalone
|
||||
|
||||
- name: Create patch port between bridges
|
||||
become: true
|
||||
command: >-
|
||||
ovs-vsctl
|
||||
--may-exist add-port {{ infra_bridge_name }}
|
||||
patch-{{ neutron_external_bridge_name }} --
|
||||
set interface patch-{{ neutron_external_bridge_name }}
|
||||
type=patch options:peer=patch-{{ infra_bridge_name }} --
|
||||
--may-exist add-port {{ neutron_external_bridge_name }}
|
||||
patch-{{ infra_bridge_name }} --
|
||||
set interface patch-{{ infra_bridge_name }}
|
||||
type=patch options:peer=patch-{{ neutron_external_bridge_name }}
|
@ -228,6 +228,7 @@
|
||||
abstract: true
|
||||
description: Base DevStack Tobiko job with multinode.
|
||||
timeout: 10800
|
||||
pre-run: playbooks/multinode-setup.yaml
|
||||
vars:
|
||||
topology: multinode
|
||||
devstack_localrc:
|
||||
|
Loading…
Reference in New Issue
Block a user