{"id":22529124,"url":"https://github.com/umotif-public/terraform-aws-eks-node-group","last_synced_at":"2025-10-10T21:05:40.811Z","repository":{"id":50098677,"uuid":"235782854","full_name":"umotif-public/terraform-aws-eks-node-group","owner":"umotif-public","description":"Terraform module to provision EKS Managed Node Group","archived":false,"fork":false,"pushed_at":"2021-06-04T08:35:09.000Z","size":50,"stargazers_count":13,"open_issues_count":1,"forks_count":22,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-09-15T20:55:49.425Z","etag":null,"topics":["aws","aws-eks","eks","eks-node-group","kubernetes","kubernetes-cluster","node-group","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/umotif-public/eks-node-group/aws","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/umotif-public.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-23T11:40:42.000Z","updated_at":"2024-05-30T16:27:33.000Z","dependencies_parsed_at":"2022-09-15T17:40:19.609Z","dependency_job_id":null,"html_url":"https://github.com/umotif-public/terraform-aws-eks-node-group","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/umotif-public/terraform-aws-eks-node-group","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umotif-public%2Fterraform-aws-eks-node-group","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umotif-public%2Fterraform-aws-eks-node-group/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umotif-public%2Fterraform-aws-eks-node-group/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umotif-public%2Fterraform-aws-eks-node-group/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/umotif-public","download_url":"https://codeload.github.com/umotif-public/terraform-aws-eks-node-group/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umotif-public%2Fterraform-aws-eks-node-group/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005332,"owners_count":26083883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","aws-eks","eks","eks-node-group","kubernetes","kubernetes-cluster","node-group","terraform","terraform-module"],"created_at":"2024-12-07T07:13:46.096Z","updated_at":"2025-10-10T21:05:40.795Z","avatar_url":"https://github.com/umotif-public.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/umotif-public/terraform-aws-eks-node-group?style=social)\n\n# terraform-aws-eks-node-group\nTerraform module to provision EKS Managed Node Group\n\n## Resources created\n\nThis module will create EKS managed Node Group that will join your existing Kubernetes cluster. It supports use of launch template which will allow you to further enhance and modify worker nodes.\n\n## Terraform versions\n\nTerraform 0.12. Pin module version to `~\u003e v4.0`. Submit pull-requests to `master` branch.\n\n## Usage\n\n```hcl\nmodule \"eks-node-group\" {\n  source = \"umotif-public/eks-node-group/aws\"\n  version = \"~\u003e 4.0.0\"\n\n  cluster_name = aws_eks_cluster.cluster.id\n\n  node_group_name_prefix = \"eks-test-\"\n\n  subnet_ids = [\"subnet-1\",\"subnet-2\",\"subnet-3\"]\n\n  desired_size = 1\n  min_size     = 1\n  max_size     = 1\n\n  instance_types = [\"t3.large\",\"t2.large\"]\n  capacity_type  = \"SPOT\"\n\n  ec2_ssh_key = \"eks-test\"\n\n  labels = {\n    lifecycle = \"OnDemand\"\n  }\n\n  taints = [\n    {\n      key    = \"test-1\"\n      value  = null\n      effect = \"NO_SCHEDULE\"\n    },\n    {\n      key    = \"test-2\"\n      value  = \"value-test\"\n      effect = \"NO_EXECUTE\"\n    }\n  ]\n\n  force_update_version = true\n\n  tags = {\n    Environment = \"test\"\n  }\n}\n```\n\n## Examples\n\n* [EKS Node Group- single](https://github.com/umotif-public/terraform-aws-eks-node-group/tree/master/examples/single-node-group)\n* [EKS Node Group- multiple az setup](https://github.com/umotif-public/terraform-aws-eks-node-group/tree/master/examples/multiaz-node-group)\n* [EKS Node Group- single named node group](https://github.com/umotif-public/terraform-aws-eks-node-group/tree/master/examples/single-named-node-group)\n* [EKS Node Group- single with launch template](https://github.com/umotif-public/terraform-aws-eks-node-group/tree/master/examples/single-node-group-with-launch-template)\n\n## Authors\n\nModule managed by [Marcin Cuber](https://github.com/marcincuber) [LinkedIn](https://www.linkedin.com/in/marcincuber/).\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 0.12.6 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 3.43 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 3.43 |\n| \u003ca name=\"provider_random\"\u003e\u003c/a\u003e [random](#provider\\_random) | n/a |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_eks_node_group.main](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_node_group) | resource |\n| [aws_iam_role.main](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy_attachment.main_AmazonEC2ContainerRegistryReadOnly](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_iam_role_policy_attachment.main_AmazonEKSWorkerNodePolicy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_iam_role_policy_attachment.main_AmazonEKS_CNI_Policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [random_id.main](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/id) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_ami_release_version\"\u003e\u003c/a\u003e [ami\\_release\\_version](#input\\_ami\\_release\\_version) | AMI version of the EKS Node Group. Defaults to latest version for Kubernetes version | `string` | `null` | no |\n| \u003ca name=\"input_ami_type\"\u003e\u003c/a\u003e [ami\\_type](#input\\_ami\\_type) | Type of Amazon Machine Image (AMI) associated with the EKS Node Group. Valid values: `AL2_x86_64`, `AL2_x86_64_GPU`. Terraform will only perform drift detection if a configuration value is provided | `string` | `null` | no |\n| \u003ca name=\"input_capacity_type\"\u003e\u003c/a\u003e [capacity\\_type](#input\\_capacity\\_type) | Type of capacity associated with the EKS Node Group. Defaults to ON\\_DEMAND. Valid values: ON\\_DEMAND, SPOT. | `string` | `\"ON_DEMAND\"` | no |\n| \u003ca name=\"input_cluster_name\"\u003e\u003c/a\u003e [cluster\\_name](#input\\_cluster\\_name) | The name of the EKS cluster | `string` | n/a | yes |\n| \u003ca name=\"input_create_iam_role\"\u003e\u003c/a\u003e [create\\_iam\\_role](#input\\_create\\_iam\\_role) | Create IAM role for node group. Set to false if pass `node_role_arn` as an argument | `bool` | `true` | no |\n| \u003ca name=\"input_desired_size\"\u003e\u003c/a\u003e [desired\\_size](#input\\_desired\\_size) | Desired number of worker nodes | `number` | n/a | yes |\n| \u003ca name=\"input_disk_size\"\u003e\u003c/a\u003e [disk\\_size](#input\\_disk\\_size) | Disk size in GiB for worker nodes. Defaults to 20. Terraform will only perform drift detection if a configuration value is provided | `number` | `null` | no |\n| \u003ca name=\"input_ec2_ssh_key\"\u003e\u003c/a\u003e [ec2\\_ssh\\_key](#input\\_ec2\\_ssh\\_key) | SSH key name that should be used to access the worker nodes | `string` | `null` | no |\n| \u003ca name=\"input_force_update_version\"\u003e\u003c/a\u003e [force\\_update\\_version](#input\\_force\\_update\\_version) | Force version update if existing pods are unable to be drained due to a pod disruption budget issue. | `bool` | `false` | no |\n| \u003ca name=\"input_instance_types\"\u003e\u003c/a\u003e [instance\\_types](#input\\_instance\\_types) | List of instance types associated with the EKS Node Group. Terraform will only perform drift detection if a configuration value is provided | `list(string)` | `null` | no |\n| \u003ca name=\"input_kubernetes_version\"\u003e\u003c/a\u003e [kubernetes\\_version](#input\\_kubernetes\\_version) | Kubernetes version. Defaults to EKS Cluster Kubernetes version. Terraform will only perform drift detection if a configuration value is provided | `string` | `null` | no |\n| \u003ca name=\"input_labels\"\u003e\u003c/a\u003e [labels](#input\\_labels) | Key-value mapping of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed | `map(string)` | `{}` | no |\n| \u003ca name=\"input_launch_template\"\u003e\u003c/a\u003e [launch\\_template](#input\\_launch\\_template) | Configuration block with Launch Template settings. `name`, `id` and `version` parameters are available. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_max_size\"\u003e\u003c/a\u003e [max\\_size](#input\\_max\\_size) | Maximum number of worker nodes | `number` | n/a | yes |\n| \u003ca name=\"input_min_size\"\u003e\u003c/a\u003e [min\\_size](#input\\_min\\_size) | Minimum number of worker nodes | `number` | n/a | yes |\n| \u003ca name=\"input_node_group_name\"\u003e\u003c/a\u003e [node\\_group\\_name](#input\\_node\\_group\\_name) | The name of the cluster node group. Defaults to \u003ccluster\\_name\u003e-\u003crandom value\u003e | `string` | `null` | no |\n| \u003ca name=\"input_node_group_name_prefix\"\u003e\u003c/a\u003e [node\\_group\\_name\\_prefix](#input\\_node\\_group\\_name\\_prefix) | Creates a unique name beginning with the specified prefix. Conflicts with node\\_group\\_name | `string` | `null` | no |\n| \u003ca name=\"input_node_group_role_name\"\u003e\u003c/a\u003e [node\\_group\\_role\\_name](#input\\_node\\_group\\_role\\_name) | The name of the cluster node group role. Defaults to \u003ccluster\\_name\u003e-managed-group-node | `string` | `\"\"` | no |\n| \u003ca name=\"input_node_role_arn\"\u003e\u003c/a\u003e [node\\_role\\_arn](#input\\_node\\_role\\_arn) | IAM role arn that will be used by managed node group | `string` | `\"\"` | no |\n| \u003ca name=\"input_source_security_group_ids\"\u003e\u003c/a\u003e [source\\_security\\_group\\_ids](#input\\_source\\_security\\_group\\_ids) | Set of EC2 Security Group IDs to allow SSH access (port 22) from on the worker nodes. If you specify `ec2_ssh_key`, but do not specify this configuration when you create an EKS Node Group, port 22 on the worker nodes is opened to the Internet (0.0.0.0/0) | `list(string)` | `[]` | no |\n| \u003ca name=\"input_subnet_ids\"\u003e\u003c/a\u003e [subnet\\_ids](#input\\_subnet\\_ids) | A list of subnet IDs to launch resources in | `list(string)` | n/a | yes |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | A map of tags (key-value pairs) passed to resources. | `map(string)` | `{}` | no |\n| \u003ca name=\"input_taints\"\u003e\u003c/a\u003e [taints](#input\\_taints) | List of objects containing Kubernetes taints which will be applied to the nodes in the node group. Maximum of 50 taints per node group. | `list(object({ key = string, value = any, effect = string }))` | `[]` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_iam_role_arn\"\u003e\u003c/a\u003e [iam\\_role\\_arn](#output\\_iam\\_role\\_arn) | IAM role ARN used by node group. |\n| \u003ca name=\"output_iam_role_id\"\u003e\u003c/a\u003e [iam\\_role\\_id](#output\\_iam\\_role\\_id) | IAM role ID used by node group. |\n| \u003ca name=\"output_node_group\"\u003e\u003c/a\u003e [node\\_group](#output\\_node\\_group) | Outputs from EKS node group. See `aws_eks_node_group` Terraform documentation for values |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n## License\n\nSee LICENSE for full details.\n\n## Pre-commit hooks\n\n### Install dependencies\n\n* [`pre-commit`](https://pre-commit.com/#install)\n* [`terraform-docs`](https://github.com/segmentio/terraform-docs) required for `terraform_docs` hooks.\n* [`TFLint`](https://github.com/terraform-linters/tflint) required for `terraform_tflint` hook.\n\n##### MacOS\n\n```bash\nbrew install pre-commit terraform-docs tflint\n\nbrew tap git-chglog/git-chglog\nbrew install git-chglog\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumotif-public%2Fterraform-aws-eks-node-group","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fumotif-public%2Fterraform-aws-eks-node-group","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumotif-public%2Fterraform-aws-eks-node-group/lists"}