neutron: Call destroy-patch-ports before starting ovs-agent
The script called destroy-patch-ports will break connection between the integration bridge and provider bridges configured in Neutron config files. See https://bugzilla.redhat.com/show_bug.cgi?id=1490281 for more details about the reason. With systemd, we have control over dependencies between services, therefore we can tell that destroy-patch-ports service must be run before neutron-openvswitch-agent. But we do not have this ability using docker. That's why this patch simply calls the script before each start of the agent. To avoid unnecessary breakage of patch ports, the script was enhanced to check a canary flow on integration bridge and in case the flow is there, it will not delete the patch ports. Presence of canary flow on integration bridge means that bridge has been already configured. It also implies provider bridges are configured too and thus they can't cause the ARP storm as described in Red Hat Bugzilla 1490281. NOTE: This patch requires the packaging side to be merged first: https://review.rdoproject.org/r/#/c/10480/ Co-Authored-By: Dan Prince <dprince@redhat.com> Closes-bug: #1731924 Change-Id: I005af23b1815c904ef63676553df9b14b7edfbfc
This commit is contained in:
parent
d87f2dbe9c
commit
e860b9580c
|
@ -88,11 +88,7 @@ outputs:
|
|||
- /run/openvswitch:/run/openvswitch
|
||||
kolla_config:
|
||||
/var/lib/kolla/config_files/neutron_ovs_agent.json:
|
||||
command:
|
||||
list_join:
|
||||
- ' '
|
||||
- - /usr/bin/neutron-openvswitch-agent --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/openvswitch_agent.ini --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-dir /etc/neutron/conf.d/common
|
||||
- get_attr: [NeutronLogging, cmd_extra_args]
|
||||
command: /neutron_ovs_agent_launcher.sh
|
||||
config_files:
|
||||
- source: "/var/lib/kolla/config_files/src/*"
|
||||
dest: "/"
|
||||
|
@ -102,6 +98,14 @@ outputs:
|
|||
- path: /var/log/neutron
|
||||
owner: neutron:neutron
|
||||
recurse: true
|
||||
docker_config_scripts:
|
||||
neutron_ovs_agent_launcher.sh:
|
||||
mode: "0755"
|
||||
content: |
|
||||
#!/bin/bash
|
||||
set -xe
|
||||
/usr/bin/python -m neutron.cmd.destroy_patch_ports --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/openvswitch_agent.ini --config-dir /etc/neutron/conf.d/common --config-dir /etc/neutron/conf.d/neutron-openvswitch-agent
|
||||
/usr/bin/neutron-openvswitch-agent --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/openvswitch_agent.ini --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-dir /etc/neutron/conf.d/common --log-file=/var/log/neutron/openvswitch-agent.log
|
||||
docker_config:
|
||||
step_3:
|
||||
neutron_ovs_bridge:
|
||||
|
@ -151,6 +155,7 @@ outputs:
|
|||
-
|
||||
- /var/lib/kolla/config_files/neutron_ovs_agent.json:/var/lib/kolla/config_files/config.json:ro
|
||||
- /var/lib/config-data/puppet-generated/neutron/:/var/lib/kolla/config_files/src:ro
|
||||
- /var/lib/docker-config-scripts/neutron_ovs_agent_launcher.sh:/neutron_ovs_agent_launcher.sh:ro
|
||||
- /lib/modules:/lib/modules:ro
|
||||
- /run/openvswitch:/run/openvswitch
|
||||
environment:
|
||||
|
|
Loading…
Reference in New Issue