{"id":19107229,"url":"https://github.com/govtechsg/terraform-aws-eks","last_synced_at":"2026-06-24T05:31:15.116Z","repository":{"id":45081793,"uuid":"420349418","full_name":"GovTechSG/terraform-aws-eks","owner":"GovTechSG","description":null,"archived":false,"fork":false,"pushed_at":"2024-02-21T03:38:07.000Z","size":76,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-02-22T10:31:35.378Z","etag":null,"topics":["terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GovTechSG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-23T07:53:53.000Z","updated_at":"2022-01-10T08:36:05.000Z","dependencies_parsed_at":"2024-02-21T04:43:42.079Z","dependency_job_id":null,"html_url":"https://github.com/GovTechSG/terraform-aws-eks","commit_stats":null,"previous_names":[],"tags_count":63,"template":false,"template_full_name":null,"purl":"pkg:github/GovTechSG/terraform-aws-eks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Fterraform-aws-eks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Fterraform-aws-eks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Fterraform-aws-eks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Fterraform-aws-eks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GovTechSG","download_url":"https://codeload.github.com/GovTechSG/terraform-aws-eks/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GovTechSG%2Fterraform-aws-eks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34719097,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"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":["terraform"],"created_at":"2024-11-09T04:11:42.759Z","updated_at":"2026-06-24T05:31:15.095Z","avatar_url":"https://github.com/GovTechSG.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EKS\n\nThis module creates a kubernetes cluster on amazon web services(AWS). This module has a number of assumptions and dependencies with [https://gitlab.com/govtechsingapore/gdsace/terraform-modules/aws-vpc](https://gitlab.com/govtechsingapore/gdsace/terraform-modules/aws-vpc). It will probably not work with other infrastructure design, particularly on your subnet slices.\nThis module works with the VPC module as it follows the subnet types(public,private,intranet,database) defined in it.\n\n### Usage\n```hcl\nmodule \"eks\" {\n  eks_cluster_name = \"shire\"\n\n  cluster_version = \"1.14\"\n\n  # user and roles\n  # references:\n  # 1. [aws-iam-authenticator](https://github.com/kubernetes-sigs/aws-iam-authenticator)\n  # 2. [awscli configuration](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)\n  map_users = [\n    {\n      user_arn = \"arn:aws:iam::${get_aws_account_id()}:user/USERNAME\"\n      username = \"USERNAME\"\n      group    = \"system:masters\"\n    }\n  ]\n\n  private_worker_variables = [\n    {\n      instance_type            = \"r5.xlarge\"\n      asg_min_size             = \"1\"\n      asg_desired_capacity     = \"2\"\n      asg_max_size             = \"4\"\n      iam_instance_profile_name = \"eks-worker-private\"\n      ami_id                   = \"ami-03a2cce9abe958c6c\"\n      name                     = \"services\"\n      kubelet_extra_args       = \"\"\n    },\n    {\n      instance_type            = \"c5n.xlarge\"\n      asg_desired_capacity     = 0\n      asg_max_size             = 4\n      iam_instance_profile_name = \"eks-worker-gitlab\"\n      ami_id                   = \"ami-03a2cce9abe958c6c\"\n      name                     = \"gitlab-runners\"\n      kubelet_extra_args       = \"--register-with-taints=gitlab-runner=true:NoSchedule\"\n    }\n  ]\n\n  public_worker_variables = [\n    {\n      instance_type            = \"m5.large\"\n      asg_desired_capacity     = 1\n      asg_max_size             = 4\n      iam_instance_profile_name = \"eks-worker-public\"\n      name                     = \"public-1\"\n      ami_id                   = \"ami-03a2cce9abe958c6c\"\n      kubelet_extra_args       = \"--register-with-taints=public=true:NoSchedule --node-labels=public-node=true\"\n    }\n  ]\n\n\n  cluster_endpoint_private_access = true\n  cluster_endpoint_public_access = false\n  permissions_boundary = \"arn:aws:iam::${get_aws_account_id()}:policy/GCCIAccountBoundary\"\n\n  # write_kubeconfig = \"true\"\n  config_output_path = \"${get_terragrunt_dir()}/\"\n  additional_whitelist_cidr_block_443 = [\"172.31.0.0/24\"]\n  additional_whitelist_cidr_block_443_description = [\"description\"]\n\n  // remote state variables\n  vpc_state_key = \"\"\n  artifacts_base_path = get_terragrunt_dir()\n  environment = \"uat\"\n}\n```\n\n### Migration\n\n#### 1.x.x to 2.x.x\n- delete aws-auth configmap as it is now created using k8s provider.\n-\n\n## Inputs\n\n| Name                                                                                                                                                                                      | Description                                                                                                                         | Type                                                                                                               | Default                            | Required |\n|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|------------------------------------|:--------:|\n| \u003ca name=\"input_additional_subnets\"\u003e\u003c/a\u003e [additional\\_subnets](#input\\_additional\\_subnets)                                                                                                | Additional Subnets aside from those in your main vpc(e.g secondary cidr blocks)                                                     | `list(any)`                                                                                                        | `[]`                               |    no    |\n| \u003ca name=\"input_additional_whitelist_cidr_block_443\"\u003e\u003c/a\u003e [additional\\_whitelist\\_cidr\\_block\\_443](#input\\_additional\\_whitelist\\_cidr\\_block\\_443)                                       | Additional cidr to allow inbound and outbound for port 443 to eks cluster                                                           | `list(any)`                                                                                                        | `[]`                               |    no    |\n| \u003ca name=\"input_additional_whitelist_cidr_block_443_description\"\u003e\u003c/a\u003e [additional\\_whitelist\\_cidr\\_block\\_443\\_description](#input\\_additional\\_whitelist\\_cidr\\_block\\_443\\_description) | Description for the additional cidr to allow inbound and outbound for port 443 to eks cluster                                       | `list(any)`                                                                                                        | `[]`                               |    no    |\n| \u003ca name=\"input_addon_coredns_version\"\u003e\u003c/a\u003e [addon\\_coredns\\_version](#input\\_addon\\_coredns\\_version)                                                                                     | Specify CoreDNS addon version                                                                                                       | `string`                                                                                                           | `\"\"`                               |    no    |\n| \u003ca name=\"input_addon_create_coredns\"\u003e\u003c/a\u003e [addon\\_create\\_coredns](#input\\_addon\\_create\\_coredns)                                                                                        | Use EKS built-in addon CoreDNS                                                                                                      | `bool`                                                                                                             | `false`                            |    no    |\n| \u003ca name=\"input_addon_create_kube_proxy\"\u003e\u003c/a\u003e [addon\\_create\\_kube\\_proxy](#input\\_addon\\_create\\_kube\\_proxy)                                                                             | Use EKS built-in addon Kube Proxy                                                                                                   | `bool`                                                                                                             | `false`                            |    no    |\n| \u003ca name=\"input_addon_create_vpc_cni\"\u003e\u003c/a\u003e [addon\\_create\\_vpc\\_cni](#input\\_addon\\_create\\_vpc\\_cni)                                                                                      | Use EKS built-in addon VPC CNI                                                                                                      | `bool`                                                                                                             | `false`                            |    no    |\n| \u003ca name=\"input_addon_kube_proxy_version\"\u003e\u003c/a\u003e [addon\\_kube\\_proxy\\_version](#input\\_addon\\_kube\\_proxy\\_version)                                                                          | Specify Kube Proxy addon version                                                                                                    | `string`                                                                                                           | `\"\"`                               |    no    |\n| \u003ca name=\"input_addon_vpc_cni_version\"\u003e\u003c/a\u003e [addon\\_vpc\\_cni\\_version](#input\\_addon\\_vpc\\_cni\\_version)                                                                                   | Specify VPC CNI addon version                                                                                                       | `string`                                                                                                           | `\"\"`                               |    no    |\n| \u003ca name=\"input_aws_account_id\"\u003e\u003c/a\u003e [aws\\_account\\_id](#input\\_aws\\_account\\_id)                                                                                                          | AWS account ID                                                                                                                      | `string`                                                                                                           | `\"*\"`                              |    no    |\n| \u003ca name=\"input_aws_region\"\u003e\u003c/a\u003e [aws\\_region](#input\\_aws\\_region)                                                                                                                        | Region in which to spin up EKS                                                                                                      | `string`                                                                                                           | `\"ap-southeast-1\"`                 |    no    |\n| \u003ca name=\"input_cluster_create_endpoint_private_access_sg_rule\"\u003e\u003c/a\u003e [cluster\\_create\\_endpoint\\_private\\_access\\_sg\\_rule](#input\\_cluster\\_create\\_endpoint\\_private\\_access\\_sg\\_rule)  | Whether to create security group rules for the access to the Amazon EKS private API server endpoint.                                | `bool`                                                                                                             | `false`                            |    no    |\n| \u003ca name=\"input_cluster_encryption_config\"\u003e\u003c/a\u003e [cluster\\_encryption\\_config](#input\\_cluster\\_encryption\\_config)                                                                         | Configuration block with encryption configuration for the cluster. See examples/secrets\\_encryption/main.tf for example format      | \u003cpre\u003elist(object({\u003cbr\u003e    provider_key_arn = string\u003cbr\u003e    resources        = list(string)\u003cbr\u003e  }))\u003c/pre\u003e          | `[]`                               |    no    |\n| \u003ca name=\"input_cluster_endpoint_private_access\"\u003e\u003c/a\u003e [cluster\\_endpoint\\_private\\_access](#input\\_cluster\\_endpoint\\_private\\_access)                                                     | Indicates whether or not the Amazon EKS private API server endpoint is enabled.                                                     | `bool`                                                                                                             | `false`                            |    no    |\n| \u003ca name=\"input_cluster_endpoint_public_access\"\u003e\u003c/a\u003e [cluster\\_endpoint\\_public\\_access](#input\\_cluster\\_endpoint\\_public\\_access)                                                        | Indicates whether or not the Amazon EKS public API server endpoint is enabled.                                                      | `bool`                                                                                                             | `true`                             |    no    |\n| \u003ca name=\"input_cluster_endpoint_public_access_cidrs\"\u003e\u003c/a\u003e [cluster\\_endpoint\\_public\\_access\\_cidrs](#input\\_cluster\\_endpoint\\_public\\_access\\_cidrs)                                    | List of CIDR blocks which can access the Amazon EKS public API server endpoint.                                                     | `list(string)`                                                                                                     | \u003cpre\u003e[\u003cbr\u003e  \"0.0.0.0/0\"\u003cbr\u003e]\u003c/pre\u003e |    no    |\n| \u003ca name=\"input_cluster_iam_role_name\"\u003e\u003c/a\u003e [cluster\\_iam\\_role\\_name](#input\\_cluster\\_iam\\_role\\_name)                                                                                   | IAM role name for the cluster. Only applicable if manage\\_cluster\\_iam\\_resources is set to false.                                  | `string`                                                                                                           | `\"\"`                               |    no    |\n| \u003ca name=\"input_cluster_log_retention_in_days\"\u003e\u003c/a\u003e [cluster\\_log\\_retention\\_in\\_days](#input\\_cluster\\_log\\_retention\\_in\\_days)                                                         | Log retention in days                                                                                                               | `number`                                                                                                           | `90`                               |    no    |\n| \u003ca name=\"input_cluster_version\"\u003e\u003c/a\u003e [cluster\\_version](#input\\_cluster\\_version)                                                                                                         | Kubernetes version to use for the EKS cluster.                                                                                      | `string`                                                                                                           | `\"1.13\"`                           |    no    |\n| \u003ca name=\"input_config_output_path\"\u003e\u003c/a\u003e [config\\_output\\_path](#input\\_config\\_output\\_path)                                                                                              | Where to save the Kubectl config file (if `write_kubeconfig = true`). Should end in a forward slash `/` .                           | `string`                                                                                                           | `\"./\"`                             |    no    |\n| \u003ca name=\"input_create_eks\"\u003e\u003c/a\u003e [create\\_eks](#input\\_create\\_eks)                                                                                                                        | Controls if EKS resources should be created (it affects almost all resources)                                                       | `bool`                                                                                                             | `true`                             |    no    |\n| \u003ca name=\"input_create_fargate_pod_execution_role\"\u003e\u003c/a\u003e [create\\_fargate\\_pod\\_execution\\_role](#input\\_create\\_fargate\\_pod\\_execution\\_role)                                             | Controls if the EKS Fargate pod execution IAM role should be created.                                                               | `bool`                                                                                                             | `true`                             |    no    |\n| \u003ca name=\"input_eks_cluster_name\"\u003e\u003c/a\u003e [eks\\_cluster\\_name](#input\\_eks\\_cluster\\_name)                                                                                                    | Name of the EKS cluster. Also used as a prefix in names of related resources.                                                       | `string`                                                                                                           | n/a                                |   yes    |\n| \u003ca name=\"input_enable_alb\"\u003e\u003c/a\u003e [enable\\_alb](#input\\_enable\\_alb)                                                                                                                        | Enables alb by creating alb ingress controller policy required for alb ingress controller                                           | `bool`                                                                                                             | `false`                            |    no    |\n| \u003ca name=\"input_enable_dynamic_pv\"\u003e\u003c/a\u003e [enable\\_dynamic\\_pv](#input\\_enable\\_dynamic\\_pv)                                                                                                 | Enables dynamic persistent volume provisioning by allowing nodes to manage ec2 volumes and attaches policy to worker groups         | `bool`                                                                                                             | `false`                            |    no    |\n| \u003ca name=\"input_enable_external_dns\"\u003e\u003c/a\u003e [enable\\_external\\_dns](#input\\_enable\\_external\\_dns)                                                                                           | (Legacy) Enables External DNS installation(policy) and attaches policy to worker groups                                             | `bool`                                                                                                             | `false`                            |    no    |\n| \u003ca name=\"input_enable_kamus\"\u003e\u003c/a\u003e [enable\\_kamus](#input\\_enable\\_kamus)                                                                                                                  | (Legacy) Enables kamus by creating role, policy and trust relationship required for kamus usage                                     | `bool`                                                                                                             | `false`                            |    no    |\n| \u003ca name=\"input_enable_kube2iam\"\u003e\u003c/a\u003e [enable\\_kube2iam](#input\\_enable\\_kube2iam)                                                                                                         | (Legacy) Enables kube2iam by creating role, policy and trust relationship required for kube2iam usage                               | `bool`                                                                                                             | `false`                            |    no    |\n| \u003ca name=\"input_enable_ssm\"\u003e\u003c/a\u003e [enable\\_ssm](#input\\_enable\\_ssm)                                                                                                                        | Enables SSM and Inspector                                                                                                           | `bool`                                                                                                             | `false`                            |    no    |\n| \u003ca name=\"input_environment\"\u003e\u003c/a\u003e [environment](#input\\_environment)                                                                                                                       | Name for environment of this EKS cluster                                                                                            | `any`                                                                                                              | n/a                                |   yes    |\n| \u003ca name=\"input_fargate_pod_execution_role_name\"\u003e\u003c/a\u003e [fargate\\_pod\\_execution\\_role\\_name](#input\\_fargate\\_pod\\_execution\\_role\\_name)                                                   | The IAM Role that provides permissions for the EKS Fargate Profile.                                                                 | `string`                                                                                                           | `null`                             |    no    |\n| \u003ca name=\"input_fargate_profiles\"\u003e\u003c/a\u003e [fargate\\_profiles](#input\\_fargate\\_profiles)                                                                                                      | Fargate profiles to create. See `fargate_profile` keys section in fargate submodule's README.md for more details                    | `any`                                                                                                              | `{}`                               |    no    |\n| \u003ca name=\"input_intranet_worker_template_variables\"\u003e\u003c/a\u003e [intranet\\_worker\\_template\\_variables](#input\\_intranet\\_worker\\_template\\_variables)                                            | Worker launch template group declaration of nodes to be placed in intranet subnet                                                   | `list(any)`                                                                                                        | `[]`                               |    no    |\n| \u003ca name=\"input_intranet_worker_variables\"\u003e\u003c/a\u003e [intranet\\_worker\\_variables](#input\\_intranet\\_worker\\_variables)                                                                         | Worker group declaration of nodes to be placed in intranet subnet                                                                   | `list(any)`                                                                                                        | `[]`                               |    no    |\n| \u003ca name=\"input_kubeconfig_aws_authenticator_additional_args\"\u003e\u003c/a\u003e [kubeconfig\\_aws\\_authenticator\\_additional\\_args](#input\\_kubeconfig\\_aws\\_authenticator\\_additional\\_args)            | Any additional arguments to pass to the authenticator such as the role to assume. e.g. [\"-r\", \"MyEksRole\"].                         | `list(string)`                                                                                                     | `[]`                               |    no    |\n| \u003ca name=\"input_kubeconfig_aws_authenticator_command\"\u003e\u003c/a\u003e [kubeconfig\\_aws\\_authenticator\\_command](#input\\_kubeconfig\\_aws\\_authenticator\\_command)                                      | Command to use to fetch AWS EKS credentials.                                                                                        | `string`                                                                                                           | `\"aws-iam-authenticator\"`          |    no    |\n| \u003ca name=\"input_kubeconfig_aws_authenticator_command_args\"\u003e\u003c/a\u003e [kubeconfig\\_aws\\_authenticator\\_command\\_args](#input\\_kubeconfig\\_aws\\_authenticator\\_command\\_args)                     | Default arguments passed to the authenticator command. Defaults to [token -i $cluster\\_name].                                       | `list(string)`                                                                                                     | `[]`                               |    no    |\n| \u003ca name=\"input_kubeconfig_aws_authenticator_env_variables\"\u003e\u003c/a\u003e [kubeconfig\\_aws\\_authenticator\\_env\\_variables](#input\\_kubeconfig\\_aws\\_authenticator\\_env\\_variables)                  | Environment variables that should be used when executing the authenticator. e.g. { AWS\\_PROFILE = \"eks\"}.                           | `map(string)`                                                                                                      | `{}`                               |    no    |\n| \u003ca name=\"input_manage_aws_auth\"\u003e\u003c/a\u003e [manage\\_aws\\_auth](#input\\_manage\\_aws\\_auth)                                                                                                       | Whether to apply the aws-auth configmap file.                                                                                       | `bool`                                                                                                             | `true`                             |    no    |\n| \u003ca name=\"input_manage_cluster_iam_resources\"\u003e\u003c/a\u003e [manage\\_cluster\\_iam\\_resources](#input\\_manage\\_cluster\\_iam\\_resources)                                                              | Whether to let the module manage cluster IAM resources. If set to false, cluster\\_iam\\_role\\_name must be specified.                | `bool`                                                                                                             | `true`                             |    no    |\n| \u003ca name=\"input_manage_worker_iam_resources\"\u003e\u003c/a\u003e [manage\\_worker\\_iam\\_resources](#input\\_manage\\_worker\\_iam\\_resources)                                                                 | Whether to let the module manage worker IAM resources. If set to false, iam\\_instance\\_profile\\_name must be specified for workers. | `bool`                                                                                                             | `true`                             |    no    |\n| \u003ca name=\"input_map_accounts\"\u003e\u003c/a\u003e [map\\_accounts](#input\\_map\\_accounts)                                                                                                                  | Additional AWS account numbers to add to the aws-auth configmap.                                                                    | `list(string)`                                                                                                     | `[]`                               |    no    |\n| \u003ca name=\"input_map_roles\"\u003e\u003c/a\u003e [map\\_roles](#input\\_map\\_roles)                                                                                                                           | Additional IAM roles to add to the aws-auth configmap.                                                                              | \u003cpre\u003elist(object({\u003cbr\u003e    rolearn  = string\u003cbr\u003e    username = string\u003cbr\u003e    groups   = list(string)\u003cbr\u003e  }))\u003c/pre\u003e | `[]`                               |    no    |\n| \u003ca name=\"input_map_users\"\u003e\u003c/a\u003e [map\\_users](#input\\_map\\_users)                                                                                                                           | Additional IAM users to add to the aws-auth configmap.                                                                              | \u003cpre\u003elist(object({\u003cbr\u003e    userarn  = string\u003cbr\u003e    username = string\u003cbr\u003e    groups   = list(string)\u003cbr\u003e  }))\u003c/pre\u003e | `[]`                               |    no    |\n| \u003ca name=\"input_master_subnets_ids\"\u003e\u003c/a\u003e [master\\_subnets\\_ids](#input\\_master\\_subnets\\_ids)                                                                                              | Subnets used by EKS master nodes                                                                                                    | `list(list(string))`                                                                                               | n/a                                |   yes    |\n| \u003ca name=\"input_module_source_version\"\u003e\u003c/a\u003e [module\\_source\\_version](#input\\_module\\_source\\_version)                                                                                     | Version of module to use                                                                                                            | `string`                                                                                                           | `\"5.0.0\"`                          |    no    |\n| \u003ca name=\"input_permissions_boundary\"\u003e\u003c/a\u003e [permissions\\_boundary](#input\\_permissions\\_boundary)                                                                                          | If provided, all IAM roles will be created with this permissions boundary attached.                                                 | `string`                                                                                                           | `\"\"`                               |    no    |\n| \u003ca name=\"input_private_worker_template_variables\"\u003e\u003c/a\u003e [private\\_worker\\_template\\_variables](#input\\_private\\_worker\\_template\\_variables)                                               | Worker launch template group declaration of nodes to be placed in private subnet                                                    | `list(any)`                                                                                                        | `[]`                               |    no    |\n| \u003ca name=\"input_private_worker_variables\"\u003e\u003c/a\u003e [private\\_worker\\_variables](#input\\_private\\_worker\\_variables)                                                                            | Worker group declaration of nodes to be placed in private subnet                                                                    | `list(any)`                                                                                                        | `[]`                               |    no    |\n| \u003ca name=\"input_public_worker_template_variables\"\u003e\u003c/a\u003e [public\\_worker\\_template\\_variables](#input\\_public\\_worker\\_template\\_variables)                                                  | Worker launch template group declaration of nodes to be placed in public subnet                                                     | `list(any)`                                                                                                        | `[]`                               |    no    |\n| \u003ca name=\"input_public_worker_variables\"\u003e\u003c/a\u003e [public\\_worker\\_variables](#input\\_public\\_worker\\_variables)                                                                               | Worker group declaration of nodes to be placed in public subnet                                                                     | `list(any)`                                                                                                        | `[]`                               |    no    |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags)                                                                                                                                            | A map of tags to add to all resources.                                                                                              | `map(string)`                                                                                                      | `{}`                               |    no    |\n| \u003ca name=\"input_tfstate_global_bucket\"\u003e\u003c/a\u003e [tfstate\\_global\\_bucket](#input\\_tfstate\\_global\\_bucket)                                                                                     | S3 where the remote state is stored                                                                                                 | `any`                                                                                                              | n/a                                |   yes    |\n| \u003ca name=\"input_use_launch_template\"\u003e\u003c/a\u003e [use\\_launch\\_template](#input\\_use\\_launch\\_template)                                                                                           | Toggle use of launch template vs launch configuration                                                                               | `bool`                                                                                                             | `false`                            |    no    |\n| \u003ca name=\"input_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#input\\_vpc\\_id)                                                                                                                                    | VPC ID                                                                                                                              | `any`                                                                                                              | n/a                                |   yes    |\n| \u003ca name=\"input_vpc_name\"\u003e\u003c/a\u003e [vpc\\_name](#input\\_vpc\\_name)                                                                                                                              | VPC Name                                                                                                                            | `any`                                                                                                              | n/a                                |   yes    |\n| \u003ca name=\"input_vpc_state_key\"\u003e\u003c/a\u003e [vpc\\_state\\_key](#input\\_vpc\\_state\\_key)                                                                                                             | Key where the vpc remote state is stored                                                                                            | `string`                                                                                                           | `\"vpc\"`                            |    no    |\n| \u003ca name=\"input_worker_additional_security_group_ids\"\u003e\u003c/a\u003e [worker\\_additional\\_security\\_group\\_ids](#input\\_worker\\_additional\\_security\\_group\\_ids)                                    | A list of additional security group ids to attach to worker instances.                                                              | `list(any)`                                                                                                        | `[]`                               |    no    |\n| \u003ca name=\"input_worker_intra_subnets_ids\"\u003e\u003c/a\u003e [worker\\_intra\\_subnets\\_ids](#input\\_worker\\_intra\\_subnets\\_ids)                                                                          | Intra subnets used by worker nodes                                                                                                  | `set(string)`                                                                                                      | n/a                                |   yes    |\n| \u003ca name=\"input_worker_private_subnets_ids\"\u003e\u003c/a\u003e [worker\\_private\\_subnets\\_ids](#input\\_worker\\_private\\_subnets\\_ids)                                                                    | Private subnets used by worker nodes                                                                                                | `set(string)`                                                                                                      | n/a                                |   yes    |\n| \u003ca name=\"input_worker_public_subnets_ids\"\u003e\u003c/a\u003e [worker\\_public\\_subnets\\_ids](#input\\_worker\\_public\\_subnets\\_ids)                                                                       | Public subnets used by worker nodes                                                                                                 | `set(string)`                                                                                                      | n/a                                |   yes    |\n| \u003ca name=\"input_workers_additional_policies\"\u003e\u003c/a\u003e [workers\\_additional\\_policies](#input\\_workers\\_additional\\_policies)                                                                   | Additional IAM policies to be added to workers                                                                                      | `list(string)`                                                                                                     | `[]`                               |    no    |\n| \u003ca name=\"input_workers_custom_policy\"\u003e\u003c/a\u003e [workers\\_custom\\_policy](#input\\_workers\\_custom\\_policy)                                                                                     | Custom IAM policy to be added to workers (supports heredoc syntax, e.g. \u003c\u003cEOF ... EOF)                                              | `string`                                                                                                           | `\"\"`                               |    no    |\n| \u003ca name=\"input_write_aws_auth_config\"\u003e\u003c/a\u003e [write\\_aws\\_auth\\_config](#input\\_write\\_aws\\_auth\\_config)                                                                                   | Whether to write the aws-auth configmap file.                                                                                       | `bool`                                                                                                             | `true`                             |    no    |\n| \u003ca name=\"input_write_kubeconfig\"\u003e\u003c/a\u003e [write\\_kubeconfig](#input\\_write\\_kubeconfig)                                                                                                      | Whether to write a Kubectl config file containing the cluster configuration. Saved to `config_output_path`.                         | `bool`                                                                                                             | `true`                             |    no    |\n\n## Outputs\n\n| Name                                                                                                                                                                       | Description                                                               |\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------|\n| \u003ca name=\"output_alb_role_arn\"\u003e\u003c/a\u003e [alb\\_role\\_arn](#output\\_alb\\_role\\_arn)                                                                                               | alb role arn                                                              |\n| \u003ca name=\"output_cloudwatch_log_group_name\"\u003e\u003c/a\u003e [cloudwatch\\_log\\_group\\_name](#output\\_cloudwatch\\_log\\_group\\_name)                                                      | Name of cloudwatch log group created                                      |\n| \u003ca name=\"output_cluster_endpoint\"\u003e\u003c/a\u003e [cluster\\_endpoint](#output\\_cluster\\_endpoint)                                                                                     | Endpoint for EKS control plane.                                           |\n| \u003ca name=\"output_cluster_id\"\u003e\u003c/a\u003e [cluster\\_id](#output\\_cluster\\_id)                                                                                                       | The name/id of the EKS cluster.                                           |\n| \u003ca name=\"output_cluster_security_group_id\"\u003e\u003c/a\u003e [cluster\\_security\\_group\\_id](#output\\_cluster\\_security\\_group\\_id)                                                      | Security group ids attached to the cluster control plane.                 |\n| \u003ca name=\"output_cluster_version\"\u003e\u003c/a\u003e [cluster\\_version](#output\\_cluster\\_version)                                                                                        | The Kubernetes server version for the EKS cluster.                        |\n| \u003ca name=\"output_config_map_aws_auth\"\u003e\u003c/a\u003e [config\\_map\\_aws\\_auth](#output\\_config\\_map\\_aws\\_auth)                                                                        | A kubernetes configuration to authenticate to this EKS cluster.           |\n| \u003ca name=\"output_dynamic_persistent_volume_provisioning_arn\"\u003e\u003c/a\u003e [dynamic\\_persistent\\_volume\\_provisioning\\_arn](#output\\_dynamic\\_persistent\\_volume\\_provisioning\\_arn) | Dynamic PV policy arn                                                     |\n| \u003ca name=\"output_external_dns_role_arn\"\u003e\u003c/a\u003e [external\\_dns\\_role\\_arn](#output\\_external\\_dns\\_role\\_arn)                                                                  | external role arn                                                         |\n| \u003ca name=\"output_kamus_role_arn\"\u003e\u003c/a\u003e [kamus\\_role\\_arn](#output\\_kamus\\_role\\_arn)                                                                                         | kamus role arn                                                            |\n| \u003ca name=\"output_kubectl_config\"\u003e\u003c/a\u003e [kubectl\\_config](#output\\_kubectl\\_config)                                                                                           | kubectl config as generated by the module.                                |\n| \u003ca name=\"output_node_groups\"\u003e\u003c/a\u003e [node\\_groups](#output\\_node\\_groups)                                                                                                    | Outputs from EKS node groups. Map of maps, keyed by var.node\\_groups keys |\n| \u003ca name=\"output_worker_additional_policies\"\u003e\u003c/a\u003e [worker\\_additional\\_policies](#output\\_worker\\_additional\\_policies)                                                     | Additional policies added to the worker iam role                          |\n| \u003ca name=\"output_worker_iam_role_arn\"\u003e\u003c/a\u003e [worker\\_iam\\_role\\_arn](#output\\_worker\\_iam\\_role\\_arn)                                                                        | default IAM role ARN for EKS worker groups                                |\n| \u003ca name=\"output_worker_iam_role_name\"\u003e\u003c/a\u003e [worker\\_iam\\_role\\_name](#output\\_worker\\_iam\\_role\\_name)                                                                     | default IAM role name for EKS worker groups                               |\n| \u003ca name=\"output_worker_security_group_id\"\u003e\u003c/a\u003e [worker\\_security\\_group\\_id](#output\\_worker\\_security\\_group\\_id)                                                         | Security group ID attached to the EKS workers.                            |\n| \u003ca name=\"output_workers_asg_arns\"\u003e\u003c/a\u003e [workers\\_asg\\_arns](#output\\_workers\\_asg\\_arns)                                                                                   | IDs of the autoscaling groups containing workers.                         |\n| \u003ca name=\"output_workers_asg_names\"\u003e\u003c/a\u003e [workers\\_asg\\_names](#output\\_workers\\_asg\\_names)                                                                                | Names of the autoscaling groups containing workers.                       |\n| \u003ca name=\"output_workers_launch_template_ids\"\u003e\u003c/a\u003e [workers\\_launch\\_template\\_ids](#output\\_workers\\_launch\\_template\\_ids)                                                | IDs of the worker launch templates.                                       |\n| \u003ca name=\"output_workers_user_data\"\u003e\u003c/a\u003e [workers\\_user\\_data](#output\\_workers\\_user\\_data)                                                                                | User data of worker groups                                                |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgovtechsg%2Fterraform-aws-eks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgovtechsg%2Fterraform-aws-eks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgovtechsg%2Fterraform-aws-eks/lists"}