You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: variables.tf
+44-26
Original file line number
Diff line number
Diff line change
@@ -3,14 +3,17 @@
3
3
#########################
4
4
5
5
variable"cluster_name" {
6
+
description="The name of the Amazon EKS cluster. This is a unique identifier for your EKS cluster within the AWS region."
6
7
default="eks-cluster"
7
8
}
8
9
9
10
variable"aws_region" {
11
+
description="AWS region where the EKS cluster will be deployed. This should be set to the region where you want your Kubernetes resources to reside."
10
12
default="us-east-1"
11
13
}
12
14
13
15
variable"k8s_version" {
16
+
description="The version of Kubernetes to use for the EKS cluster. This version should be compatible with the AWS EKS service and other infrastructure components."
14
17
default="1.29"
15
18
}
16
19
@@ -19,12 +22,14 @@ variable "k8s_version" {
19
22
#########################
20
23
21
24
variable"nodes_instances_sizes" {
25
+
description="A list of EC2 instance types to use for the EKS worker nodes. These instance types should balance between cost, performance, and resource requirements for your workload."
22
26
default=[
23
27
"t3.large"
24
28
]
25
29
}
26
30
27
31
variable"auto_scale_options" {
32
+
description="Configuration for the EKS cluster auto-scaling. It includes the minimum (min), maximum (max), and desired (desired) number of worker nodes."
description="Enable or disable the Cluster Autoscaler installation. When true, Cluster Autoscaler is installed to automatically adjust the number of nodes in the cluster."
38
43
default=false
39
44
}
40
45
46
+
41
47
#########################
42
48
### KARPENTER CONFIGS ###
43
49
#########################
44
50
45
51
variable"karpenter_toggle" {
46
52
type=bool
47
-
description="Enable Karpenter Installation"
53
+
description="Determines whether Karpenter is enabled for the EKS cluster. Karpenter is an open-source auto-scaler for Kubernetes clusters."
48
54
default=true
49
55
}
50
56
51
57
variable"karpenter_instance_family" {
52
58
type=list(any)
53
-
description="Instance family list to launch on karpenter"
59
+
description="Defines a list of EC2 instance families to be considered by Karpenter for node provisioning. Instance families like 'c6' and 'c5' offer different compute capabilities."
description="Defines the capacity types for provisioning instances in the cluster, such as 'spot' or 'on_demand', offering cost-saving options or consistent availability respectively."
73
79
default=[
74
80
"spot"
75
81
]
76
82
}
77
83
78
84
variable"karpenter_availability_zones" {
79
85
type=list(any)
80
-
description="Availability zones to launch nodes"
86
+
description="A list of AWS availability zones where Karpenter should launch nodes. These zones should be in the same region as the EKS cluster."
description="Indicates whether the Network Load Balancer (NLB) for the EKS cluster should be internal, restricting access to within the AWS network."
94
101
default=false
95
102
}
96
103
97
104
variable"nlb_ingress_type" {
98
105
type=string
106
+
description="Specifies the type of ingress to be used, such as 'network', determining how the NLB handles incoming traffic to the EKS cluster."
99
107
default="network"
100
108
}
101
109
102
110
variable"proxy_protocol_v2" {
103
111
type=bool
112
+
description="Enables or disables Proxy Protocol v2 on the Network Load Balancer, used for preserving client IP addresses and other connection information."
description="Determines if termination protection is enabled for the Network Load Balancer, preventing accidental deletion."
109
119
default=false
110
120
}
111
121
112
122
variable"enable_cross_zone_load_balancing" {
113
123
type=bool
124
+
description="Controls whether cross-zone load balancing is enabled for the Network Load Balancer, allowing even traffic distribution across all zones."
114
125
default=false
115
126
}
116
127
128
+
117
129
#########################
118
130
### ROUTE53 CONFIGS ###
119
131
#########################
120
132
121
133
variable"cluster_private_zone" {
122
134
type=string
135
+
description="The private DNS zone name for the EKS cluster in AWS Route53. This zone is used for internal DNS resolution within the cluster."
123
136
default="k8s.cluster"
124
137
}
125
138
126
-
127
139
#########################
128
140
### ISTIO CONFIGS ###
129
141
#########################
130
142
131
143
variable"istio_ingress_min_pods" {
132
144
type=number
145
+
description="The minimum number of pods to maintain for the Istio ingress gateway. This ensures basic availability and load handling."
133
146
default=3
134
-
description="Minimum pods for istio-ingress-gateway"
135
147
}
136
148
137
149
variable"istio_ingress_max_pods" {
138
150
type=number
151
+
description="The maximum number of pods to scale up for the Istio ingress gateway. This limits the resources used and manages the scaling behavior."
139
152
default=9
140
-
description="Maximum pods for istio-ingress-gateway"
141
153
}
142
154
143
155
#########################
144
156
# PROMETHEUS CONFIGS #
145
157
#########################
146
158
147
159
variable"grafana_virtual_service_host" {
148
-
type=string
149
-
default="grafana.k8s.raj.ninja"
160
+
type=string
161
+
description="The hostname for the Grafana virtual service, used in Istio routing. This host is used to access Grafana dashboards for monitoring metrics."
162
+
default="grafana.k8s.raj.ninja"
150
163
}
151
164
152
165
variable"kiali_virtual_service_host" {
153
-
type=string
154
-
default="kiali.k8s.raj.ninja"
166
+
type=string
167
+
description="The hostname for the Kiali virtual service, a part of Istio's service mesh visualization. It provides insights into the mesh topology and performance."
168
+
default="kiali.k8s.raj.ninja"
155
169
}
156
170
157
171
variable"jaeger_virtual_service_host" {
158
-
type=string
159
-
default="jaeger.k8s.raj.ninja"
172
+
type=string
173
+
description="The hostname for the Jaeger virtual service, used for tracing and monitoring microservices within the Istio service mesh."
174
+
default="jaeger.k8s.raj.ninja"
160
175
}
161
176
162
177
###############################
163
178
### ARGO-ROLLOUTS CONFIGS ###
164
179
###############################
165
180
166
181
variable"argo_rollouts_virtual_service_host" {
167
-
type=string
168
-
default="argo-rollouts.k8s.raj.ninja"
182
+
type=string
183
+
description="The hostname for the Argo Rollouts virtual service, used for advanced deployment capabilities like canary and blue-green deployments in Kubernetes."
description="Controls the installation of the Descheduler, a tool to balance and optimize the distribution of Pods across the cluster for improved efficiency."
178
194
default=false
179
195
}
180
196
181
197
variable"chaos_mesh_toggle" {
182
198
type=bool
183
-
description="Enable Chaos Mesh Installation"
199
+
description="Determines whether to install Chaos Mesh, a cloud-native Chaos Engineering platform that orchestrates chaos experiments on Kubernetes environments."
description="Enables the AWS Node Termination Handler, which ensures that Kubernetes workloads are gracefully handled during EC2 instance terminations or disruptions."
190
206
default=true
191
207
}
192
208
193
209
variable"argo_rollouts_toggle" {
194
210
type=bool
195
-
description="Enable Argo Rollouts Installation"
211
+
description="Enables the installation of Argo Rollouts, providing advanced deployment strategies like Canary and Blue-Green deployments in Kubernetes."
196
212
default=true
197
213
}
198
214
199
215
variable"keda_toggle" {
200
216
type=bool
201
-
description="Enable Keda Installation"
217
+
description="Activates the installation of KEDA (Kubernetes Event-Driven Autoscaling), which adds event-driven scaling capabilities to Kubernetes workloads."
202
218
default=true
203
219
}
204
220
@@ -208,29 +224,31 @@ variable "keda_toggle" {
208
224
209
225
variable"addon_cni_version" {
210
226
type=string
211
-
description="VPC CNI Version"
227
+
description="Specifies the version of the AWS VPC CNI (Container Network Interface) plugin to use, which manages the network interfaces for pod networking."
212
228
default="v1.14.1-eksbuild.1"
213
229
}
214
230
215
231
variable"addon_coredns_version" {
216
232
type=string
217
-
description="CoreDNS Version"
233
+
description="Defines the version of CoreDNS to use, a DNS server/forwarder that is integral to internal Kubernetes DNS resolution."
218
234
default="v1.11.1-eksbuild.4"
219
235
}
220
236
221
237
variable"addon_kubeproxy_version" {
222
238
type=string
223
-
description="Kubeproxy Version"
239
+
description="Sets the version of Kubeproxy to be used, which handles Kubernetes network services like forwarding the requests to correct containers."
224
240
default="v1.29.0-eksbuild.1"
225
241
}
226
242
227
243
variable"addon_csi_version" {
228
244
type=string
229
-
description="CSI Version"
245
+
description="Indicates the version of the Container Storage Interface (CSI) driver to use for managing storage volumes in Kubernetes."
230
246
default="v1.26.1-eksbuild.1"
231
247
}
232
248
233
249
variable"default_tags" {
250
+
type=map(string)
251
+
description="A map of default tags to apply to all resources. These tags can help with identifying and organizing resources within the AWS environment."
0 commit comments