diff --git a/data/data/alibabacloud/cluster/vpc/eip.tf b/data/data/alibabacloud/cluster/vpc/eip.tf index c41a30f884d..c4eeeaf735b 100644 --- a/data/data/alibabacloud/cluster/vpc/eip.tf +++ b/data/data/alibabacloud/cluster/vpc/eip.tf @@ -1,4 +1,6 @@ resource "alicloud_eip_address" "eip" { + count = length(var.vswitch_ids) == 0 ? 1 : 0 + description = local.description address_name = "${local.prefix}-eip" payment_type = "PayAsYouGo" @@ -13,7 +15,9 @@ resource "alicloud_eip_address" "eip" { } resource "alicloud_eip_association" "eip_association" { - allocation_id = alicloud_eip_address.eip.id - instance_id = alicloud_nat_gateway.nat_gateway.id + count = length(var.vswitch_ids) == 0 ? 1 : 0 + + allocation_id = alicloud_eip_address.eip[0].id + instance_id = alicloud_nat_gateway.nat_gateway[0].id instance_type = "Nat" } diff --git a/data/data/alibabacloud/cluster/vpc/nat_gateway.tf b/data/data/alibabacloud/cluster/vpc/nat_gateway.tf index cd29085d664..f212abf9a7c 100644 --- a/data/data/alibabacloud/cluster/vpc/nat_gateway.tf +++ b/data/data/alibabacloud/cluster/vpc/nat_gateway.tf @@ -1,8 +1,10 @@ resource "alicloud_nat_gateway" "nat_gateway" { + count = length(var.vswitch_ids) == 0 ? 1 : 0 + vpc_id = local.vpc_id nat_gateway_name = "${local.prefix}-ngw" - vswitch_id = alicloud_vswitch.vswitch_nat_gateway.id + vswitch_id = alicloud_vswitch.vswitch_nat_gateway[0].id internet_charge_type = "PayByLcu" nat_type = "Enhanced" description = local.description @@ -15,10 +17,10 @@ resource "alicloud_nat_gateway" "nat_gateway" { } resource "alicloud_snat_entry" "snat_entrys" { - count = length(local.vswitch_ids) + count = length(var.vswitch_ids) == 0 ? length(local.vswitch_ids) : 0 depends_on = [alicloud_eip_association.eip_association] - snat_table_id = alicloud_nat_gateway.nat_gateway.snat_table_ids + snat_table_id = alicloud_nat_gateway.nat_gateway[0].snat_table_ids source_vswitch_id = local.vswitch_ids[count.index] - snat_ip = alicloud_eip_address.eip.ip_address + snat_ip = alicloud_eip_address.eip[0].ip_address } diff --git a/data/data/alibabacloud/cluster/vpc/outputs.tf b/data/data/alibabacloud/cluster/vpc/outputs.tf index c19ebbd024f..26a98ba4c10 100644 --- a/data/data/alibabacloud/cluster/vpc/outputs.tf +++ b/data/data/alibabacloud/cluster/vpc/outputs.tf @@ -10,18 +10,6 @@ output "az_to_vswitch_id" { value = zipmap(data.alicloud_vswitches.vswitches.vswitches.*.zone_id, data.alicloud_vswitches.vswitches.vswitches.*.id) } -output "gw_id" { - value = alicloud_nat_gateway.nat_gateway.id -} - -output "eip_id" { - value = alicloud_eip_address.eip.id -} - -output "eip_ip" { - value = alicloud_eip_address.eip.ip_address -} - output "slb_ids" { value = [alicloud_slb_load_balancer.slb_external.id, alicloud_slb_load_balancer.slb_internal.id] } diff --git a/data/data/alibabacloud/cluster/vpc/vpc.tf b/data/data/alibabacloud/cluster/vpc/vpc.tf index 0f8debff2f7..5b4ada7b334 100644 --- a/data/data/alibabacloud/cluster/vpc/vpc.tf +++ b/data/data/alibabacloud/cluster/vpc/vpc.tf @@ -43,6 +43,8 @@ resource "alicloud_vswitch" "vswitches" { } resource "alicloud_vswitch" "vswitch_nat_gateway" { + count = length(var.vswitch_ids) == 0 ? 1 : 0 + vswitch_name = "${local.prefix}-vswitch-nat-gateway" description = local.description vpc_id = local.vpc_id