Skip to content

Commit ae3379e

Browse files
authored
feat: Add support for ML capacity block reservations with EKS managed node group(s) (#3091)
1 parent c52bbb3 commit ae3379e

File tree

24 files changed

+42
-40
lines changed

24 files changed

+42
-40
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,15 +176,15 @@ We are grateful to the community for contributing bugfixes and improvements! Ple
176176
| Name | Version |
177177
|------|---------|
178178
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
179-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.40 |
179+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.57 |
180180
| <a name="requirement_time"></a> [time](#requirement\_time) | >= 0.9 |
181181
| <a name="requirement_tls"></a> [tls](#requirement\_tls) | >= 3.0 |
182182

183183
## Providers
184184

185185
| Name | Version |
186186
|------|---------|
187-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.40 |
187+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.57 |
188188
| <a name="provider_time"></a> [time](#provider\_time) | >= 0.9 |
189189
| <a name="provider_tls"></a> [tls](#provider\_tls) | >= 3.0 |
190190

examples/eks-managed-node-group/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.40"
7+
version = ">= 5.57"
88
}
99
}
1010
}

examples/karpenter/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,16 @@ Note that this example may create resources which cost money. Run `terraform des
8989
| Name | Version |
9090
|------|---------|
9191
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
92-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.40 |
92+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.57 |
9393
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | >= 2.7 |
9494
| <a name="requirement_kubectl"></a> [kubectl](#requirement\_kubectl) | >= 2.0 |
9595

9696
## Providers
9797

9898
| Name | Version |
9999
|------|---------|
100-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.40 |
101-
| <a name="provider_aws.virginia"></a> [aws.virginia](#provider\_aws.virginia) | >= 5.40 |
100+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.57 |
101+
| <a name="provider_aws.virginia"></a> [aws.virginia](#provider\_aws.virginia) | >= 5.57 |
102102
| <a name="provider_helm"></a> [helm](#provider\_helm) | >= 2.7 |
103103
| <a name="provider_kubectl"></a> [kubectl](#provider\_kubectl) | >= 2.0 |
104104

examples/karpenter/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.40"
7+
version = ">= 5.57"
88
}
99
helm = {
1010
source = "hashicorp/helm"

examples/outposts/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,14 @@ terraform destroy --auto-approve
4646
| Name | Version |
4747
|------|---------|
4848
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
49-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.40 |
49+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.57 |
5050
| <a name="requirement_kubernetes"></a> [kubernetes](#requirement\_kubernetes) | >= 2.20 |
5151

5252
## Providers
5353

5454
| Name | Version |
5555
|------|---------|
56-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.40 |
56+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.57 |
5757
| <a name="provider_kubernetes"></a> [kubernetes](#provider\_kubernetes) | >= 2.20 |
5858

5959
## Modules

examples/outposts/prerequisites/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.40"
7+
version = ">= 5.57"
88
}
99
}
1010
}

examples/outposts/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.40"
7+
version = ">= 5.57"
88
}
99
kubernetes = {
1010
source = "hashicorp/kubernetes"

examples/self-managed-node-group/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.40"
7+
version = ">= 5.57"
88
}
99
}
1010
}

modules/eks-managed-node-group/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,13 @@ module "eks_managed_node_group" {
6464
| Name | Version |
6565
|------|---------|
6666
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
67-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.40 |
67+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.57 |
6868

6969
## Providers
7070

7171
| Name | Version |
7272
|------|---------|
73-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.40 |
73+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.57 |
7474

7575
## Modules
7676

modules/eks-managed-node-group/main.tf

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -203,10 +203,11 @@ resource "aws_launch_template" "this" {
203203
}
204204
}
205205

206-
# # Set on node group instead
207-
# instance_type = var.launch_template_instance_type
208-
kernel_id = var.kernel_id
209-
key_name = var.key_name
206+
# Instance type(s) are generally set on the node group,
207+
# except when a ML capacity block reseravtion is used
208+
instance_type = var.capacity_type == "CAPACITY_BLOCK" ? element(var.instance_types, 0) : null
209+
kernel_id = var.kernel_id
210+
key_name = var.key_name
210211

211212
dynamic "license_specification" {
212213
for_each = length(var.license_specifications) > 0 ? var.license_specifications : {}
@@ -408,8 +409,9 @@ resource "aws_eks_node_group" "this" {
408409
capacity_type = var.capacity_type
409410
disk_size = var.use_custom_launch_template ? null : var.disk_size # if using a custom LT, set disk size on custom LT or else it will error here
410411
force_update_version = var.force_update_version
411-
instance_types = var.instance_types
412-
labels = var.labels
412+
# ML capacity block reservation requires instance type to be set on the launch template
413+
instance_types = var.capacity_type == "CAPACITY_BLOCK" ? null : var.instance_types
414+
labels = var.labels
413415

414416
dynamic "launch_template" {
415417
for_each = var.use_custom_launch_template ? [1] : []

modules/eks-managed-node-group/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.40"
7+
version = ">= 5.57"
88
}
99
}
1010
}

modules/fargate-profile/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ module "fargate_profile" {
2929
| Name | Version |
3030
|------|---------|
3131
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
32-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.40 |
32+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.57 |
3333

3434
## Providers
3535

3636
| Name | Version |
3737
|------|---------|
38-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.40 |
38+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.57 |
3939

4040
## Modules
4141

modules/fargate-profile/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.40"
7+
version = ">= 5.57"
88
}
99
}
1010
}

modules/karpenter/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,13 @@ module "karpenter" {
8686
| Name | Version |
8787
|------|---------|
8888
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
89-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.40 |
89+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.57 |
9090

9191
## Providers
9292

9393
| Name | Version |
9494
|------|---------|
95-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.40 |
95+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.57 |
9696

9797
## Modules
9898

modules/karpenter/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.40"
7+
version = ">= 5.57"
88
}
99
}
1010
}

modules/self-managed-node-group/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,13 @@ module "self_managed_node_group" {
4343
| Name | Version |
4444
|------|---------|
4545
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
46-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.40 |
46+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.57 |
4747

4848
## Providers
4949

5050
| Name | Version |
5151
|------|---------|
52-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.40 |
52+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.57 |
5353

5454
## Modules
5555

modules/self-managed-node-group/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.40"
7+
version = ">= 5.57"
88
}
99
}
1010
}

tests/eks-managed-node-group/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ Note that this example may create resources which cost money. Run `terraform des
1818
| Name | Version |
1919
|------|---------|
2020
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
21-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.40 |
21+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.57 |
2222

2323
## Providers
2424

2525
| Name | Version |
2626
|------|---------|
27-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.40 |
27+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.57 |
2828

2929
## Modules
3030

tests/eks-managed-node-group/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.40"
7+
version = ">= 5.57"
88
}
99
}
1010
}

tests/fargate-profile/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ Note that this example may create resources which cost money. Run `terraform des
1818
| Name | Version |
1919
|------|---------|
2020
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
21-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.40 |
21+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.57 |
2222

2323
## Providers
2424

2525
| Name | Version |
2626
|------|---------|
27-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.40 |
27+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.57 |
2828

2929
## Modules
3030

tests/fargate-profile/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.40"
7+
version = ">= 5.57"
88
}
99
}
1010
}

tests/self-managed-node-group/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ Note that this example may create resources which cost money. Run `terraform des
1818
| Name | Version |
1919
|------|---------|
2020
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.3.2 |
21-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.40 |
21+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.57 |
2222

2323
## Providers
2424

2525
| Name | Version |
2626
|------|---------|
27-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.40 |
27+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.57 |
2828

2929
## Modules
3030

tests/self-managed-node-group/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.40"
7+
version = ">= 5.57"
88
}
99
}
1010
}

versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.40"
7+
version = ">= 5.57"
88
}
99
tls = {
1010
source = "hashicorp/tls"

0 commit comments

Comments
 (0)