3.7 KiB
3.7 KiB
Net Address Reservation Module
This module allows reserving Compute Engine external, global, and internal addresses.
Examples
External and global addresses
module "addresses" {
source = "./modules/net-address"
project_id = var.project_id
external_addresses = {
nat-1 = var.region
vpn-remote = var.region
}
global_addresses = ["app-1", "app-2"]
}
# tftest:modules=1:resources=4
Internal addresses
module "addresses" {
source = "./modules/net-address"
project_id = var.project_id
internal_addresses = {
ilb-1 = {
region = var.region
subnetwork = var.subnet.self_link
}
ilb-2 = {
region = var.region
subnetwork = var.subnet.self_link
}
}
# optional configuration
internal_addresses_config = {
ilb-1 = {
address = null
purpose = "SHARED_LOADBALANCER_VIP"
tier = null
}
}
}
# tftest:modules=1:resources=2
PSA addresses
module "addresses" {
source = "./modules/net-address"
project_id = var.project_id
psa_addresses = {
cloudsql-mysql = {
address = "10.10.10.0"
network = var.vpc.self_link
prefix_length = 24
}
}
}
# tftest:modules=1:resources=1
PSC addresses
module "addresses" {
source = "./modules/net-address"
project_id = var.project_id
psc_addresses = {
one = {
address = null
network = var.vpc.self_link
}
two = {
address = "10.0.0.32"
network = var.vpc.self_link
}
}
}
# tftest:modules=1:resources=2
Variables
name | description | type | required | default |
---|---|---|---|---|
project_id | Project where the addresses will be created. | string |
✓ | |
external_addresses | Map of external address regions, keyed by name. | map(string) |
{} |
|
global_addresses | List of global addresses to create. | list(string) |
[] |
|
internal_addresses | Map of internal addresses to create, keyed by name. | map(object({…})) |
{} |
|
internal_addresses_config | Optional configuration for internal addresses, keyed by name. Unused options can be set to null. | map(object({…})) |
{} |
|
psa_addresses | Map of internal addresses used for Private Service Access. | map(object({…})) |
{} |
|
psc_addresses | Map of internal addresses used for Private Service Connect. | map(object({…})) |
{} |
Outputs
name | description | sensitive |
---|---|---|
external_addresses | Allocated external addresses. | |
global_addresses | Allocated global external addresses. | |
internal_addresses | Allocated internal addresses. | |
psa_addresses | Allocated internal addresses for PSA endpoints. | |
psc_addresses | Allocated internal addresses for PSC endpoints. |