* TF provider >= 4.54.0 now returns `rsa_encrypted_key` for `google_compute_disk.disks["attached-disk"]` (see hashicorp/terraform-provider-google#4448) * Add this field to expected model to fix test assertion failure * Update required TF provider to 4.55.0 (latest) since the assertion will now fail with <4.54.0, which do not return `rsa_encrypted_key` * Updated the whole repo on advice from @ludoo
Net Address Reservation Module
This module allows reserving Compute Engine external, global, and internal addresses.
Examples
External and global addresses
module "addresses" {
source = "./fabric/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 = "./fabric/modules/net-address"
project_id = var.project_id
internal_addresses = {
ilb-1 = {
purpose = "SHARED_LOADBALANCER_VIP"
region = var.region
subnetwork = var.subnet.self_link
}
ilb-2 = {
address = "10.0.0.2"
region = var.region
subnetwork = var.subnet.self_link
}
}
}
# tftest modules=1 resources=2
PSA addresses
module "addresses" {
source = "./fabric/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 = "./fabric/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({…})) |
{} |
|
| 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. |