---
- name: Ensure external network and subnet are registered in neutron
  # Only required to run on a single host.
  hosts: controllers[0]
  roles:
    - role: stackhpc.os-networks
      os_openstacksdk_install_epel: "{{ dnf_install_epel }}"
      os_openstacksdk_upper_constraints_file: "{{ openstacksdk_upper_constraints_file }}"
      os_networks_venv: "{{ virtualenv_path }}/openstacksdk"
      os_networks_openstack_auth_type: "{{ openstack_auth_type }}"
      os_networks_openstack_auth: "{{ openstack_auth }}"
      # Network configuration.
      os_networks_name: "{{ item }}"
      os_networks_type: "{% if item | net_vlan %}vlan{% else %}flat{% endif %}"
      os_networks_physical_network: "physnet1"
      os_networks_segmentation_id: "{{ item | net_vlan }}"
      os_networks_shared: True
      os_networks_external: True
      # Subnet configuration.
      os_networks_subnet_name: "{{ item }}"
      os_networks_cidr: "{{ item | net_cidr }}"
      os_networks_gateway_ip: "{{ item | net_gateway }}"
      os_networks_allocation_pool_start: "{{ item | net_neutron_allocation_pool_start }}"
      os_networks_allocation_pool_end: "{{ item | net_neutron_allocation_pool_end }}"
      with_items: "{{ external_net_names }}"
