@@ -23,29 +23,71 @@ variable "eks_cluster_version" {
23
23
type = string
24
24
}
25
25
26
- variable "eks_mng_name" {
27
- description = " Name for the EKS managed nodegroup"
26
+ # Admin Node Group Variables
27
+ variable "eks_admin_name" {
28
+ description = " Name for the admin node group"
28
29
type = string
30
+ default = " admin"
31
+ }
32
+
33
+ variable "eks_admin_instance_types" {
34
+ description = " Instance types for admin node group"
35
+ type = list (string )
36
+ default = [" t3.large" ]
37
+ }
38
+
39
+ variable "eks_admin_min_size" {
40
+ description = " Minimum number of nodes in admin node group"
41
+ type = number
42
+ default = 1
43
+ }
44
+
45
+ variable "eks_admin_max_size" {
46
+ description = " Maximum number of nodes in admin node group"
47
+ type = number
48
+ default = 3
49
+ }
50
+
51
+ variable "eks_admin_desired_size" {
52
+ description = " Desired number of nodes in admin node group"
53
+ type = number
54
+ default = 2
55
+ }
56
+
57
+ # Comet Node Group Variables
58
+ variable "eks_comet_name" {
59
+ description = " Name for the comet node group"
60
+ type = string
61
+ default = " comet"
29
62
}
30
63
31
64
variable "eks_mng_ami_type" {
32
65
description = " AMI family to use for the EKS nodes"
33
66
type = string
34
67
}
35
68
36
- variable "eks_node_types " {
37
- description = " Node instance types for EKS managed node group"
69
+ variable "eks_comet_instance_types " {
70
+ description = " Instance types for comet node group"
38
71
type = list (string )
72
+ default = [" m7i.4xlarge" ]
39
73
}
40
74
41
- variable "eks_mng_desired_size " {
42
- description = " Desired number of nodes in EKS cluster "
75
+ variable "eks_comet_min_size " {
76
+ description = " Minimum number of nodes in comet node group "
43
77
type = number
78
+ default = 2
44
79
}
45
80
46
- variable "eks_mng_max_size " {
47
- description = " Maximum number of nodes in EKS cluster "
81
+ variable "eks_comet_max_size " {
82
+ description = " Maximum number of nodes in comet node group "
48
83
type = number
84
+ default = 10
85
+ }
86
+
87
+ variable "eks_comet_desired_size" {
88
+ description = " Desired number of nodes in comet node group"
89
+ type = number
90
+ default = 3
49
91
}
50
92
51
93
variable "eks_mng_disk_size" {
@@ -90,33 +132,107 @@ variable "comet_ec2_s3_iam_policy" {
90
132
default = null
91
133
}
92
134
135
+ # Node Group Toggles
136
+ variable "enable_admin_node_group" {
137
+ description = " Enable admin node group for EKS cluster management tasks"
138
+ type = bool
139
+ default = true
140
+ }
141
+
142
+ variable "enable_comet_node_group" {
143
+ description = " Enable comet node group for main Comet application workloads"
144
+ type = bool
145
+ default = true
146
+ }
147
+
148
+ variable "enable_druid_node_group" {
149
+ description = " Enable druid node group for Apache Druid workloads (requires enable_mpm_infra to be true)"
150
+ type = bool
151
+ default = true
152
+ }
153
+
154
+ variable "enable_airflow_node_group" {
155
+ description = " Enable airflow node group for Apache Airflow workloads (requires enable_mpm_infra to be true)"
156
+ type = bool
157
+ default = true
158
+ }
159
+
93
160
variable "enable_mpm_infra" {
94
- description = " Sets MNGs to be created for MPM compute "
161
+ description = " Master toggle for MPM infrastructure (Druid/Airflow node groups will only be created if this is true) "
95
162
type = bool
163
+ default = false
96
164
}
97
165
98
- variable "eks_druid_instance_type" {
99
- description = " Instance type for EKS Druid nodes"
166
+ # Druid Node Group Variables
167
+ variable "eks_druid_name" {
168
+ description = " Name for the druid node group"
100
169
type = string
170
+ default = " druid"
171
+ }
172
+
173
+ variable "eks_druid_instance_types" {
174
+ description = " Instance types for druid node group"
175
+ type = list (string )
176
+ default = [" m7i.2xlarge" ]
177
+ }
178
+
179
+ variable "eks_druid_min_size" {
180
+ description = " Minimum number of nodes in druid node group"
181
+ type = number
182
+ default = 2
183
+ }
184
+
185
+ variable "eks_druid_max_size" {
186
+ description = " Maximum number of nodes in druid node group"
187
+ type = number
188
+ default = 8
101
189
}
102
190
103
- variable "eks_druid_node_count " {
104
- description = " Instance count for EKS Druid nodes "
191
+ variable "eks_druid_desired_size " {
192
+ description = " Desired number of nodes in druid node group "
105
193
type = number
194
+ default = 4
106
195
}
107
196
108
- variable "eks_airflow_instance_type" {
109
- description = " Instance type for EKS Airflow nodes"
197
+ # Airflow Node Group Variables
198
+ variable "eks_airflow_name" {
199
+ description = " Name for the airflow node group"
110
200
type = string
201
+ default = " airflow"
111
202
}
112
203
113
- variable "eks_airflow_node_count" {
114
- description = " Instance count for EKS Airflow nodes"
204
+ variable "eks_airflow_instance_types" {
205
+ description = " Instance types for airflow node group"
206
+ type = list (string )
207
+ default = [" t3.medium" ]
208
+ }
209
+
210
+ variable "eks_airflow_min_size" {
211
+ description = " Minimum number of nodes in airflow node group"
212
+ type = number
213
+ default = 1
214
+ }
215
+
216
+ variable "eks_airflow_max_size" {
217
+ description = " Maximum number of nodes in airflow node group"
115
218
type = number
219
+ default = 4
220
+ }
221
+
222
+ variable "eks_airflow_desired_size" {
223
+ description = " Desired number of nodes in airflow node group"
224
+ type = number
225
+ default = 2
116
226
}
117
227
118
228
variable "common_tags" {
119
229
type = map (string )
120
230
description = " A map of common tags"
121
231
default = {}
122
232
}
233
+
234
+ variable "additional_node_groups" {
235
+ description = " Additional EKS managed node groups to create beyond the predefined ones (admin, comet, druid, airflow)"
236
+ type = any
237
+ default = {}
238
+ }
0 commit comments