diff --git a/ansible/roles/ovn/defaults/main.yml b/ansible/roles/ovn/defaults/main.yml index 58c26bb6f8..e9cea8c66f 100644 --- a/ansible/roles/ovn/defaults/main.yml +++ b/ansible/roles/ovn/defaults/main.yml @@ -88,5 +88,7 @@ ovn_sb_db_extra_volumes: "{{ ovn_extra_volumes }}" ##### # OVN ##### +# Base MAC for ovn-chassis-mac-mappings generation +ovn_base_mac: "52:54:00" # Configure OVN remote probe interval time in ms ovn_remote_probe_interval: "60000" diff --git a/ansible/roles/ovn/tasks/bootstrap.yml b/ansible/roles/ovn/tasks/bootstrap.yml index d43e7affba..f95bcc7bc8 100644 --- a/ansible/roles/ovn/tasks/bootstrap.yml +++ b/ansible/roles/ovn/tasks/bootstrap.yml @@ -36,6 +36,14 @@ - inventory_hostname in groups["openvswitch"] - inventory_hostname not in groups["ovn-controller-network"] +- name: Set OVN chassis mac mappings + vars: + ovn_macs: "{% for bridge in neutron_bridge_name.split(',') %}physnet{{ loop.index0 + 1 }}:{{ ovn_base_mac | random_mac(seed=inventory_hostname+bridge) }}{% if not loop.last %},{% endif %}{% endfor %}" + become: true + command: docker exec openvswitch_vswitchd ovs-vsctl set Open_vSwitch . external_ids:ovn-chassis-mac-mappings={{ ovn_macs }} + when: + - inventory_hostname in groups["ovn-controller-compute"] + - name: Set OVN remote probe interval become: true command: > diff --git a/releasenotes/notes/ovn_dvr_vlan-f36a6868cfd4776e.yaml b/releasenotes/notes/ovn_dvr_vlan-f36a6868cfd4776e.yaml new file mode 100644 index 0000000000..8bc8e382c2 --- /dev/null +++ b/releasenotes/notes/ovn_dvr_vlan-f36a6868cfd4776e.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + OVN deployment will now configure ``external_ids:ovn-chassis-mac-mappings`` + to make DVR work on VLAN tenant networks.