Simplify new CF from onprem via PSC example (#280)
* add support for PSC addresses to net-address module * simplify PSC CF example * update diagram
This commit is contained in:
committed by
GitHub
parent
6a7e907b65
commit
813ea55d0d
@@ -47,6 +47,26 @@ module "addresses" {
|
||||
# tftest:modules=1:resources=2
|
||||
```
|
||||
|
||||
### PSC addresses
|
||||
|
||||
```hcl
|
||||
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
|
||||
```
|
||||
|
||||
<!-- BEGIN TFDOC -->
|
||||
## Variables
|
||||
|
||||
@@ -57,6 +77,7 @@ module "addresses" {
|
||||
| *global_addresses* | List of global addresses to create. | <code title="list(string)">list(string)</code> | | <code title="">[]</code> |
|
||||
| *internal_addresses* | Map of internal addresses to create, keyed by name. | <code title="map(object({ region = string subnetwork = string }))">map(object({...}))</code> | | <code title="">{}</code> |
|
||||
| *internal_addresses_config* | Optional configuration for internal addresses, keyed by name. Unused options can be set to null. | <code title="map(object({ address = string purpose = string tier = string }))">map(object({...}))</code> | | <code title="">{}</code> |
|
||||
| *psc_addresses* | Map of internal addresses used for Private Service Connect. | <code title="map(object({ address = string network = string }))">map(object({...}))</code> | | <code title="">{}</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
@@ -65,4 +86,5 @@ module "addresses" {
|
||||
| external_addresses | None | |
|
||||
| global_addresses | None | |
|
||||
| internal_addresses | None | |
|
||||
| psc_addresses | None | |
|
||||
<!-- END TFDOC -->
|
||||
|
||||
@@ -44,3 +44,15 @@ resource "google_compute_address" "internal" {
|
||||
purpose = try(var.internal_addresses_config[each.key].purpose, null)
|
||||
# labels = lookup(var.internal_address_labels, each.key, {})
|
||||
}
|
||||
|
||||
resource "google_compute_global_address" "psc" {
|
||||
for_each = var.psc_addresses
|
||||
project = var.project_id
|
||||
name = each.key
|
||||
description = "Terraform managed."
|
||||
address_type = "INTERNAL"
|
||||
network = each.value.network
|
||||
address = try(each.value.address, null)
|
||||
purpose = "PRIVATE_SERVICE_CONNECT"
|
||||
# labels = lookup(var.internal_address_labels, each.key, {})
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@ output "external_addresses" {
|
||||
address.name => {
|
||||
address = address.address
|
||||
self_link = address.self_link
|
||||
users = address.users
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -41,7 +40,16 @@ output "internal_addresses" {
|
||||
address.name => {
|
||||
address = address.address
|
||||
self_link = address.self_link
|
||||
users = address.users
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output "psc_addresses" {
|
||||
value = {
|
||||
for address in google_compute_global_address.psc :
|
||||
address.name => {
|
||||
address = address.address
|
||||
self_link = address.self_link
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,3 +61,12 @@ variable "project_id" {
|
||||
description = "Project where the addresses will be created."
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "psc_addresses" {
|
||||
description = "Map of internal addresses used for Private Service Connect."
|
||||
type = map(object({
|
||||
address = string
|
||||
network = string
|
||||
}))
|
||||
default = {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user