support Shared VPC in project module (#112)

This commit is contained in:
Ludovico Magnocavallo 2020-07-09 15:15:14 +02:00 committed by GitHub
parent 6f7add1cac
commit 67d03fd07c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 37 additions and 3 deletions

View File

@ -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`

View File

@ -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&#40;&#123;&#10;disable_on_destroy &#61; bool&#10;disable_dependent_services &#61; bool&#10;&#125;&#41;">object({...})</code> | | <code title="&#123;&#10;disable_on_destroy &#61; true&#10;disable_dependent_services &#61; true&#10;&#125;">...</code> |
| *services* | Service APIs to enable. | <code title="list&#40;string&#41;">list(string)</code> | | <code title="">[]</code> |
| *shared_vpc_config* | Configure Shared VPC for project. | <code title="object&#40;&#123;&#10;enabled &#61; bool&#10;service_projects &#61; list&#40;string&#41;&#10;&#125;&#41;">object({...})</code> | | <code title="&#123;&#10;enabled &#61; false&#10;service_projects &#61; &#91;&#93;&#10;&#125;">...</code> |
## Outputs

View File

@ -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]
}

View File

@ -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
]
}

View File

@ -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 = []
}
}