-
Notifications
You must be signed in to change notification settings - Fork 368
/
metadata.yaml
194 lines (193 loc) · 6.85 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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# 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-vm-umig
annotations:
config.kubernetes.io/local-config: "true"
spec:
info:
title: Unmanaged Instance Group (UMIG)
source:
repo: https://github.com/terraform-google-modules/terraform-google-vm
sourceType: git
dir: /modules/umig
version: 12.1.2
actuationTool:
flavor: Terraform
version: ">=0.13.0"
description: {}
content:
examples:
- name: additional_disks
location: examples/instance_template/additional_disks
- name: alias_ip_range
location: examples/instance_template/alias_ip_range
- name: autoscaler
location: examples/mig/autoscaler
- name: confidential_computing
location: examples/confidential_computing
- name: confidential_computing
location: examples/instance_template/confidential_computing
- name: confidential_computing_intel
location: examples/confidential_computing_intel
- name: disk_snapshot
location: examples/compute_instance/disk_snapshot
- name: encrypted_disks
location: examples/instance_template/encrypted_disks
- name: full
location: examples/mig/full
- name: full
location: examples/umig/full
- name: healthcheck
location: examples/mig/healthcheck
- name: mig_stateful
location: examples/mig_stateful
- name: multiple_interfaces
location: examples/compute_instance/multiple_interfaces
- name: named_ports
location: examples/umig/named_ports
- name: next_hop
location: examples/compute_instance/next_hop
- name: simple
location: examples/compute_instance/simple
- name: simple
location: examples/instance_template/simple
- name: simple
location: examples/mig/simple
- name: simple
location: examples/mig_with_percent/simple
- name: simple
location: examples/preemptible_and_regular_instance_templates/simple
- name: simple
location: examples/umig/simple
- name: static_ips
location: examples/umig/static_ips
- name: tags
location: examples/compute_instance/tags
interfaces:
variables:
- name: project_id
description: The GCP project ID
varType: string
- name: network
description: Network to deploy to. Only one of network or subnetwork should be specified.
varType: string
defaultValue: ""
- name: region
description: The GCP region where the unmanaged instance group resides.
varType: string
required: true
- name: subnetwork
description: Subnet to deploy to. Only one of network or subnetwork should be specified.
varType: string
defaultValue: ""
- name: subnetwork_project
description: The project that subnetwork belongs to
varType: string
defaultValue: ""
- name: additional_networks
description: Additional network interface details for GCE, if any.
varType: |-
list(object({
network = string
subnetwork = string
subnetwork_project = string
network_ip = string
access_config = list(object({
nat_ip = string
network_tier = string
}))
ipv6_access_config = list(object({
network_tier = string
}))
}))
defaultValue: []
- name: hostname
description: Hostname of instances
varType: string
defaultValue: ""
- name: static_ips
description: List of static IPs for VM instances
varType: list(string)
defaultValue: []
- name: num_instances
description: Number of instances to create. This value is ignored if static_ips is provided.
varType: string
defaultValue: "1"
- name: named_ports
description: Named name and named port
varType: |-
list(object({
name = string
port = number
}))
defaultValue: []
- name: instance_template
description: Instance template self_link used to create compute instances
varType: string
required: true
- name: access_config
description: Access configurations, i.e. IPs via which the VM instance can be accessed via the Internet.
varType: |-
list(list(object({
nat_ip = string
network_tier = string
})))
defaultValue: []
- name: ipv6_access_config
description: IPv6 access configurations. Currently a max of 1 IPv6 access configuration is supported. If not specified, the instance will have no external IPv6 Internet access.
varType: |-
list(list(object({
network_tier = string
})))
defaultValue: []
- name: hostname_suffix_separator
description: Separator character to compose hostname when add_hostname_suffix is set to true.
varType: string
defaultValue: "-"
- name: zones
description: (Optional) List of availability zones to create VM instances in
varType: list(string)
defaultValue: []
outputs:
- name: available_zones
description: List of available zones in region
- name: instances_details
description: List of all details for compute instances
- name: instances_self_links
description: List of self-links for compute instances
- name: self_links
description: List of self-links for unmanaged instance groups
- name: umig_details
description: List of all details for unmanaged instance groups
requirements:
roles:
- level: Project
roles:
- roles/owner
- roles/compute.admin
- roles/compute.networkAdmin
- roles/iam.serviceAccountUser
- roles/compute.instanceAdmin
services:
- cloudresourcemanager.googleapis.com
- storage-api.googleapis.com
- serviceusage.googleapis.com
- compute.googleapis.com
- iam.googleapis.com
providerVersions:
- source: hashicorp/google
version: ">= 3.88, < 7"