1
1
locals {
2
- eks_worker_tags = {
3
- " k8s.io/cluster-autoscaler/enabled" = " true"
4
- " k8s.io/cluster-autoscaler/${local.name}" = " owned"
5
- }
6
2
7
3
eks_map_roles = [
8
4
{
@@ -13,13 +9,14 @@ locals {
13
9
]
14
10
}
15
11
16
- data "aws_ami" "eks_default_bottlerocket " {
12
+ data "aws_ami" "eks_default_arm64 " {
17
13
most_recent = true
18
14
owners = [" amazon" ]
19
15
20
16
filter {
21
17
name = " name"
22
- values = [" bottlerocket-aws-k8s-${ var . eks_cluster_version } -x86_64-*" ]
18
+ values = [" amazon-eks-arm64-node-${ var . eks_cluster_version } -v*" ]
19
+
23
20
}
24
21
}
25
22
@@ -65,7 +62,10 @@ module "eks" {
65
62
cluster_endpoint_private_access = var. eks_cluster_endpoint_private_access
66
63
cluster_endpoint_public_access_cidrs = var. eks_cluster_endpoint_only_pritunl ? [" ${ module . pritunl [0 ]. pritunl_endpoint } /32" ] : [" 0.0.0.0/0" ]
67
64
65
+ node_security_group_tags = { " karpenter.sh/discovery" = local.name }
66
+
68
67
self_managed_node_group_defaults = {
68
+ ami_id = data.aws_ami.eks_default_arm64.id
69
69
block_device_mappings = {
70
70
xvda = {
71
71
device_name = " /dev/xvda"
@@ -78,7 +78,6 @@ module "eks" {
78
78
79
79
}
80
80
}
81
- iam_role_additional_policies = var.eks_workers_additional_policies
82
81
metadata_options = {
83
82
http_endpoint = " enabled"
84
83
http_tokens = " required"
@@ -88,81 +87,18 @@ module "eks" {
88
87
iam_role_attach_cni_policy = false
89
88
}
90
89
self_managed_node_groups = {
91
- spot = {
92
- name = " ${ local . name } -spot"
93
- iam_role_name = " ${ local . name } -spot"
94
- desired_size = var.node_group_spot.desired_capacity
95
- max_size = var.node_group_spot.max_capacity
96
- min_size = var.node_group_spot.min_capacity
97
- subnet_ids = module.vpc.private_subnets
98
-
99
- bootstrap_extra_args = " --kubelet-extra-args '--node-labels=eks.amazonaws.com/capacityType=SPOT --node-labels=nodegroup=spot'"
100
- capacity_rebalance = var.node_group_spot.capacity_rebalance
101
- use_mixed_instances_policy = var.node_group_spot.use_mixed_instances_policy
102
- mixed_instances_policy = var.node_group_spot.mixed_instances_policy
103
-
104
- tags = local.eks_worker_tags
105
- },
106
- ondemand = {
107
- name = " ${ local . name } -ondemand"
108
- iam_role_name = " ${ local . name } -ondemand"
109
- desired_size = var.node_group_ondemand.desired_capacity
110
- max_size = var.node_group_ondemand.max_capacity
111
- min_size = var.node_group_ondemand.min_capacity
112
- instance_type = var.node_group_ondemand.instance_type
113
- subnet_ids = module.vpc.private_subnets
114
-
115
- bootstrap_extra_args = " --kubelet-extra-args '--node-labels=eks.amazonaws.com/capacityType=ON_DEMAND --node-labels=nodegroup=ondemand'"
116
- capacity_rebalance = var.node_group_ondemand.capacity_rebalance
117
- use_mixed_instances_policy = var.node_group_ondemand.use_mixed_instances_policy
118
- mixed_instances_policy = var.node_group_ondemand.mixed_instances_policy
119
-
120
- tags = local.eks_worker_tags
121
- },
122
- ci = {
123
- name = " ${ local . name } -ci"
124
- iam_role_name = " ${ local . name } -ci"
125
- desired_size = var.node_group_ci.desired_capacity
126
- max_size = var.node_group_ci.max_capacity
127
- min_size = var.node_group_ci.min_capacity
128
- subnet_ids = module.vpc.private_subnets
129
-
130
- bootstrap_extra_args = " --kubelet-extra-args '--node-labels=eks.amazonaws.com/capacityType=SPOT --node-labels=nodegroup=ci --register-with-taints=nodegroup=ci:NoSchedule'"
131
- capacity_rebalance = var.node_group_ci.capacity_rebalance
132
- use_mixed_instances_policy = var.node_group_ci.use_mixed_instances_policy
133
- mixed_instances_policy = var.node_group_ci.mixed_instances_policy
134
-
135
- tags = merge (local. eks_worker_tags , { " k8s.io/cluster-autoscaler/node-template/label/nodegroup" = " ci" })
136
- },
137
- bottlerocket = {
138
- name = " ${ local . name } -bottlerocket"
139
- iam_role_name = " ${ local . name } -bottlerocket"
140
- desired_size = var.node_group_br.desired_capacity
141
- max_size = var.node_group_br.max_capacity
142
- min_size = var.node_group_br.min_capacity
90
+ default = {
91
+ name = " ${ local . name } -default"
92
+ iam_role_name = " ${ local . name } -default"
93
+ desired_size = var.node_group_default.desired_capacity
94
+ max_size = var.node_group_default.max_capacity
95
+ min_size = var.node_group_default.min_capacity
143
96
subnet_ids = module.vpc.private_subnets
144
97
145
- platform = " bottlerocket"
146
- ami_id = data.aws_ami.eks_default_bottlerocket.id
147
- bootstrap_extra_args = <<- EOT
148
- [settings.host-containers.admin]
149
- enabled = false
150
-
151
- [settings.host-containers.control]
152
- enabled = true
153
-
154
- [settings.kubernetes.node-labels]
155
- "eks.amazonaws.com/capacityType" = "SPOT"
156
- "nodegroup" = "bottlerocket"
157
-
158
- [settings.kubernetes.node-taints]
159
- "nodegroup" = "bottlerocket:NoSchedule"
160
- EOT
161
- capacity_rebalance = var.node_group_br.capacity_rebalance
162
- use_mixed_instances_policy = var.node_group_br.use_mixed_instances_policy
163
- mixed_instances_policy = var.node_group_br.mixed_instances_policy
164
-
165
- tags = merge (local. eks_worker_tags , { " k8s.io/cluster-autoscaler/node-template/label/nodegroup" = " bottlerocket" })
98
+ bootstrap_extra_args = " --kubelet-extra-args '--node-labels=nodegroup=default --register-with-taints=CriticalAddonsOnly=true:NoSchedule'"
99
+ capacity_rebalance = var.node_group_default.capacity_rebalance
100
+ use_mixed_instances_policy = var.node_group_default.use_mixed_instances_policy
101
+ mixed_instances_policy = var.node_group_default.mixed_instances_policy
166
102
}
167
103
}
168
104
fargate_profiles = {
0 commit comments