diff --git a/examples/managed_node_groups/main.tf b/examples/managed_node_groups/main.tf index dc799e4203b..4c8b3fed6c6 100644 --- a/examples/managed_node_groups/main.tf +++ b/examples/managed_node_groups/main.tf @@ -88,6 +88,13 @@ module "eks" { additional_tags = { ExtraTag = "example" } + taints = [ + { + key = "dedicated" + value = "gpuGroup" + effect = "NO_SCHEDULE" + } + ] } } diff --git a/modules/node_groups/README.md b/modules/node_groups/README.md index d9bb496a83b..65fde298830 100644 --- a/modules/node_groups/README.md +++ b/modules/node_groups/README.md @@ -44,6 +44,7 @@ The role ARN specified in `var.default_iam_role_arn` will be used by default. In | source\_security\_group\_ids | Source security groups for remote access to workers | list(string) | If key\_name is specified: THE REMOTE ACCESS WILL BE OPENED TO THE WORLD | | subnets | Subnets to contain workers | list(string) | `var.workers_group_defaults[subnets]` | | version | Kubernetes version | string | Provider default behavior | +| taints | Kubernetes node taints | list(map) | empty | ## Requirements @@ -51,13 +52,13 @@ The role ARN specified in `var.default_iam_role_arn` will be used by default. In | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 0.13.1 | -| [aws](#requirement\_aws) | >= 3.40.0 | +| [aws](#requirement\_aws) | >= 3.43.0 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 3.40.0 | +| [aws](#provider\_aws) | >= 3.43.0 | | [cloudinit](#provider\_cloudinit) | n/a | ## Modules diff --git a/modules/node_groups/node_groups.tf b/modules/node_groups/node_groups.tf index a0ae456fa7b..3418f24bddc 100644 --- a/modules/node_groups/node_groups.tf +++ b/modules/node_groups/node_groups.tf @@ -57,6 +57,16 @@ resource "aws_eks_node_group" "workers" { } } + dynamic "taint" { + for_each = each.value["taints"] == null ? [] : each.value["taints"] + + content { + key = taint.value["key"] + value = taint.value["value"] + effect = taint.value["effect"] + } + } + version = lookup(each.value, "version", null) labels = merge( diff --git a/modules/node_groups/versions.tf b/modules/node_groups/versions.tf index 2051547e513..c68eb70217f 100644 --- a/modules/node_groups/versions.tf +++ b/modules/node_groups/versions.tf @@ -2,6 +2,6 @@ terraform { required_version = ">= 0.13.1" required_providers { - aws = ">= 3.40.0" + aws = ">= 3.43.0" } }