infra/metadata.yaml (104 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-cloud-client-api
annotations:
config.kubernetes.io/local-config: "true"
spec:
info:
title: Use a Cloud Client
source:
repo: https://github.com/googlecloudPlatform/terraform-cloud-client-api
sourceType: git
dir: /infra
actuationTool:
flavor: Terraform
version: ">= 0.13"
deploymentDuration:
configurationSecs: 60
deploymentSecs: 120
description:
tagline: "Interact with Google Cloud using the Cloud SDK Client Libraries to transform and query information."
detailed: "This solution deploys a processing job, rendering service, and initial unprocessed data, which is then manipulated by the processing job to be viewed by the rendering service."
cloudProducts:
- productId: STORAGE_SECTION
pageUrl: ""
label: Cloud Storage
- productId: RUN_SECTION
pageUrl: ""
label: "Cloud Run"
content:
architecture:
diagramUrl: "https://www.gstatic.com/pantheon/images/solutions/cloud_client_api_v1.svg"
description:
- "Unprocessed data has been uploaded to a Cloud Storage bucket."
- "A Cloud Run job transforms the raw data into a more structured format that the frontend service can understand. The Cloud Run job uploads the processed data in a second Cloud Storage bucket."
- "The frontend, hosted as a Cloud Run service, pulls the processed data from the second Cloud Storage bucket."
- "The user can visit the web application served by the frontend Cloud Run service."
examples:
- name: language_deployment
location: examples/language_deployment
interfaces:
variables:
- name: deployment_name
description: Identifier for deployment, included in resource names.
varType: string
defaultValue: client-api
- name: image_version
description: Version of application image to use
varType: string
defaultValue: 0.3.0
- name: labels
description: A set of key/value label pairs to assign to the resources deployed by this solution.
varType: map(string)
defaultValue: {}
- name: language
description: Programming language implementation to use (nodejs, java, python)
varType: string
required: true
- name: project_id
description: The Google Cloud project ID where resources will be deployed.
varType: string
required: true
- name: region
description: The Google Cloud region where resources will be deployed.
varType: string
defaultValue: us-central1
outputs:
- name: job_name
description: Name of the deployed Cloud Run Job
- name: project_id
description: Google Cloud project ID
- name: service_url
description: URL of the deployed Cloud Run service
requirements:
roles:
- level: Project
roles:
- roles/storage.admin
- roles/run.admin
- roles/iam.serviceAccountAdmin
- roles/iam.serviceAccountUser
- roles/resourcemanager.projectIamAdmin
- roles/iam.roleAdmin
- roles/serviceusage.serviceUsageAdmin
services:
- bigquery.googleapis.com
- bigquerymigration.googleapis.com
- bigquerystorage.googleapis.com
- cloudtrace.googleapis.com
- datastore.googleapis.com
- logging.googleapis.com
- monitoring.googleapis.com
- servicemanagement.googleapis.com
- serviceusage.googleapis.com
- sql-component.googleapis.com
- storage.googleapis.com
- storage-api.googleapis.com
- storage-component.googleapis.com
- artifactregistry.googleapis.com
- cloudbuild.googleapis.com
- cloudresourcemanager.googleapis.com
- compute.googleapis.com
- iam.googleapis.com
- run.googleapis.com