-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathvariables.tf
More file actions
140 lines (120 loc) · 3.52 KB
/
variables.tf
File metadata and controls
140 lines (120 loc) · 3.52 KB
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
variable "cluster_name" {
description = "Name of the EKS cluster to attach the node group to."
type = string
nullable = false
}
variable "subnet_ids" {
description = "List of subnet IDs for the node group."
type = list(string)
nullable = false
}
variable "node_group_name" {
description = "Name of the node group."
type = string
nullable = false
}
variable "desired_size" {
description = "Desired number of worker nodes."
type = number
default = 1
nullable = false
}
variable "min_size" {
description = "Minimum number of worker nodes."
type = number
default = 1
nullable = false
}
variable "max_size" {
description = "Maximum number of worker nodes."
type = number
default = 4
nullable = false
}
variable "instance_types" {
description = <<EOF
Instance types for worker nodes.
Recommended Configuration:
- For other workloads: `r7g`, `r6g` families (ARM-based Graviton, without local disks)
- For materialize instance workloads: `r6gd`, `r7gd` families (ARM-based Graviton, with local NVMe disks)
- Enable disk setup when using instance types with local storage
EOF
type = list(string)
nullable = false
}
variable "capacity_type" {
description = "Capacity type for worker nodes (ON_DEMAND or SPOT)."
type = string
default = "ON_DEMAND"
validation {
condition = contains(["ON_DEMAND", "SPOT"], var.capacity_type)
error_message = "Capacity type must be either ON_DEMAND or SPOT."
}
}
variable "ami_type" {
description = "AMI type for the node group."
type = string
default = "BOTTLEROCKET_ARM_64"
nullable = false
}
variable "labels" {
description = "Labels to apply to the node group."
type = map(string)
default = {}
}
variable "node_taints" {
description = "Taints to apply to the node group."
type = list(object({
key = string
value = string
effect = string
}))
default = []
}
variable "tags" {
description = "Tags to apply to all resources"
type = map(string)
default = {}
}
variable "swap_enabled" {
description = "Whether to enable swap on the local NVMe disks."
type = bool
default = true
nullable = false
}
variable "disk_setup_image" {
description = "Docker image for the disk setup script"
type = string
default = "docker.io/materialize/ephemeral-storage-setup-image:v0.4.1"
nullable = false
}
variable "cluster_service_cidr" {
description = "The CIDR block for the cluster service"
type = string
nullable = false
}
variable "cluster_primary_security_group_id" {
description = "The ID of the primary security group for the cluster"
type = string
nullable = false
}
variable "iam_role_use_name_prefix" {
description = "Use name prefix for IAM roles"
type = bool
default = true
}
variable "aws_region" {
description = "AWS region, used for destroy-time ENI cleanup."
type = string
nullable = false
}
variable "aws_profile" {
description = "AWS CLI profile, used for destroy-time ENI cleanup. If empty, the default credential chain is used."
type = string
default = ""
}
variable "launch_template_name" {
description = "Explicit name for the launch template. If null, the upstream module generates a name based on the node group. Set this to control the exact launch template name, e.g., to preserve existing launch templates during infrastructure changes."
type = string
default = null
}