и камень предкновения здесь только связка neutron и ovn, с ML2 все было проще, сходил в конфиг написал и ты молодец
[Disclaimer] - Скорее всего всё, что я ниже напишу - ошибка, я не могу быть в этом уверен, так как опенсорс с неоднозначной (по крайней мере для меня) документаций. Всё описано так, как я это понимаю и если кто-то меня поправит - буду рад. [/Disclaimer]
ML2 не исключает OVN, как и OVN не исключает ML2. OVN - это драйвер для ML2.
Посему собственно то, что вы настраиваете в globals.yaml появится в том числе и в в ml2_conf.ini в конце концов (как минимум в виде mechanism_drivers = ovn)
Если нужно "много вланов наружу" очевидно должен быть тот самый интерфейс "наружу" - этот интерфейс (если он один) определяется через neutron_external_interface (в globals.yaml). Дальше он будет забриджован OVS-ом в сущность br-ex (которая будет смаплена с physnet1). ВАЖНО то, что описано в предыдущем предложении будет сделано только на network нодах (то есть на нодах, которые помещены в группу network), однако часто требуется что-бы всё это было и на компут нодах, для этого надо что бы параметр "enable_neutron_provider_networks" был установлен в "yes" (в globals.yaml)
На самом деле можно увидеть что пофигу какой агент используется - ovs ли, ovn ли, логика одна по факту. Дальше просто нарезайте вланы (важно следить что бы они попадали в рейндж [ml2_type_vlan] -> network_vlan_ranges
Итого - kolla всё должна сделать красиво внезависимости ovs у вас или ovn - наконфиугурить *.ini файлы на нейтрон-сервере и наконфигурить базы данных ovs-а на компутах. Следите за переменными, следите что наконфигурилось в итоге в neutron.ini и ml2_conf.ini, следите за бриджами, проверьте на всех ли компутах пролились ovn-agent-ы (именно они локально ответственны за консистентность)