Yep, confirmed from the Neutron source code in both Juno and Kilo, the format for multiple sets of discontiguous ranges in the same network is:
network:begin:end,network:begin:end
In the interest of completeness, the full pattern actually doesn't require the range, just the network name:
network[:begin:end,...]
In Juno, the ml2_conf.ini.j2 template does the work of generating the network_vlan_ranges sets, and in Kilo+ it's done by a library module. In the template, there is no parsing of the "range" item to loop over multiple ranges, it simply added as seen here:
I'm not sure offhand if it's possible to split in a jinja template, but if not a potential quick-win would be to convert the "range" item into a list, and iterate over it in the template.
Yep, confirmed from the Neutron source code in both Juno and Kilo, the format for multiple sets of discontiguous ranges in the same network is:
network: begin:end, network: begin:end
In the interest of completeness, the full pattern actually doesn't require the range, just the network name:
network[ :begin: end,... ]
In Juno, the ml2_conf.ini.j2 template does the work of generating the network_vlan_ranges sets, and in Kilo+ it's done by a library module. In the template, there is no parsing of the "range" item to loop over multiple ranges, it simply added as seen here:
https:/ /github. com/stackforge/ os-ansible- deployment/ blob/juno/ rpc_deployment/ roles/neutron_ common/ templates/ plugins/ ml2/ml2_ conf.ini# L14
In contrast, the new library correctly parses multiple comma-separated ranges:
https:/ /github. com/stackforge/ os-ansible- deployment/ blob/kilo/ playbooks/ library/ provider_ networks# L177
I'm not sure offhand if it's possible to split in a jinja template, but if not a potential quick-win would be to convert the "range" item into a list, and iterate over it in the template.