-
Notifications
You must be signed in to change notification settings - Fork 96
/
Copy pathmetadata.yaml
103 lines (102 loc) · 4.27 KB
/
metadata.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# 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-three-tier-web-app
annotations:
config.kubernetes.io/local-config: "true"
spec:
info:
title: Three-tier web app
source:
repo: https://github.com/GoogleCloudPlatform/terraform-google-three-tier-web-app.git
sourceType: git
version: 0.1.9
actuationTool:
flavor: Terraform
version: ">= 0.13"
description:
tagline: Create a web app using a three-tiered architecture
detailed: |-
This solution quickly and securely creates a web app using a three-tiered architecture with a front end, middleware, and back end (PostgreSQL database).
You can choose whether to deploy your solution through the console directly or download as Terraform on GitHub to deploy later.
architecture:
- User requests are sent to the front end, which is deployed on two Cloud Run services as containers to support high scalability applications.
- The request then lands on the middle tier, which is the API layer that provides access to the backend. This is also deployed on Cloud Run for scalability and ease of deployment in multiple languages. This middleware is a Golang based API.
- The frequent requests are cached in Memorystore for Redis for serving the request fast in-memory. The response is then served back to the user.
- For new requests from the users, Cloud SQL provides the backend as the database layer. The response is then served back to the user.
- For DevOps, Cloud Build packages up the containers and deploys them to be available as Cloud Run services.
content:
documentation:
- title: Architecture Diagram
url: assets/three_tier_web_app_v4.svg
examples:
- name: mysql
location: examples/mysql
- name: simple_example
location: examples/simple_example
interfaces:
variables:
- name: database_type
description: Cloud SQL Database flavor, mysql or postgresql
varType: string
defaultValue: postgresql
- name: deployment_name
description: The name of this particular deployment, will get added as a prefix to most resources.
varType: string
defaultValue: three-tier-app
- name: enable_apis
description: Whether or not to enable underlying apis in this solution. .
varType: string
defaultValue: true
- name: labels
description: A map of labels to apply to contained resources.
varType: map(string)
defaultValue:
three-tier-app: true
- name: project_id
description: The project ID to deploy to
varType: string
required: true
- name: region
description: The Compute Region to deploy to
varType: string
defaultValue: us-central1
- name: run_roles_list
description: The list of roles that run needs
varType: list(string)
defaultValue:
- roles/cloudsql.instanceUser
- roles/cloudsql.client
- name: zone
description: The Compute Zone to deploy to
varType: string
defaultValue: us-central1-a
outputs:
- name: endpoint
description: The url of the front end which we want to surface to the user
- name: neos_toc_url
description: The URL to launch the in-console tutorial for the Three Tier App solution
- name: sqlservername
description: The name of the database that we randomly generated.
requirements:
roles:
- level: Project
roles:
- roles/owner
services:
- cloudresourcemanager.googleapis.com
- serviceusage.googleapis.com
- servicenetworking.googleapis.com