-
Notifications
You must be signed in to change notification settings - Fork 23
/
variables.tf
338 lines (285 loc) · 11.4 KB
/
variables.tf
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
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
variable "prefix" {
description = "Prefix for resources created by this module"
type = string
}
variable "f5_username" {
description = "The admin username of the F5 Bigip that will be deployed"
default = "bigipuser"
}
variable "f5_password" {
description = "The admin password of the F5 Bigip that will be deployed"
default = ""
}
variable "vm_name" {
description = "Name of F5 BIGIP VM to be used,it should be unique `name`,default is empty string meaning module adds with prefix + random_id"
default = ""
}
variable "resource_group_name" {
description = "The name of the resource group in which the resources will be created"
type = string
}
variable "mgmt_subnet_ids" {
description = "List of maps of subnetids of the virtual network where the virtual machines will reside."
type = list(object({
subnet_id = string
public_ip = bool
private_ip_primary = string
}))
default = [{ "subnet_id" = null, "public_ip" = null, "private_ip_primary" = null }]
}
variable "external_subnet_ids" {
description = "List of maps of subnetids of the virtual network where the virtual machines will reside."
type = list(object({
subnet_id = string
public_ip = bool
private_ip_primary = string
private_ip_secondary = string
}))
default = [{ "subnet_id" = null, "public_ip" = null, "private_ip_primary" = null, "private_ip_secondary" = null }]
}
variable "internal_subnet_ids" {
description = "List of maps of subnetids of the virtual network where the virtual machines will reside."
type = list(object({
subnet_id = string
public_ip = bool
private_ip_primary = string
}))
default = [{ "subnet_id" = null, "public_ip" = null, "private_ip_primary" = null }]
}
variable "mgmt_securitygroup_ids" {
description = "List of network Security Groupids for management network "
type = list(string)
}
variable "external_securitygroup_ids" {
description = "List of network Security Groupids for external network "
type = list(string)
default = []
}
variable "internal_securitygroup_ids" {
description = "List of network Security Groupids for internal network "
type = list(string)
default = []
}
variable "mgmt_app_securitygroup_ids" {
description = "List of network Security Groupids for management network "
type = list(string)
default = []
}
variable "external_app_securitygroup_ids" {
description = "List of network Security Groupids for external network "
type = list(string)
default = []
}
variable "internal_app_securitygroup_ids" {
description = "List of network Security Groupids for internal network "
type = list(string)
default = []
}
variable "f5_instance_type" {
description = "Specifies the size of the virtual machine."
type = string
default = "Standard_D8s_v4"
}
variable "os_disk_size" {
description = "The size of the Data Disk which should be created"
type = number
default = 84
}
variable "image_publisher" {
description = "Specifies product image publisher"
type = string
default = "f5-networks"
}
variable "f5_image_name" {
type = string
default = "f5-big-best-plus-hourly-25mbps"
description = <<-EOD
After finding the image to use with the Azure CLI with a variant of the following;
az vm image list --publisher f5-networks --all -f better
{
"offer": "f5-big-ip-better",
"publisher": "f5-networks",
"sku": "f5-bigip-virtual-edition-25m-better-hourly",
"urn": "f5-networks:f5-big-ip-better:f5-bigip-virtual-edition-25m-better-hourly:14.1.404001",
"version": "14.1.404001"
}
f5_image_name is equivalent to the "sku" returned.
EOD
}
variable "f5_version" {
type = string
default = "latest"
description = <<-EOD
After finding the image to use with the Azure CLI with a variant of the following;
az vm image list --publisher f5-networks --all -f better
{
"offer": "f5-big-ip-better",
"publisher": "f5-networks",
"sku": "f5-bigip-virtual-edition-25m-better-hourly",
"urn": "f5-networks:f5-big-ip-better:f5-bigip-virtual-edition-25m-better-hourly:14.1.404001",
"version": "14.1.404001"
}
f5_version is equivalent to the "version" returned.
EOD
}
variable "f5_product_name" {
type = string
default = "f5-big-ip-best"
description = <<-EOD
After finding the image to use with the Azure CLI with a variant of the following;
az vm image list --publisher f5-networks --all -f better
{
"offer": "f5-big-ip-better",
"publisher": "f5-networks",
"sku": "f5-bigip-virtual-edition-25m-better-hourly",
"urn": "f5-networks:f5-big-ip-better:f5-bigip-virtual-edition-25m-better-hourly:14.1.404001",
"version": "14.1.404001"
}
f5_product_name is equivalent to the "offer" returned.
EOD
}
variable "storage_account_type" {
description = "Defines the type of storage account to be created. Valid options are Standard_LRS, Standard_ZRS, Standard_GRS, Standard_RAGRS, Premium_LRS."
default = "Standard_LRS"
}
variable "enable_accelerated_networking" {
type = bool
description = "(Optional) Enable accelerated networking on Network interface"
default = false
}
variable "enable_ssh_key" {
type = bool
description = "(Optional) Enable ssh key authentication in Linux virtual Machine"
default = false
}
variable "f5_ssh_publickey" {
description = "public key to be used for ssh access to the VM. e.g. c:/home/id_rsa.pub"
}
variable "script_name" {
type = string
default = "f5_onboard"
}
## Please check and update the latest DO URL from https://github.com/F5Networks/f5-declarative-onboarding/releases
# always point to a specific version in order to avoid inadvertent configuration inconsistency
variable "DO_URL" {
description = "URL to download the BIG-IP Declarative Onboarding module"
type = string
default = "https://github.com/F5Networks/f5-declarative-onboarding/releases/download/v1.46.0/f5-declarative-onboarding-1.46.0-7.noarch.rpm"
}
## Please check and update the latest AS3 URL from https://github.com/F5Networks/f5-appsvcs-extension/releases/latest
# always point to a specific version in order to avoid inadvertent configuration inconsistency
variable "AS3_URL" {
description = "URL to download the BIG-IP Application Service Extension 3 (AS3) module"
type = string
default = "https://github.com/F5Networks/f5-appsvcs-extension/releases/download/v3.53.0/f5-appsvcs-3.53.0-7.noarch.rpm"
}
## Please check and update the latest TS URL from https://github.com/F5Networks/f5-telemetry-streaming/releases/latest
# always point to a specific version in order to avoid inadvertent configuration inconsistency
variable "TS_URL" {
description = "URL to download the BIG-IP Telemetry Streaming module"
type = string
default = "https://github.com/F5Networks/f5-telemetry-streaming/releases/download/v1.37.0/f5-telemetry-1.37.0-1.noarch.rpm"
}
## Please check and update the latest FAST URL from https://github.com/F5Networks/f5-appsvcs-templates/releases/latest
# always point to a specific version in order to avoid inadvertent configuration inconsistency
variable "FAST_URL" {
description = "URL to download the BIG-IP FAST module"
type = string
default = "https://github.com/F5Networks/f5-appsvcs-templates/releases/download/v1.25.0/f5-appsvcs-templates-1.25.0-1.noarch.rpm"
}
## Please check and update the latest Failover Extension URL from https://github.com/F5Networks/f5-cloud-failover-extension/releases/latest
# always point to a specific version in order to avoid inadvertent configuration inconsistency
variable "CFE_URL" {
description = "URL to download the BIG-IP Cloud Failover Extension module"
type = string
default = "https://github.com/F5Networks/f5-cloud-failover-extension/releases/download/v2.1.3/f5-cloud-failover-2.1.3-3.noarch.rpm"
}
## Please check and update the latest runtime init URL from https://github.com/F5Networks/f5-bigip-runtime-init/releases/latest
# always point to a specific version in order to avoid inadvertent configuration inconsistency
variable "INIT_URL" {
description = "URL to download the BIG-IP runtime init"
type = string
default = "https://cdn.f5.com/product/cloudsolutions/f5-bigip-runtime-init/v2.0.3/dist/f5-bigip-runtime-init-2.0.3-1.gz.run"
}
variable "libs_dir" {
description = "Directory on the BIG-IP to download the A&O Toolchain into"
default = "/config/cloud/azure/node_modules"
type = string
}
variable "onboard_log" {
description = "Directory on the BIG-IP to store the cloud-init logs"
default = "/var/log/startup-script.log"
type = string
}
variable "availability_zone" {
description = "If you want the VM placed in an Azure Availability Zone, and the Azure region you are deploying to supports it, specify the number of the existing Availability Zone you want to use."
default = 1
}
variable "availabilityZones_public_ip" {
description = "The availability zone to allocate the Public IP in. Possible values are Zone-Redundant, 1, 2, 3, and No-Zone."
type = string
default = "Zone-Redundant"
}
variable "azure_secret_rg" {
description = "The name of the resource group in which the Azure Key Vault exists"
type = string
default = ""
}
variable "az_keyvault_authentication" {
description = "Whether to use key vault to pass authentication"
type = bool
default = false
}
variable "azure_keyvault_name" {
description = "The name of the Azure Key Vault to use"
type = string
default = ""
}
variable "azure_keyvault_secret_name" {
description = "The name of the Azure Key Vault secret containing the password"
type = string
default = ""
}
variable "custom_user_data" {
description = "Provide a custom bash script or cloud-init script the BIG-IP will run on creation"
type = string
default = null
}
variable "user_identity" {
type = string
default = null
description = "The ID of the managed user identity to assign to the BIG-IP instance"
}
variable "external_enable_ip_forwarding" {
description = "Enable IP forwarding on the External interfaces. To allow inline routing for backends, this must be set to true"
default = true
}
variable "mgmt_enable_ip_forwarding" {
description = "Enable IP forwarding on the Mgmt interfaces. To allow inline routing for backends"
default = false
}
variable "tags" {
description = "key:value tags to apply to resources built by the module"
type = map(any)
default = {}
}
variable "externalnic_failover_tags" {
description = "key:value tags to apply to external nic resources built by the module"
type = any
default = {}
}
variable "internalnic_failover_tags" {
description = "key:value tags to apply to internal nic resources built by the module"
type = any
default = {}
}
variable "cfe_secondary_vip_disable" {
type = bool
description = "Disable Externnal Public IP Association to instance based on this flag (Usecase CFE Scenario)"
default = false
}
variable "sleep_time" {
type = string
default = "300s"
description = "The number of seconds/minutes of delay to build into creation of BIG-IP VMs; default is 250. BIG-IP requires a few minutes to complete the onboarding process and this value can be used to delay the processing of dependent Terraform resources."
}