metadata.yaml (156 lines of code) (raw):
# Copyright 2023 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-functions
annotations:
config.kubernetes.io/local-config: "true"
spec:
title: Terraform Google Cloud Functions (Gen 2) module
source:
repo: sso://user/prabhuramasamy/terraform-google-cloud-functions
sourceType: git
version: 0.6.0
actuationTool:
type: Terraform
version: '>= 0.13'
examples:
- name: cloud_function2_gcs_source
location: examples/cloud_function2_gcs_source
- name: cloud_function2_pubsub_trigger
location: examples/cloud_function2_pubsub_trigger
variables:
- name: build_env_variables
description: User-provided build-time environment variables
type: map(string)
required: false
- name: description
description: Short description of the function
type: string
required: false
- name: docker_repository
description: User managed repository created in Artifact Registry optionally with a customer managed encryption key.
type: string
required: false
- name: entrypoint
description: The name of the function (as defined in source code) that will be executed. Defaults to the resource name suffix, if not specified
type: string
required: true
- name: event_trigger
description: Event triggers for the function
type: |-
object({
trigger_region = string
event_type = string
service_account_email = string
pubsub_topic = string
retry_policy = string
event_filters = set(object({
attribute = string
attribute_value = string
operator = string
}))
})
required: false
- name: function_location
description: The location of this cloud function
type: string
required: true
- name: function_name
description: A user-defined name of the function
type: string
required: true
- name: labels
description: A set of key/value label pairs associated with this Cloud Function
type: map(string)
required: false
- name: project_id
description: Project ID to create Cloud Function
type: string
required: true
- name: repo_source
description: Get the source from this location in a Cloud Source Repository
type: |-
object({
project_id = string
repo_name = string
branch_name = string
dir = string
tag_name = string
commit_sha = string
invert_regex = bool
})
required: false
- name: runtime
description: The runtime in which to run the function.
type: string
required: true
- name: service_config
description: Details of the service
type: |-
object({
max_instance_count = string
min_instance_count = string
available_memory = string
timeout_seconds = string
runtime_env_variables = map(string)
runtime_secret_env_variables = set(object({
key_name = string
project_id = string
secret = string
version = string
}))
secret_volumes = set(object({
mount_path = string
project_id = string
secret = string
versions = set(object({
version = string
path = string
}))
}))
vpc_connector = string
vpc_connector_egress_settings = string
ingress_settings = string
service_account_email = string
all_traffic_on_latest_revision = bool
})
default:
all_traffic_on_latest_revision: true
available_memory: 256M
ingress_settings: null
max_instance_count: "100"
min_instance_count: null
runtime_env_variables: null
runtime_secret_env_variables: null
secret_volumes: null
service_account_email: null
timeout_seconds: "60"
vpc_connector: null
vpc_connector_egress_settings: null
required: false
- name: storage_source
description: Get the source from this location in Google Cloud Storage
type: |-
object({
bucket = string
object = string
generation = string
})
required: false
- name: worker_pool
description: Name of the Cloud Build Custom Worker Pool that should be used to build the function.
type: string
required: false
outputs:
- name: function_name
description: Name of the Cloud Function (Gen 2)
- name: function_uri
description: URI of the Cloud Function (Gen 2)
roles:
- level: Project
roles:
- roles/owner
services:
- cloudresourcemanager.googleapis.com
- storage-api.googleapis.com
- serviceusage.googleapis.com