support Shared VPC in project module (#112)
This commit is contained in:
parent
6f7add1cac
commit
67d03fd07c
|
@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file.
|
|||
|
||||
## [Unreleased]
|
||||
|
||||
- add support for Shared VPC to the `project` module
|
||||
|
||||
## [2.4.2] - 2020-07-09
|
||||
|
||||
- add support for Shielded VM to `compute-vm`
|
||||
|
|
|
@ -103,6 +103,7 @@ module "project" {
|
|||
| *project_create* | Create project. When set to false, uses a data source to reference existing project. | <code title="">bool</code> | | <code title="">true</code> |
|
||||
| *service_config* | Configure service API activation. | <code title="object({ disable_on_destroy = bool disable_dependent_services = bool })">object({...})</code> | | <code title="{ disable_on_destroy = true disable_dependent_services = true }">...</code> |
|
||||
| *services* | Service APIs to enable. | <code title="list(string)">list(string)</code> | | <code title="">[]</code> |
|
||||
| *shared_vpc_config* | Configure Shared VPC for project. | <code title="object({ enabled = bool service_projects = list(string) })">object({...})</code> | | <code title="{ enabled = false service_projects = [] }">...</code> |
|
||||
|
||||
## Outputs
|
||||
|
||||
|
|
|
@ -212,3 +212,19 @@ resource "google_project_organization_policy" "list" {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
resource "google_compute_shared_vpc_host_project" "shared_vpc_host" {
|
||||
count = try(var.shared_vpc_config.enabled, false) ? 1 : 0
|
||||
project = local.project.project_id
|
||||
}
|
||||
|
||||
resource "google_compute_shared_vpc_service_project" "service_projects" {
|
||||
for_each = (
|
||||
try(var.shared_vpc_config.enabled, false)
|
||||
? toset(var.shared_vpc_config.service_projects)
|
||||
: toset([])
|
||||
)
|
||||
host_project = local.project.project_id
|
||||
service_project = each.value
|
||||
depends_on = [google_compute_shared_vpc_host_project.shared_vpc_host]
|
||||
}
|
||||
|
|
|
@ -20,7 +20,8 @@ output "project_id" {
|
|||
depends_on = [
|
||||
google_project_organization_policy.boolean,
|
||||
google_project_organization_policy.list,
|
||||
google_project_service.project_services
|
||||
google_project_service.project_services,
|
||||
google_compute_shared_vpc_service_project
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -30,7 +31,8 @@ output "name" {
|
|||
depends_on = [
|
||||
google_project_organization_policy.boolean,
|
||||
google_project_organization_policy.list,
|
||||
google_project_service.project_services
|
||||
google_project_service.project_services,
|
||||
google_compute_shared_vpc_service_project
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -40,7 +42,8 @@ output "number" {
|
|||
depends_on = [
|
||||
google_project_organization_policy.boolean,
|
||||
google_project_organization_policy.list,
|
||||
google_project_service.project_services
|
||||
google_project_service.project_services,
|
||||
google_compute_shared_vpc_service_project
|
||||
]
|
||||
}
|
||||
|
||||
|
|
|
@ -138,3 +138,15 @@ variable "service_config" {
|
|||
disable_dependent_services = true
|
||||
}
|
||||
}
|
||||
|
||||
variable "shared_vpc_config" {
|
||||
description = "Configure Shared VPC for project."
|
||||
type = object({
|
||||
enabled = bool
|
||||
service_projects = list(string)
|
||||
})
|
||||
default = {
|
||||
enabled = false
|
||||
service_projects = []
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue