diff --git a/README.md b/README.md index ead5c89bd2b23a6b5f385920ad9a3a5f24605780..4ccd80e857dbfbfd36c485838f55ee1e18e1a2b9 100644 --- a/README.md +++ b/README.md @@ -51,8 +51,7 @@ No modules. | [openstack_networking_port_v2.control_ports](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_port_v2) | resource | | [openstack_networking_port_v2.vip_port](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_port_v2) | resource | | [openstack_networking_port_v2.worker_ports](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_port_v2) | resource | -| [openstack_networking_router_interface_v2.router_available_interface](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_router_interface_v2) | resource | -| [openstack_networking_router_interface_v2.router_default_interface](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_router_interface_v2) | resource | +| [openstack_networking_router_interface_v2.router_interface](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_router_interface_v2) | resource | | [openstack_networking_router_v2.router_default](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_router_v2) | resource | | [openstack_networking_secgroup_rule_v2.secgroup_rules](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_secgroup_rule_v2) | resource | | [openstack_networking_secgroup_v2.secgroup_default](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_secgroup_v2) | resource | diff --git a/networks.tf b/networks.tf index ce252aae6d2c8d60c466a03f74329785ec818fc5..13fbe3571c7cf6fc0debd131473618dc4dc1f4b4 100644 --- a/networks.tf +++ b/networks.tf @@ -32,15 +32,8 @@ resource "openstack_networking_router_v2" "router_default" { external_network_id = data.openstack_networking_network_v2.external_network.id } -resource "openstack_networking_router_interface_v2" "router_default_interface" { - count = var.router_creation_enable ? 1 : 0 - router_id = openstack_networking_router_v2.router_default[0].id - subnet_id = openstack_networking_subnet_v2.subnet_default[0].id -} - -resource "openstack_networking_router_interface_v2" "router_available_interface" { - count = var.router_creation_enable ? 0 : 1 - router_id = data.openstack_networking_router_v2.router_available[0].id +resource "openstack_networking_router_interface_v2" "router_interface" { + router_id = var.router_creation_enable ? openstack_networking_router_v2.router_default[0].id : data.openstack_networking_router_v2.router_available[0].id subnet_id = openstack_networking_subnet_v2.subnet_default[0].id } @@ -118,6 +111,11 @@ resource "openstack_networking_floatingip_v2" "bastion_fip" { resource "openstack_networking_floatingip_associate_v2" "bastion_fip_associate" { floating_ip = openstack_networking_floatingip_v2.bastion_fip.address port_id = openstack_networking_port_v2.bastion_port.id + # Successful association depends on the external (FIP) network being reachable from the internal network, + # in this case via a router. + depends_on = [ + openstack_networking_router_interface_v2.router_interface + ] } # Floating VIP IPs @@ -130,6 +128,11 @@ resource "openstack_networking_floatingip_associate_v2" "res_vip_fip_associate" count = var.kube_fip_create_port && var.kube_fip ? 1 : 0 floating_ip = openstack_networking_floatingip_v2.vip_fip[count.index].address port_id = openstack_networking_port_v2.vip_port[count.index].id + # Successful association depends on the external (FIP) network being reachable from the internal network, + # in this case via a router. + depends_on = [ + openstack_networking_router_interface_v2.router_interface + ] } # Floating IP for kube-api Loadbalancer @@ -143,4 +146,9 @@ resource "openstack_networking_floatingip_associate_v2" "lb_kube_api_fip_associa count = var.create_lb_kube_api ? 1 : 0 floating_ip = openstack_networking_floatingip_v2.lb_kube_api_fip[0].address port_id = openstack_lb_loadbalancer_v2.lb_kube_api[0].vip_port_id + # Successful association depends on the external (FIP) network being reachable from the internal network, + # in this case via a router. + depends_on = [ + openstack_networking_router_interface_v2.router_interface + ] }