diff --git a/roles/os_networks/tasks/networks.yml b/roles/os_networks/tasks/networks.yml index b9b45ea..493a7a4 100644 --- a/roles/os_networks/tasks/networks.yml +++ b/roles/os_networks/tasks/networks.yml @@ -34,6 +34,33 @@ port_security_enabled: "{{ item.port_security_enabled | default(omit) }}" with_items: "{{ os_networks }}" +- name: Ensure address scope is registered with neutron + openstack.cloud.address_scope: + auth_type: "{{ os_networks_auth_type }}" + auth: "{{ os_networks_auth }}" + region_name: "{{ os_networks_region | default(omit) }}" + cacert: "{{ os_networks_cacert | default(omit) }}" + cloud: "{{ os_networks_cloud | default(omit) }}" + interface: "{{ os_networks_interface | default(omit, true) }}" + name: "{{ item.name }}" + shared: "{{ item.shared | default(omit) }}" + ip_version: "{{ item.ip_version | default(omit) }}" + with_items: "{{ os_address_scopes }}" + +- name: Ensure subnet pool is registered with neutron + openstack.cloud.subnet_pool: + auth_type: "{{ os_networks_auth_type }}" + auth: "{{ os_networks_auth }}" + region_name: "{{ os_networks_region | default(omit) }}" + cacert: "{{ os_networks_cacert | default(omit) }}" + cloud: "{{ os_networks_cloud | default(omit) }}" + interface: "{{ os_networks_interface | default(omit, true) }}" + name: "{{ item.name }}" + shared: "{{ item.shared | default(omit) }}" + prefixes: "{{ item.prefixes }}" + address_scope: "{{ item.address_scope }}" + with_items: "{{ os_subnet_pools }}" + - name: Ensure subnet is registered with neutron openstack.cloud.subnet: auth_type: "{{ os_networks_auth_type }}" @@ -45,6 +72,7 @@ name: "{{ item.1.name }}" network_name: "{{ item.0.name }}" cidr: "{{ item.1.cidr | default(omit) }}" + prefix_length: "{{ item.1.prefix_length | default(omit) }}" dns_nameservers: "{{ item.1.dns_nameservers | default(omit) }}" enable_dhcp: "{{ item.1.enable_dhcp | default(omit) }}" extra_specs: "{{ item.1.extra_specs | default(omit) }}" @@ -60,7 +88,7 @@ ipv6_address_mode: "{{ item.1.ipv6_address_mode | default(omit) }}" ipv6_ra_mode: "{{ item.1.ipv6_ra_mode | default(omit) }}" use_default_subnetpool: "{{ item.1.use_default_subnetpool | default(omit) }}" - subnetpool: "{{ item.1.subnetpool | default(omit) }}" + subnet_pool: "{{ item.1.subnet_pool | default(omit) }}" project: "{{ item.1.project | default(omit) }}" state: "{{ item.1.state | default(omit) }}" with_subelements: @@ -136,3 +164,19 @@ with_subelements: - "{{ os_networks_security_groups }}" - rules + +- name: Ensure BGP Speakers are created + openstack.cloud.bgp_speaker: + auth_type: "{{ os_networks_auth_type }}" + auth: "{{ os_networks_auth }}" + region_name: "{{ os_networks_region | default(omit) }}" + cacert: "{{ os_networks_cacert | default(omit) }}" + cloud: "{{ os_networks_cloud | default(omit) }}" + interface: "{{ os_networks_interface | default(omit, true) }}" + name: "{{ item.name }}" + local_as: "{{ item.local_as }}" + ip_version: "{{ item.ip_version | default(omit) }}" + advertise_floating_ip_host_routes: "{{ item.advertise_floating_ip_host_routes | default(omit) }}" + advertise_tenant_networks: "{{ item.advertise_tenant_networks | default(omit) }}" + state: "{{ item.state | default(omit) }}" + with_items: "{{ os_bgp_speakers }}" diff --git a/roles/os_networks/tasks/router_workaround.yml b/roles/os_networks/tasks/router_workaround.yml index 4fbf718..71b01dd 100644 --- a/roles/os_networks/tasks/router_workaround.yml +++ b/roles/os_networks/tasks/router_workaround.yml @@ -31,5 +31,6 @@ interfaces: "{{ item.interfaces | default(omit) }}" network: "{{ _networks_query.networks[0].id if _networks_query is not skipped else omit }}" external_fixed_ips: "{{ item.external_fixed_ips | default(omit) }}" + enable_snat: "{{ item.enable_snat | default(omit) }}" project: "{{ item.project | default(omit) }}" state: "{{ item.state | default(omit) }}"