solution/automation/account-factory/step/network-create-vpc-vsw/main.tf (42 lines of code) (raw):
locals {
account_json = fileexists("../var/account.json") ? jsondecode(file("../var/account.json")) : {}
account_id = var.account_id == "" ? local.account_json["account_id"] : var.account_id
vpc_name = var.vpc_name
vpc_cidr_block = var.vpc_cidr_block
switch_cidr_block = var.switch_cidr_block
vswitch_name = var.vswitch_name
zone_id = var.zone_id
}
provider "alicloud" {
alias = "rd_role"
assume_role {
role_arn = format("acs:ram::%s:role/ResourceDirectoryAccountAccessRole", local.account_id)
session_name = "AccountLandingZoneSetup"
session_expiration = 999
}
}
module "network_config" {
source = "../../modules/network"
providers = {
alicloud = alicloud.rd_role
}
vpc_name = local.vpc_name
vpc_cidr_block = local.vpc_cidr_block
vswitch_name = local.vswitch_name
switch_cidr_block = local.switch_cidr_block
zone_id = local.zone_id
}
# Save information temporarily, can be used in subsequent steps
resource "local_file" "vpc_json" {
content = templatefile("../var/vpc.json.tmpl", {
vpc_name = local.vpc_name
vpc_id = module.network_config.vpc_id
})
filename = "../var/vpc.json"
}
resource "local_file" "vswitch_json" {
content = templatefile("../var/vswitch.json.tmpl", {
vswitch_name = local.vswitch_name
vswitch_id = module.network_config.vswitch_id
})
filename = "../var/vswitch.json"
}