{"id":22923614,"url":"https://github.com/dellabeneta/terraform-aws-eks","last_synced_at":"2026-05-05T12:33:05.194Z","repository":{"id":223557154,"uuid":"760839478","full_name":"dellabeneta/terraform-aws-eks","owner":"dellabeneta","description":"Este é um \"super-módulo\" para provisionamento de um Cluster EKS completo na AWS. Ele considera VPC, Nodegroup, Load Balancer Controller etc.","archived":false,"fork":false,"pushed_at":"2024-03-27T22:57:44.000Z","size":105,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-07T09:25:54.277Z","etag":null,"topics":["aws","eks","helm-charts","kubernetes","terraform"],"latest_commit_sha":null,"homepage":"https://linktr.ee/dellabeneta","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/dellabeneta.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}},"created_at":"2024-02-20T20:31:13.000Z","updated_at":"2025-01-31T05:26:43.000Z","dependencies_parsed_at":"2024-03-27T23:45:02.164Z","dependency_job_id":null,"html_url":"https://github.com/dellabeneta/terraform-aws-eks","commit_stats":null,"previous_names":["dellabeneta/terraform-para-aws-mateus","dellabeneta/terraform-mymodule-eks","dellabeneta/terraform-supermodule","dellabeneta/aws-eks-terraform","dellabeneta/terraform-aws-eks"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dellabeneta%2Fterraform-aws-eks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dellabeneta%2Fterraform-aws-eks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dellabeneta%2Fterraform-aws-eks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dellabeneta%2Fterraform-aws-eks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dellabeneta","download_url":"https://codeload.github.com/dellabeneta/terraform-aws-eks/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246659618,"owners_count":20813331,"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","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","eks","helm-charts","kubernetes","terraform"],"created_at":"2024-12-14T08:16:08.985Z","updated_at":"2026-05-05T12:33:00.141Z","avatar_url":"https://github.com/dellabeneta.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Bem-vindo(a) ao 'Super-Módulo' para Elastic Kubernetes Service. \n\u003cimg src=\"https://drive.google.com/uc?export=view\u0026id=1jwpV_Q0bCWpo4LXJy2q1BMgh7zEVRqj3\" width=\"1000\"\u003e\n\nEste é um código Terraform completo para provisionamento de um Cluster EKS na AWS. Ele contempla Rede, um Node Group, Policies, Roles, Load Balancer Controller e demais configurações necessárias para criação de um cluster 100% operacional. Espero que aproveitem e façam bom uso dessa estrutura.\n\nTodo trabalho não teria sido possível sem o treinamento do [Mateus Muller](https://github.com/mateusmuller), que indico para todos que buscam entender mais sobre módulos no Terraform (https://www.udemy.com/course/terraform-para-aws).\n\nSe precisar, pode contatar no Linkedin em: https://www.linkedin.com/in/mdellabeneta/, ficaria muito feliz com o seu contato e contribuição.\n\nCom isso posto, vamos falar um pouco mais do que temos por aqui. Observe a saída do comando tree em meu terminal, para uma noção macro da estrutura de diretórios e arquivos:\n\n```\ndella@desklin:~/projetos$ tree terraform-supermodule/\nterraform-supermodule/\n├── LICENSE\n├── modules\n│   ├── cluster\n│   │   ├── cluster.tf\n│   │   ├── iam.tf\n│   │   ├── oidc.tf\n│   │   ├── output.tf\n│   │   ├── README.md\n│   │   ├── sg-rule.tf\n│   │   └── variables.tf\n│   ├── loadbalancer\n│   │   ├── data.tf\n│   │   ├── helm.tf\n│   │   ├── iam_policy.json\n│   │   ├── iam.tf\n│   │   ├── locals.tf\n│   │   ├── policy.tf\n│   │   ├── README.md\n│   │   ├── serviceaccount.tf\n│   │   └── variables.tf\n│   ├── network\n│   │   ├── igw.tf\n│   │   ├── ngw.tf\n│   │   ├── output.tf\n│   │   ├── private.tf\n│   │   ├── public.tf\n│   │   ├── README.md\n│   │   ├── region.tf\n│   │   ├── variables.tf\n│   │   └── vpc.tf\n│   └── nodegroup\n│       ├── iam.tf\n│       ├── nodegroup.tf\n│       ├── README.md\n│       └── variables.tf\n├── modules.tf\n├── provider.tf\n├── README.md\n└── variables.tf\n\n6 directories, 34 files\n```\n\nNas tabelas abaixo (geradas com o [pre-commit](https://pre-commit.com/) e [terraform-docs](https://terraform-docs.io/)), podemos ver maiores detalhes como dependências, versionamento utilizado e os INPUTS que são **requisitos** para a utilização do projeto.\n\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | 5.37.0 |\n| \u003ca name=\"requirement_helm\"\u003e\u003c/a\u003e [helm](#requirement\\_helm) | 2.12.1 |\n| \u003ca name=\"requirement_kubernetes\"\u003e\u003c/a\u003e [kubernetes](#requirement\\_kubernetes) | 2.26.0 |\n\n## Providers\n\nNo providers.\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_eks_cluster\"\u003e\u003c/a\u003e [eks\\_cluster](#module\\_eks\\_cluster) | ./modules/cluster | n/a |\n| \u003ca name=\"module_eks_load_balancer\"\u003e\u003c/a\u003e [eks\\_load\\_balancer](#module\\_eks\\_load\\_balancer) | ./modules/loadbalancer | n/a |\n| \u003ca name=\"module_eks_network\"\u003e\u003c/a\u003e [eks\\_network](#module\\_eks\\_network) | ./modules/network | n/a |\n| \u003ca name=\"module_eks_node_group\"\u003e\u003c/a\u003e [eks\\_node\\_group](#module\\_eks\\_node\\_group) | ./modules/nodegroup | n/a |\n\n## Resources\n\nNo resources.\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_aws_profile\"\u003e\u003c/a\u003e [aws\\_profile](#input\\_aws\\_profile) | Nome do profile configurado na AWS CLI localmente em seu PC | `string` | n/a | yes |\n| \u003ca name=\"input_cidr_block\"\u003e\u003c/a\u003e [cidr\\_block](#input\\_cidr\\_block) | IP CIDR que sera usado na VPC | `string` | n/a | yes |\n| \u003ca name=\"input_desired_size\"\u003e\u003c/a\u003e [desired\\_size](#input\\_desired\\_size) | Valor desejado de Nodes | `number` | n/a | yes |\n| \u003ca name=\"input_eks_version\"\u003e\u003c/a\u003e [eks\\_version](#input\\_eks\\_version) | Versao do EKS que sera provisionada na AWS | `string` | n/a | yes |\n| \u003ca name=\"input_instance_types\"\u003e\u003c/a\u003e [instance\\_types](#input\\_instance\\_types) | Tipo da instancia que sera usada para criacao dos Nodes | `string` | n/a | yes |\n| \u003ca name=\"input_max_size\"\u003e\u003c/a\u003e [max\\_size](#input\\_max\\_size) | Valor maximo de Nodes | `number` | n/a | yes |\n| \u003ca name=\"input_min_size\"\u003e\u003c/a\u003e [min\\_size](#input\\_min\\_size) | Valor minimo de Nodes | `number` | n/a | yes |\n| \u003ca name=\"input_project_name\"\u003e\u003c/a\u003e [project\\_name](#input\\_project\\_name) | Nome do projeto que pode ser usado nas tags de nome (Name tag) | `string` | n/a | yes |\n| \u003ca name=\"input_region\"\u003e\u003c/a\u003e [region](#input\\_region) | Regiao da AWS onde o projeto sera provisionado | `string` | n/a | yes |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | Tags para serem adicionadas aos recursos | `map(any)` | n/a | yes |\n\n## Outputs\n\nNo outputs.\n\u003c!-- END_TF_DOCS --\u003e\n\nVeja um exemplo de um \"main.tf\" que você poderia criar para utilizar este projeto de forma rápida, respeitando as variáveis, inputs necessários e com backend local:\n\n```\nmodule \"eks\" {\n  source = \"git@github.com:dellabeneta/terraform-supermodule.git\"\n\n  # Variáveis necessárias (INPUTS)\n  aws_profile    = \"SEU_PROFILE\"\n  region         = \"REGIÃO\"\n  project_name   = \"NOME_DO_PROJETO\"\n  eks_version    = \"VERSÃO_DO_EKS\"\n  cidr_block     = \"CIDR_PARA_VPC\" --\u003e de acordo com as configurações estabelecidas no módulo de VPC, a rede deve ser necessariamente definida como /16.\n  instance_types = \"SIZE_DA_EC2\"\n  desired_size   = \"1\"\n  min_size       = \"1\"\n  max_size       = \"1\"\n  \n\n  # As tags também são variáveis, do tipo map(). Opcionalmente,\n  # pode ser criado um arquivo 'locals.tags', para organizar \n  # melhor a passagem dos valores. Neste exemplo, não optei por isso.\n\n  tags = {\n    Departamento = \"Devops\"\n    Organizacao  = \"Dellabeneta S/A\"\n    Projeto      = \"Automatização com IaC Cluster EKS\"\n    Ambiente     = \"Desenvolvimento\"\n  }\n}\n```\n\nhttps://linktr.ee/dellabeneta\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdellabeneta%2Fterraform-aws-eks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdellabeneta%2Fterraform-aws-eks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdellabeneta%2Fterraform-aws-eks/lists"}