modules/job-exec/metadata.yaml (125 lines of code) (raw):
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: blueprints.cloud.google.com/v1alpha1
kind: BlueprintMetadata
metadata:
name: terraform-google-cloud-run-job-exec
annotations:
config.kubernetes.io/local-config: "true"
spec:
info:
title: Cloud Run Job
source:
repo: https://github.com/GoogleCloudPlatform/terraform-google-cloud-run.git
sourceType: git
dir: /modules/job-exec
version: 0.17.2
actuationTool:
flavor: Terraform
version: ">= 0.13"
description: {}
content:
examples:
- name: cloud_run_vpc_connector
location: examples/cloud_run_vpc_connector
- name: secure_cloud_run
location: examples/secure_cloud_run
- name: secure_cloud_run_standalone
location: examples/secure_cloud_run_standalone
- name: simple_cloud_run
location: examples/simple_cloud_run
- name: simple_cloud_run_with_cmek
location: examples/simple_cloud_run_with_cmek
- name: simple_job_exec
location: examples/simple_job_exec
- name: v2
location: examples/v2
- name: v2_with_gmp
location: examples/v2_with_gmp
interfaces:
variables:
- name: argument
description: Arguments passed to the ENTRYPOINT command, include these only if image entrypoint needs arguments
varType: list(string)
defaultValue: []
- name: cloud_run_deletion_protection
description: This field prevents Terraform from destroying or recreating the Cloud Run v2 Jobs and Services
varType: bool
defaultValue: true
- name: container_command
description: Leave blank to use the ENTRYPOINT command defined in the container image, include these only if image entrypoint should be overwritten
varType: list(string)
defaultValue: []
- name: env_secret_vars
description: Environment variables (Secret Manager)
varType: |-
list(object({
name = string
value_source = set(object({
secret_key_ref = object({
secret = string
version = optional(string, "latest")
})
}))
}))
defaultValue: []
- name: env_vars
description: Environment variables (cleartext)
varType: |-
list(object({
value = string
name = string
}))
defaultValue: []
- name: exec
description: Whether to execute job after creation
varType: bool
defaultValue: false
- name: image
description: GCR hosted image URL to deploy
varType: string
required: true
- name: labels
description: A set of key/value label pairs to assign to the Cloud Run job.
varType: map(string)
defaultValue: {}
- name: launch_stage
description: The launch stage. (see https://cloud.google.com/products#product-launch-stages). Defaults to GA.
varType: string
defaultValue: ""
- name: limits
description: Resource limits to the container
varType: |-
object({
cpu = optional(string)
memory = optional(string)
})
- name: location
description: Cloud Run job deployment location
varType: string
required: true
- name: max_retries
description: Number of retries allowed per Task, before marking this Task failed.
varType: number
- name: name
description: The name of the Cloud Run job to create
varType: string
required: true
- name: parallelism
description: Specifies the maximum desired number of tasks the execution should run at given time. Must be <= taskCount.
varType: number
- name: project_id
description: The project ID to deploy to
varType: string
required: true
- name: service_account_email
description: Service Account email needed for the job
varType: string
defaultValue: ""
- name: task_count
description: Specifies the desired number of tasks the execution should run.
varType: number
- name: timeout
description: Max allowed time duration the Task may be active before the system will actively try to mark it failed and kill associated containers.
varType: string
defaultValue: 600s
- name: volume_mounts
description: Volume to mount into the container's filesystem.
varType: |-
list(object({
name = string
mount_path = string
}))
defaultValue: []
- name: volumes
description: A list of Volumes to make available to containers.
varType: |-
list(object({
name = string
cloud_sql_instance = object({
instances = set(string)
})
}))
defaultValue: []
- name: vpc_access
description: VPC Access configuration to use for this Task.
varType: |-
list(object({
connector = string
egress = string
}))
defaultValue: []
outputs:
- name: id
description: Cloud Run Job ID
requirements:
roles:
- level: Project
roles:
- roles/resourcemanager.folderAdmin
- roles/resourcemanager.projectCreator
- roles/resourcemanager.projectDeleter
- level: Project
roles:
- roles/accesscontextmanager.policyAdmin
- roles/orgpolicy.policyAdmin
- level: Project
roles:
- roles/run.admin
- roles/iam.serviceAccountAdmin
- roles/artifactregistry.admin
- roles/iam.serviceAccountUser
- roles/serviceusage.serviceUsageViewer
- roles/cloudkms.admin
services:
- cloudresourcemanager.googleapis.com
- storage-api.googleapis.com
- serviceusage.googleapis.com
- run.googleapis.com
- cloudkms.googleapis.com
- iam.googleapis.com
- accesscontextmanager.googleapis.com
- cloudbilling.googleapis.com
- monitoring.googleapis.com
- compute.googleapis.com