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
|
# Variables ====================================================================
variable "tags" {
description = "Tags applied to all resources."
type = map(string)
default = {}
}
variable "instances" {
description = <<-EOT
Map of EC2 instance definitions.
ami_id is required and must be explicitly passed in
to ensure deterministic builds.
EOT
type = map(object({
name_suffix = string
ami_id = string
instance_type = string
subnet_id = string
iam_instance_profile = optional(string)
key_name = optional(string)
associate_public_ip = optional(bool, false)
ebs_optimized = optional(bool, true)
monitoring = optional(bool, false)
placement_group = optional(string)
tenancy = optional(string, "default")
primary_private_ip = optional(string)
secondary_private_ips = optional(list(string), [])
user_data = optional(string)
user_data_base64 = optional(string)
metadata_http_tokens = optional(string, "required")
metadata_hop_limit = optional(number, 1)
root_volume = object({
size = number
type = optional(string, "gp3")
kms_key_id = optional(string)
delete_on_termination = optional(bool, true)
tags = optional(map(string), {})
})
data_volumes = optional(list(object({
device_name = string
volume_size = number
volume_type = optional(string, "gp3")
kms_key_id = optional(string)
delete_on_termination = optional(bool, true)
iops = optional(number)
throughput = optional(number)
tags = optional(map(string), {})
})), [])
instance_tags = optional(map(string), {})
}))
default = {}
}
|