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
# 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 = {}
}