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
+}
+