diff --git a/modules/cloud-function/README.md b/modules/cloud-function/README.md index 5c6733e53..3cba80bcc 100644 --- a/modules/cloud-function/README.md +++ b/modules/cloud-function/README.md @@ -176,7 +176,8 @@ module "cf-http" { | *service_account* | Service account email. Unused if service account is auto-created. | string | | null | | *service_account_create* | Auto-create service account. | bool | | false | | *trigger_config* | Function trigger configuration. Leave null for HTTP trigger. | object({...}) | | null | -| *vpc_connector_config* | VPC connector configuration. Set `create_config` attributes to trigger creation. | object({...}) | | null | +| *vpc_connector* | VPC connector configuration. Set create to 'true' if a new connector needs to be created | object({...}) | | null | +| *vpc_connector_config* | VPC connector network configuration. Must be provided if new VPC connector is being created | object({...}) | | null | ## Outputs diff --git a/modules/cloud-function/main.tf b/modules/cloud-function/main.tf index 65201531d..74fab3e7b 100644 --- a/modules/cloud-function/main.tf +++ b/modules/cloud-function/main.tf @@ -35,26 +35,25 @@ locals { : var.service_account ) vpc_connector = ( - var.vpc_connector_config == null + var.vpc_connector == null ? null : ( - var.vpc_connector_config.create_config == null - ? var.vpc_connector_config.name + try(var.vpc_connector.create, false) == false + ? var.vpc_connector.name : google_vpc_access_connector.connector.0.id ) ) } resource "google_vpc_access_connector" "connector" { - count = try(var.vpc_connector_config.create_config, null) != null ? 1 : 0 + count = try(var.vpc_connector.create, false) == false ? 0 : 1 project = var.project_id - name = var.vpc_connector_config.name + name = var.vpc_connector.name region = var.region - ip_cidr_range = var.vpc_connector_config.create_config.ip_cidr_range - network = var.vpc_connector_config.create_config.network + ip_cidr_range = var.vpc_connector_config.ip_cidr_range + network = var.vpc_connector_config.network } - resource "google_cloudfunctions_function" "function" { project = var.project_id region = var.region @@ -75,7 +74,7 @@ resource "google_cloudfunctions_function" "function" { vpc_connector = local.vpc_connector vpc_connector_egress_settings = try( - var.vpc_connector_config.egress_settings, null + var.vpc_connector.egress_settings, null ) dynamic "event_trigger" { diff --git a/modules/cloud-function/variables.tf b/modules/cloud-function/variables.tf index 351859b39..92a49b739 100644 --- a/modules/cloud-function/variables.tf +++ b/modules/cloud-function/variables.tf @@ -131,15 +131,22 @@ variable "trigger_config" { default = null } -variable "vpc_connector_config" { - description = "VPC connector configuration. Set `create_config` attributes to trigger creation." +variable "vpc_connector" { + description = "VPC connector configuration. Set create to 'true' if a new connector needs to be created" type = object({ - egress_settings = string + create = bool name = string - create_config = object({ - ip_cidr_range = string - network = string - }) + egress_settings = string }) default = null } + +variable "vpc_connector_config" { + description = "VPC connector network configuration. Must be provided if new VPC connector is being created" + type = object({ + ip_cidr_range = string + network = string + }) + default = null +} +