Bug 1766930

Summary: Add support in tripleo for distributed vlan traffic in ovn
Product: Red Hat OpenStack Reporter: Kamil Sambor <ksambor>
Component: openstack-tripleo-heat-templatesAssignee: Brent Eagles <beagles>
Status: CLOSED NEXTRELEASE QA Contact: Fiorella Yanac <fyanac>
Severity: medium Docs Contact:
Priority: high    
Version: 16.1 (Train)CC: aaustin, akatz, augol, bcafarel, beagles, chris.brown, dalvarez, ekuris, eolivare, gurpsing, hakhande, hjensas, jlibosva, kiyyappa, lmartins, ltamagno, mburns, mtomaska, njohnston, sputhenp, supadhya
Target Milestone: z9Keywords: Triaged
Target Release: 16.1 (Train on RHEL 8.2)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-tripleo-heat-templates-11.3.2-1.20220811183319.29a02c1.el8ost Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of:
: 2009222 2101937 2102017 (view as bug list) Environment:
Last Closed: 2022-11-14 20:13:22 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1561880, 1704596, 1826364, 2102017    

Description Kamil Sambor 2019-10-30 10:10:28 UTC
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

Comment 2 Daniel Alvarez Sanchez 2020-04-30 15:37:25 UTC
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

Comment 5 Jakub Libosvar 2020-06-11 08:53:34 UTC
*** Bug 1833366 has been marked as a duplicate of this bug. ***

Comment 17 Andrew Austin 2021-09-14 17:39:52 UTC
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

Comment 27 Brent Eagles 2022-06-27 18:31:12 UTC
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.

Comment 40 Jakub Libosvar 2022-11-14 20:13:22 UTC
This is fixed in 16.2 - bug 2102017