For distributed vlan in ovn we need to add support of creating mac addresses per compute and seting them in external_ids:ovn-chassis-mac-mappings . In case when we have NeutronBridgeMappings='datacentre:br-ex' then for every compute node we need to generate mac and addset it in ovn_controller to external_ids:ovn-chassis-mac-mappings: 'datacentre:generated_mac' [0] [0] https://github.com/ovn-org/ovn/blob/master/controller/ovn-controller.8.xml#L199
As mentioned in the BZ description, to achieve this we require to populate local OVSDBs with 'external_ids:ovn-chassis-mac-mappings'. But also from Neutron, we need to remove the 'reside-on-redirect' option from the LRPs, basically partially reverting this: https://github.com/openstack/networking-ovn/commit/d22cc2a0dc8de7b792dc4be471277167fc2a94d3
*** Bug 1833366 has been marked as a duplicate of this bug. ***
Using the 16.2 RC which seems to contain these patches, external_ids:ovn-chassis-mac-mappings is not populated without patching some stuff in THT and the Ansible roles. Ansible (Changed output JSON file to be properly formatted for hiera): (osp1) [stack@osp1-director tripleo-hieradata]$ cat templates/ovn_chassis_mac_map.j2 {% set ovn_chassis_mac_map_data = {} %} {% set _ = ovn_chassis_mac_map_data.__setitem__('ovn_chassis_mac_map', hostvars[inventory_hostname].get('ovn_chassis_mac_map', {})) %} {# RENDER #} {{ ovn_chassis_mac_map_data | to_nice_json }} THT (Added ovn_chassis_mac_map to hieradata_files): (osp1) [stack@osp1-director openstack-tripleo-heat-templates]$ grep -C 20 ovn_chassis overcloud.j2.yaml - {get_param: {{role.deprecated_param_extraconfig}}} {%- endif %} - {get_param: {{role.name}}ExtraConfig} extraconfig: {get_param: ExtraConfig} hieradata_files: - '%{::uuid}' - fqdn - docker_puppet # Optionally provided by container-puppet.py - ansible_managed - heat_config_%{::deploy_config_name} - config_step - role_extraconfig - extraconfig - pci_passthrough_whitelist - service_names - service_configs - cloud_domain - bootstrap_node # provided by tripleo-hieradata - all_nodes # provided by tripleo-hieradata - vip_data # provided by tripleo-hieradata - ovn_chassis_mac_map # provided by tripleo-hieradata - net_ip_map - '%{::osfamily}' # The following are required for compatibility with the Controller role # where some vendor integrations added hieradata via ExtraConfigPre - neutron_bigswitch_data # Optionally provided by Controller/ComputeExtraConfigPre # Special variable for upgrade - upgrade
We need https://review.opendev.org/c/openstack/python-tripleoclient/+/847194 for things to work properly in u/s CI. The problem appears to be standalone specific.
This is fixed in 16.2 - bug 2102017