Skip to content

Commit 13a9ea7

Browse files
committed
feat: Support EKS Auto Mode custom node pools only creation
1 parent bdce021 commit 13a9ea7

File tree

31 files changed

+112
-58
lines changed

31 files changed

+112
-58
lines changed

README.md

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,35 @@ module "eks" {
5757
}
5858
```
5959

60+
### EKS Auto Mode - Custom Node Pools Only
61+
62+
```hcl
63+
module "eks" {
64+
source = "terraform-aws-modules/eks/aws"
65+
version = "~> 21.0"
66+
67+
name = "example"
68+
kubernetes_version = "1.33"
69+
70+
# Optional
71+
endpoint_public_access = true
72+
73+
# Optional: Adds the current caller identity as an administrator via cluster access entry
74+
enable_cluster_creator_admin_permissions = true
75+
76+
# Create just the IAM resources for EKS Auto Mode for use with custom node pools
77+
create_auto_mode_iam_resources = true
78+
79+
vpc_id = "vpc-1234556abcdef"
80+
subnet_ids = ["subnet-abcde012", "subnet-bcde012a", "subnet-fghi345a"]
81+
82+
tags = {
83+
Environment = "dev"
84+
Terraform = "true"
85+
}
86+
}
87+
```
88+
6089
### EKS Managed Node Group
6190

6291
```hcl
@@ -318,15 +347,15 @@ We are grateful to the community for contributing bugfixes and improvements! Ple
318347
| Name | Version |
319348
|------|---------|
320349
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.7 |
321-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.9 |
350+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.13 |
322351
| <a name="requirement_time"></a> [time](#requirement\_time) | >= 0.9 |
323352
| <a name="requirement_tls"></a> [tls](#requirement\_tls) | >= 4.0 |
324353

325354
## Providers
326355

327356
| Name | Version |
328357
|------|---------|
329-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.9 |
358+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.13 |
330359
| <a name="provider_time"></a> [time](#provider\_time) | >= 0.9 |
331360
| <a name="provider_tls"></a> [tls](#provider\_tls) | >= 4.0 |
332361

@@ -393,9 +422,10 @@ We are grateful to the community for contributing bugfixes and improvements! Ple
393422
| <a name="input_cloudwatch_log_group_retention_in_days"></a> [cloudwatch\_log\_group\_retention\_in\_days](#input\_cloudwatch\_log\_group\_retention\_in\_days) | Number of days to retain log events. Default retention - 90 days | `number` | `90` | no |
394423
| <a name="input_cloudwatch_log_group_tags"></a> [cloudwatch\_log\_group\_tags](#input\_cloudwatch\_log\_group\_tags) | A map of additional tags to add to the cloudwatch log group created | `map(string)` | `{}` | no |
395424
| <a name="input_cluster_tags"></a> [cluster\_tags](#input\_cluster\_tags) | A map of additional tags to add to the cluster | `map(string)` | `{}` | no |
396-
| <a name="input_compute_config"></a> [compute\_config](#input\_compute\_config) | Configuration block for the cluster compute configuration | <pre>object({<br/> enabled = optional(bool, false)<br/> node_pools = optional(list(string))<br/> node_role_arn = optional(string)<br/> })</pre> | `null` | no |
425+
| <a name="input_compute_config"></a> [compute\_config](#input\_compute\_config) | Configuration block for the cluster compute configuration | <pre>object({<br/> enabled = optional(bool, false)<br/> node_pools = optional(list(string))<br/> node_role_arn = optional(string)<br/> })</pre> | `{}` | no |
397426
| <a name="input_control_plane_subnet_ids"></a> [control\_plane\_subnet\_ids](#input\_control\_plane\_subnet\_ids) | A list of subnet IDs where the EKS cluster control plane (ENIs) will be provisioned. Used for expanding the pool of subnets used by nodes/node groups without replacing the EKS control plane | `list(string)` | `[]` | no |
398427
| <a name="input_create"></a> [create](#input\_create) | Controls if resources should be created (affects nearly all resources) | `bool` | `true` | no |
428+
| <a name="input_create_auto_mode_iam_resources"></a> [create\_auto\_mode\_iam\_resources](#input\_create\_auto\_mode\_iam\_resources) | Determines whether to create/attach IAM resources for EKS Auto Mode. Useful for when using only custom node pools and not built-in EKS Auto Mode node pools | `bool` | `false` | no |
399429
| <a name="input_create_cloudwatch_log_group"></a> [create\_cloudwatch\_log\_group](#input\_create\_cloudwatch\_log\_group) | Determines whether a log group is created by this module for the cluster logs. If not, AWS will automatically create one if logging is enabled | `bool` | `true` | no |
400430
| <a name="input_create_cni_ipv6_iam_policy"></a> [create\_cni\_ipv6\_iam\_policy](#input\_create\_cni\_ipv6\_iam\_policy) | Determines whether to create an [`AmazonEKS_CNI_IPv6_Policy`](https://docs.aws.amazon.com/eks/latest/userguide/cni-iam-role.html#cni-iam-role-create-ipv6-policy) | `bool` | `false` | no |
401431
| <a name="input_create_iam_role"></a> [create\_iam\_role](#input\_create\_iam\_role) | Determines whether an IAM role is created for the cluster | `bool` | `true` | no |

examples/eks-auto-mode/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ Note that this example may create resources which cost money. Run `terraform des
2525
| Name | Version |
2626
|------|---------|
2727
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.7 |
28-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.9 |
28+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.13 |
2929

3030
## Providers
3131

3232
| Name | Version |
3333
|------|---------|
34-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.9 |
34+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.13 |
3535

3636
## Modules
3737

examples/eks-auto-mode/main.tf

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ module "eks" {
3535
name = local.name
3636
kubernetes_version = local.kubernetes_version
3737
endpoint_public_access = true
38-
deletion_protection = true
3938

4039
enable_cluster_creator_admin_permissions = true
4140

@@ -50,6 +49,24 @@ module "eks" {
5049
tags = local.tags
5150
}
5251

52+
module "eks_auto_custom_node_pools" {
53+
source = "../.."
54+
55+
name = "${local.name}-custom"
56+
kubernetes_version = local.kubernetes_version
57+
endpoint_public_access = true
58+
59+
enable_cluster_creator_admin_permissions = true
60+
61+
# Create just the IAM resources for EKS Auto Mode for use with custom node pools
62+
create_auto_mode_iam_resources = true
63+
64+
vpc_id = module.vpc.vpc_id
65+
subnet_ids = module.vpc.private_subnets
66+
67+
tags = local.tags
68+
}
69+
5370
module "disabled_eks" {
5471
source = "../.."
5572

examples/eks-auto-mode/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 = ">= 6.9"
7+
version = ">= 6.13"
88
}
99
}
1010
}

examples/eks-hybrid-nodes/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Note that this example may create resources which cost money. Run `terraform des
2626
| Name | Version |
2727
|------|---------|
2828
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.7 |
29-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.9 |
29+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.13 |
3030
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | >= 3.0 |
3131
| <a name="requirement_http"></a> [http](#requirement\_http) | >= 3.4 |
3232
| <a name="requirement_local"></a> [local](#requirement\_local) | >= 2.5 |
@@ -36,8 +36,8 @@ Note that this example may create resources which cost money. Run `terraform des
3636

3737
| Name | Version |
3838
|------|---------|
39-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.9 |
40-
| <a name="provider_aws.remote"></a> [aws.remote](#provider\_aws.remote) | >= 6.9 |
39+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.13 |
40+
| <a name="provider_aws.remote"></a> [aws.remote](#provider\_aws.remote) | >= 6.13 |
4141
| <a name="provider_helm"></a> [helm](#provider\_helm) | >= 3.0 |
4242
| <a name="provider_http"></a> [http](#provider\_http) | >= 3.4 |
4343
| <a name="provider_local"></a> [local](#provider\_local) | >= 2.5 |

examples/eks-hybrid-nodes/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 = ">= 6.9"
7+
version = ">= 6.13"
88
}
99
helm = {
1010
source = "hashicorp/helm"

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 = ">= 6.9"
7+
version = ">= 6.13"
88
}
99
}
1010
}

examples/karpenter/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,15 +94,15 @@ Note that this example may create resources which cost money. Run `terraform des
9494
| Name | Version |
9595
|------|---------|
9696
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.7 |
97-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.9 |
97+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.13 |
9898
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | >= 3.0 |
9999

100100
## Providers
101101

102102
| Name | Version |
103103
|------|---------|
104-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.9 |
105-
| <a name="provider_aws.virginia"></a> [aws.virginia](#provider\_aws.virginia) | >= 6.9 |
104+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.13 |
105+
| <a name="provider_aws.virginia"></a> [aws.virginia](#provider\_aws.virginia) | >= 6.13 |
106106
| <a name="provider_helm"></a> [helm](#provider\_helm) | >= 3.0 |
107107

108108
## Modules

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 = ">= 6.9"
7+
version = ">= 6.13"
88
}
99
helm = {
1010
source = "hashicorp/helm"

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 = ">= 6.9"
7+
version = ">= 6.13"
88
}
99
}
1010
}

0 commit comments

Comments
 (0)