variable "vpc_configurations" {
description = "The list of VPC configurations for peering connection"
type = list(object({
vpc_name = string
vpc_cidr = string
subnet_name = string
enterprise_project_id = optional(string, null)
}))
validation {
condition = length(var.vpc_configurations) == 2
error_message = "Exactly 2 VPC configurations are required for peering connection."
}
}
# 创建VPC资源
resource "huaweicloud_vpc" "test" {
count = length(var.vpc_configurations)
name = lookup(var.vpc_configurations[count.index], "vpc_name", null)
cidr = lookup(var.vpc_configurations[count.index], "vpc_cidr", null)
enterprise_project_id = lookup(var.vpc_configurations[count.index], "enterprise_project_id", null)
}
# 创建VPC子网资源
resource "huaweicloud_vpc_subnet" "test" {
count = length(var.vpc_configurations)
vpc_id = huaweicloud_vpc.test[count.index].id
name = lookup(var.vpc_configurations[count.index], "subnet_name", null)
cidr = try(cidrsubnet(lookup(var.vpc_configurations[count.index], "vpc_cidr", null), 6, 32), null)
gateway_ip = try(cidrhost(cidrsubnet(lookup(var.vpc_configurations[count.index], "vpc_cidr", null), 6, 32), 1), null)
}