|
| 1 | +--- |
| 2 | +# When OVS HW offloading is enabled - typically in conjunction with VF-LAG and ASAP^2 |
| 3 | +# the DMESG log reports frequent errors on the internal OVS Bridge interface: |
| 4 | +# "tc mirred to Houston: device bond0-ovs is down". |
| 5 | +# This interface is down by default. The errors are mitigated by bringing the interface up. |
| 6 | +# For further context, see: |
| 7 | +# https://bugs.launchpad.net/charm-neutron-openvswitch/+bug/1899364 |
| 8 | +# https://patchwork.kernel.org/project/netdevbpf/patch/c2ef23da1d9a4eb62f4e7b7c4540f9bafb553c15.1658420239.git.dcaratti@redhat.com/ |
| 9 | +# To deploy this playbook, use the following commands: |
| 10 | +# kayobe playbook run $KAYOBE_CONFIG_PATH/ansible/fix-houston.yml |
| 11 | +# Enable with Kayobe Hooks by running: |
| 12 | +# mkdir -p ${KAYOBE_CONFIG_PATH}/hooks/overcloud-service-deploy/post.d |
| 13 | +# cd ${KAYOBE_CONFIG_PATH}/hooks/overcloud-service-deploy/post.d |
| 14 | +# ln -s ../../../ansible/fix-houston.yml 90-fix-houston.yml |
| 15 | + |
| 16 | +- name: Create Systemd Unit to workaround 'tc mirred to Houston' error |
| 17 | + hosts: network,compute |
| 18 | + become: yes |
| 19 | + |
| 20 | + tasks: |
| 21 | + - name: Include kolla-ansible host vars |
| 22 | + include_vars: "{{ kolla_config_path }}/inventory/overcloud/host_vars/{{ inventory_hostname }}" |
| 23 | + |
| 24 | + - name: Create systemd service for -ovs network interface |
| 25 | + template: |
| 26 | + src: fix-houston-interface.service.j2 |
| 27 | + dest: "/etc/systemd/system/fix-houston-{{ item }}.service" |
| 28 | + loop: "{{ neutron_bridge_name.split(',') }}" |
| 29 | + vars: |
| 30 | + interface_name: "{{ item }}" |
| 31 | + when: neutron_bridge_name | length > 0 |
| 32 | + notify: reload systemd |
| 33 | + |
| 34 | + - name: Enable and start systemd service for -ovs network interface |
| 35 | + systemd: |
| 36 | + name: "fix-houston-{{ item }}" |
| 37 | + enabled: yes |
| 38 | + state: started |
| 39 | + when: neutron_bridge_name | length > 0 |
| 40 | + loop: "{{ neutron_bridge_name.split(',') }}" |
| 41 | + |
| 42 | + handlers: |
| 43 | + - name: reload systemd |
| 44 | + command: systemctl daemon-reload |
0 commit comments