diff --git a/modules/net-vpc-swp/README.md b/modules/net-vpc-swp/README.md index 381d04eeda..1e5d999dfb 100644 --- a/modules/net-vpc-swp/README.md +++ b/modules/net-vpc-swp/README.md @@ -171,17 +171,18 @@ module "secure-web-proxy" { |---|---|:---:|:---:|:---:| | [addresses](variables.tf#L19) | One or more IP addresses to be used for Secure Web Proxy. | | ✓ | | | [certificates](variables.tf#L27) | List of certificates to be used for Secure Web Proxy. | list(string) | ✓ | | -| [name](variables.tf#L44) | Name of the Secure Web Proxy resource. | string | ✓ | | -| [network](variables.tf#L49) | Name of the network the Secure Web Proxy is deployed into. | string | ✓ | | -| [project_id](variables.tf#L110) | Project id of the project that holds the network. | string | ✓ | | -| [region](variables.tf#L115) | Region where resources will be created. | string | ✓ | | -| [subnetwork](variables.tf#L126) | Name of the subnetwork the Secure Web Proxy is deployed into. | string | ✓ | | +| [name](variables.tf#L50) | Name of the Secure Web Proxy resource. | string | ✓ | | +| [network](variables.tf#L55) | Name of the network the Secure Web Proxy is deployed into. | string | ✓ | | +| [project_id](variables.tf#L119) | Project id of the project that holds the network. | string | ✓ | | +| [region](variables.tf#L124) | Region where resources will be created. | string | ✓ | | +| [subnetwork](variables.tf#L135) | Name of the subnetwork the Secure Web Proxy is deployed into. | string | ✓ | | | [delete_swg_autogen_router_on_destroy](variables.tf#L32) | Delete automatically provisioned Cloud Router on destroy. | bool | | true | -| [labels](variables.tf#L38) | Resource labels. | map(string) | | {} | -| [policy_rules](variables.tf#L54) | List of policy rule definitions, default to allow action. Available keys: secure_tags, url_lists, custom. URL lists that only have values set will be created. | object({…}) | | {} | -| [ports](variables.tf#L104) | Ports to use for Secure Web Proxy. | list(number) | | [443] | -| [scope](variables.tf#L120) | Scope determines how configuration across multiple Gateway instances are merged. | string | | null | -| [tls_inspection_config](variables.tf#L131) | TLS inspection configuration. | object({…}) | | null | +| [description](variables.tf#L38) | Optional description for the created resources. | string | | "Managed by Terraform." | +| [labels](variables.tf#L44) | Resource labels. | map(string) | | {} | +| [policy_rules](variables.tf#L60) | List of policy rule definitions, default to allow action. Available keys: secure_tags, url_lists, custom. URL lists that only have values set will be created. | object({…}) | | {} | +| [ports](variables.tf#L113) | Ports to use for Secure Web Proxy. | list(number) | | [443] | +| [scope](variables.tf#L129) | Scope determines how configuration across multiple Gateway instances are merged. | string | | null | +| [tls_inspection_config](variables.tf#L140) | TLS inspection configuration. | object({…}) | | null | ## Outputs diff --git a/modules/net-vpc-swp/main.tf b/modules/net-vpc-swp/main.tf index 88b2fc743c..bf19517ce9 100644 --- a/modules/net-vpc-swp/main.tf +++ b/modules/net-vpc-swp/main.tf @@ -23,7 +23,7 @@ resource "google_network_security_gateway_security_policy" "policy" { project = var.project_id name = var.name location = var.region - description = "Managed by Terraform." + description = var.description tls_inspection_policy = var.tls_inspection_config != null ? google_network_security_tls_inspection_policy.tls-policy.0.id : null } @@ -33,6 +33,7 @@ resource "google_network_security_tls_inspection_policy" "tls-policy" { project = var.project_id name = var.name location = var.region + description = coalesce(var.tls_inspection_config.description, var.description) ca_pool = var.tls_inspection_config.ca_pool exclude_public_ca_set = var.tls_inspection_config.exclude_public_ca_set } @@ -43,6 +44,7 @@ resource "google_network_security_gateway_security_policy_rule" "secure_tag_rule project = var.project_id name = each.key location = var.region + description = coalesce(each.value.description, var.description) gateway_security_policy = google_network_security_gateway_security_policy.policy.name enabled = each.value.enabled priority = each.value.priority @@ -61,7 +63,7 @@ resource "google_network_security_url_lists" "url_lists" { project = var.project_id name = each.key location = var.region - description = "Managed by Terraform." + description = coalesce(each.value.description, var.description) values = each.value.values } @@ -71,6 +73,7 @@ resource "google_network_security_gateway_security_policy_rule" "url_list_rules" project = var.project_id name = each.key location = var.region + description = coalesce(each.value.description, var.description) gateway_security_policy = google_network_security_gateway_security_policy.policy.name enabled = each.value.enabled priority = each.value.priority @@ -93,6 +96,7 @@ resource "google_network_security_gateway_security_policy_rule" "custom_rules" { provider = google-beta name = each.key location = var.region + description = coalesce(each.value.description, var.description) gateway_security_policy = google_network_security_gateway_security_policy.policy.name enabled = each.value.enabled priority = each.value.priority @@ -107,6 +111,7 @@ resource "google_network_services_gateway" "gateway" { project = var.project_id name = var.name location = var.region + description = var.description labels = var.labels addresses = var.addresses != null ? var.addresses : [] type = "SECURE_WEB_GATEWAY" diff --git a/modules/net-vpc-swp/variables.tf b/modules/net-vpc-swp/variables.tf index 5f540dc2f4..17d9061ffc 100644 --- a/modules/net-vpc-swp/variables.tf +++ b/modules/net-vpc-swp/variables.tf @@ -35,6 +35,12 @@ variable "delete_swg_autogen_router_on_destroy" { default = true } +variable "description" { + description = "Optional description for the created resources." + type = string + default = "Managed by Terraform." +} + variable "labels" { description = "Resource labels." type = map(string) @@ -62,6 +68,7 @@ variable "policy_rules" { action = optional(string, "ALLOW") enabled = optional(bool, true) tls_inspection_enabled = optional(bool, false) + description = optional(string) })), {}) url_lists = optional(map(object({ @@ -73,6 +80,7 @@ variable "policy_rules" { action = optional(string, "ALLOW") enabled = optional(bool, true) tls_inspection_enabled = optional(bool, false) + description = optional(string) })), {}) custom = optional(map(object({ @@ -82,6 +90,7 @@ variable "policy_rules" { action = optional(string, "ALLOW") enabled = optional(bool, true) tls_inspection_enabled = optional(bool, false) + description = optional(string) })), {}) }) validation { @@ -131,8 +140,9 @@ variable "subnetwork" { variable "tls_inspection_config" { description = "TLS inspection configuration." type = object({ - ca_pool = string + ca_pool = optional(string, null) exclude_public_ca_set = optional(bool, false) + description = optional(string) }) default = null } diff --git a/tests/modules/net_vpc_swp/examples/basic.yaml b/tests/modules/net_vpc_swp/examples/basic.yaml index e3c63b5397..1b2e357c07 100644 --- a/tests/modules/net_vpc_swp/examples/basic.yaml +++ b/tests/modules/net_vpc_swp/examples/basic.yaml @@ -32,6 +32,7 @@ values: delete_swg_autogen_router_on_destroy: true labels: example: "value" + description: "Managed by Terraform." counts: google_network_security_gateway_security_policy: 1 diff --git a/tests/modules/net_vpc_swp/examples/rules.yaml b/tests/modules/net_vpc_swp/examples/rules.yaml index ee79664f30..d6c0789a80 100644 --- a/tests/modules/net_vpc_swp/examples/rules.yaml +++ b/tests/modules/net_vpc_swp/examples/rules.yaml @@ -30,6 +30,7 @@ values: network: "projects/my-project/global/networks/my-network" subnetwork: "projects/my-project/regions/europe-west4/subnetworks/my-subnetwork" delete_swg_autogen_router_on_destroy: true + description: "Managed by Terraform." module.secure-web-proxy.google_network_security_gateway_security_policy_rule.secure_tag_rules["secure-tag-1"]: project: "my-project" name: "secure-tag-1" @@ -40,6 +41,7 @@ values: application_matcher: null tls_inspection_enabled: false basic_profile: "ALLOW" + description: "Managed by Terraform." module.secure-web-proxy.google_network_security_gateway_security_policy_rule.secure_tag_rules["secure-tag-2"]: project: "my-project" name: "secure-tag-2" @@ -50,6 +52,7 @@ values: application_matcher: null tls_inspection_enabled: false basic_profile: "ALLOW" + description: "Managed by Terraform." module.secure-web-proxy.google_network_security_gateway_security_policy_rule.url_list_rules["url-list-1"]: project: "my-project" name: "url-list-1" @@ -59,6 +62,7 @@ values: application_matcher: null tls_inspection_enabled: false basic_profile: "ALLOW" + description: "Managed by Terraform." module.secure-web-proxy.google_network_security_gateway_security_policy_rule.url_list_rules["url-list-2"]: project: "my-project" name: "url-list-2" @@ -69,6 +73,7 @@ values: application_matcher: null tls_inspection_enabled: false basic_profile: "ALLOW" + description: "Managed by Terraform." module.secure-web-proxy.google_network_security_gateway_security_policy_rule.custom_rules["custom-rule-1"]: project: "my-project" name: "custom-rule-1" @@ -79,6 +84,7 @@ values: application_matcher: null tls_inspection_enabled: false basic_profile: "DENY" + description: "Managed by Terraform." module.secure-web-proxy.google_network_security_url_lists.url_lists["my-url-list"]: project: "my-project" name: "my-url-list" @@ -86,6 +92,7 @@ values: values: - "www.google.com" - "google.com" + description: "Managed by Terraform." counts: google_network_security_gateway_security_policy: 1 diff --git a/tests/modules/net_vpc_swp/examples/tls.yaml b/tests/modules/net_vpc_swp/examples/tls.yaml index 7d366eef96..039e58f5a7 100644 --- a/tests/modules/net_vpc_swp/examples/tls.yaml +++ b/tests/modules/net_vpc_swp/examples/tls.yaml @@ -18,11 +18,13 @@ values: name: "secure-web-proxy" project: "my-project" location: "europe-west4" + description: "Managed by Terraform." module.secure-web-proxy.google_network_security_tls_inspection_policy.tls-policy[0]: project: "my-project" name: "secure-web-proxy" location: "europe-west4" exclude_public_ca_set: false + description: "Managed by Terraform." module.secure-web-proxy.google_network_services_gateway.gateway: project: "my-project" name: "secure-web-proxy" @@ -35,6 +37,7 @@ values: network: "projects/my-project/global/networks/my-network" subnetwork: "projects/my-project/regions/europe-west4/subnetworks/my-subnetwork" delete_swg_autogen_router_on_destroy: true + description: "Managed by Terraform." module.secure-web-proxy.google_network_security_gateway_security_policy_rule.custom_rules["custom-rule-1"]: project: "my-project" name: "custom-rule-1" @@ -45,6 +48,7 @@ values: application_matcher: "request.path.contains('generate_204')" tls_inspection_enabled: true basic_profile: "ALLOW" + description: "Managed by Terraform." google_privateca_ca_pool.pool: name: "secure-web-proxy-capool" location: "europe-west4"