diff --git a/metadata.yaml b/metadata.yaml index c8f61524..08e7b8c5 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -321,13 +321,13 @@ spec: roles: - level: Project roles: + - roles/iam.serviceAccountAdmin - roles/artifactregistry.admin - roles/iam.serviceAccountUser - roles/serviceusage.serviceUsageViewer - roles/cloudkms.admin - roles/resourcemanager.projectIamAdmin - roles/run.admin - - roles/iam.serviceAccountAdmin services: - accesscontextmanager.googleapis.com - cloudbilling.googleapis.com diff --git a/modules/job-exec/README.md b/modules/job-exec/README.md index 8c703254..f521ac4e 100644 --- a/modules/job-exec/README.md +++ b/modules/job-exec/README.md @@ -55,7 +55,7 @@ Functional examples are included in the | timeout | Max allowed time duration the Task may be active before the system will actively try to mark it failed and kill associated containers. | `string` | `"600s"` | no | | volume\_mounts | Volume to mount into the container's filesystem. |
list(object({
name = string
mount_path = string
})) | `[]` | no |
| volumes | A list of Volumes to make available to containers. | list(object({
name = string
cloud_sql_instance = optional(object({
instances = set(string)
}))
gcs = optional(object({
bucket = string
read_only = optional(bool)
mount_options = optional(list(string))
}))
})) | `[]` | no |
-| vpc\_access | VPC Access configuration to use for this Task. | list(object({
connector = string
egress = string
})) | `[]` | no |
+| vpc\_access | Configure this to enable your service to send traffic to a Virtual Private Cloud. Set egress to ALL\_TRAFFIC or PRIVATE\_RANGES\_ONLY. Choose a connector or network\_interfaces (for direct VPC egress). [More info](https://cloud.google.com/run/docs/configuring/connecting-vpc) | object({
connector = optional(string)
egress = optional(string)
network_interfaces = optional(object({
network = optional(string)
subnetwork = optional(string)
tags = optional(list(string))
}))
}) | `null` | no |
## Outputs
diff --git a/modules/job-exec/main.tf b/modules/job-exec/main.tf
index 8f9f05b6..527937c0 100644
--- a/modules/job-exec/main.tf
+++ b/modules/job-exec/main.tf
@@ -98,10 +98,18 @@ resource "google_cloud_run_v2_job" "job" {
}
dynamic "vpc_access" {
- for_each = var.vpc_access
+ for_each = var.vpc_access != null ? [var.vpc_access] : []
content {
connector = vpc_access.value["connector"]
egress = vpc_access.value["egress"]
+ dynamic "network_interfaces" {
+ for_each = var.vpc_access.network_interfaces != null ? [var.vpc_access.network_interfaces] : []
+ content {
+ network = network_interfaces.value["network"]
+ subnetwork = network_interfaces.value["subnetwork"]
+ tags = network_interfaces.value["tags"]
+ }
+ }
}
}
}
diff --git a/modules/job-exec/metadata.yaml b/modules/job-exec/metadata.yaml
index 18ac7a16..ee9f12ec 100644
--- a/modules/job-exec/metadata.yaml
+++ b/modules/job-exec/metadata.yaml
@@ -173,13 +173,17 @@ spec:
}))
defaultValue: []
- name: vpc_access
- description: VPC Access configuration to use for this Task.
+ description: Configure this to enable your service to send traffic to a Virtual Private Cloud. Set egress to ALL_TRAFFIC or PRIVATE_RANGES_ONLY. Choose a connector or network_interfaces (for direct VPC egress). [More info](https://cloud.google.com/run/docs/configuring/connecting-vpc)
varType: |-
- list(object({
- connector = string
- egress = string
- }))
- defaultValue: []
+ object({
+ connector = optional(string)
+ egress = optional(string)
+ network_interfaces = optional(object({
+ network = optional(string)
+ subnetwork = optional(string)
+ tags = optional(list(string))
+ }))
+ })
- name: limits
description: Resource limits to the container
varType: |-
@@ -203,13 +207,13 @@ spec:
roles:
- level: Project
roles:
+ - roles/cloudkms.admin
- roles/resourcemanager.projectIamAdmin
- roles/run.admin
- roles/iam.serviceAccountAdmin
- roles/artifactregistry.admin
- roles/iam.serviceAccountUser
- roles/serviceusage.serviceUsageViewer
- - roles/cloudkms.admin
services:
- accesscontextmanager.googleapis.com
- cloudbilling.googleapis.com
diff --git a/modules/job-exec/variables.tf b/modules/job-exec/variables.tf
index 18c1d14d..d6bb16c4 100644
--- a/modules/job-exec/variables.tf
+++ b/modules/job-exec/variables.tf
@@ -137,12 +137,17 @@ variable "volume_mounts" {
}
variable "vpc_access" {
- type = list(object({
- connector = string
- egress = string
- }))
- description = "VPC Access configuration to use for this Task."
- default = []
+ type = object({
+ connector = optional(string)
+ egress = optional(string)
+ network_interfaces = optional(object({
+ network = optional(string)
+ subnetwork = optional(string)
+ tags = optional(list(string))
+ }))
+ })
+ description = "Configure this to enable your service to send traffic to a Virtual Private Cloud. Set egress to ALL_TRAFFIC or PRIVATE_RANGES_ONLY. Choose a connector or network_interfaces (for direct VPC egress). [More info](https://cloud.google.com/run/docs/configuring/connecting-vpc)"
+ default = null
}
variable "limits" {
diff --git a/modules/secure-cloud-run-security/metadata.yaml b/modules/secure-cloud-run-security/metadata.yaml
index 1895886d..496a7d24 100644
--- a/modules/secure-cloud-run-security/metadata.yaml
+++ b/modules/secure-cloud-run-security/metadata.yaml
@@ -131,13 +131,13 @@ spec:
roles:
- level: Project
roles:
- - roles/iam.serviceAccountUser
- - roles/serviceusage.serviceUsageViewer
- - roles/cloudkms.admin
- roles/resourcemanager.projectIamAdmin
- roles/run.admin
- roles/iam.serviceAccountAdmin
- roles/artifactregistry.admin
+ - roles/iam.serviceAccountUser
+ - roles/serviceusage.serviceUsageViewer
+ - roles/cloudkms.admin
services:
- accesscontextmanager.googleapis.com
- cloudbilling.googleapis.com
diff --git a/modules/secure-serverless-harness/metadata.yaml b/modules/secure-serverless-harness/metadata.yaml
index d61e5972..01b8ed6a 100644
--- a/modules/secure-serverless-harness/metadata.yaml
+++ b/modules/secure-serverless-harness/metadata.yaml
@@ -280,13 +280,13 @@ spec:
roles:
- level: Project
roles:
- - roles/run.admin
- - roles/iam.serviceAccountAdmin
- roles/artifactregistry.admin
- roles/iam.serviceAccountUser
- roles/serviceusage.serviceUsageViewer
- roles/cloudkms.admin
- roles/resourcemanager.projectIamAdmin
+ - roles/run.admin
+ - roles/iam.serviceAccountAdmin
services:
- accesscontextmanager.googleapis.com
- cloudbilling.googleapis.com
diff --git a/modules/v2/metadata.yaml b/modules/v2/metadata.yaml
index f70376c8..e32b28c2 100644
--- a/modules/v2/metadata.yaml
+++ b/modules/v2/metadata.yaml
@@ -563,13 +563,13 @@ spec:
roles:
- level: Project
roles:
+ - roles/run.admin
+ - roles/iam.serviceAccountAdmin
- roles/iam.serviceAccountUser
- roles/serviceusage.serviceUsageViewer
- roles/resourcemanager.projectIamAdmin
- roles/compute.viewer
- roles/iap.admin
- - roles/run.admin
- - roles/iam.serviceAccountAdmin
services:
- cloudresourcemanager.googleapis.com
- compute.googleapis.com