{"id":14957768,"url":"https://github.com/pete911/eks-cluster","last_synced_at":"2026-01-03T07:06:10.543Z","repository":{"id":142062681,"uuid":"298871039","full_name":"pete911/eks-cluster","owner":"pete911","description":"AWS EKS cluster","archived":false,"fork":false,"pushed_at":"2024-01-09T15:40:16.000Z","size":114,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-11T06:43:24.011Z","etag":null,"topics":["eks","eks-cluster","hashicorp-terraform","k8s-cluster","kubernetes-cluster","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pete911.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-09-26T18:01:21.000Z","updated_at":"2022-10-01T08:48:09.000Z","dependencies_parsed_at":"2024-09-22T04:01:42.030Z","dependency_job_id":"6023b84e-c34f-404d-a091-a7a6a135b7b8","html_url":"https://github.com/pete911/eks-cluster","commit_stats":{"total_commits":22,"total_committers":3,"mean_commits":7.333333333333333,"dds":0.2727272727272727,"last_synced_commit":"9d98713d1b8a89c487156c4649f47858a6ec90c1"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pete911%2Feks-cluster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pete911%2Feks-cluster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pete911%2Feks-cluster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pete911%2Feks-cluster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pete911","download_url":"https://codeload.github.com/pete911/eks-cluster/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222781666,"owners_count":17036811,"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":["eks","eks-cluster","hashicorp-terraform","k8s-cluster","kubernetes-cluster","terraform"],"created_at":"2024-09-24T13:15:33.227Z","updated_at":"2026-01-03T07:06:10.492Z","avatar_url":"https://github.com/pete911.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terraform for EKS cluster\n\nTerraform is in [tf](tf) directory (`cd tf`):\n - initialize and validate\n   - `terraform init`\n   - `terraform validate`\n   - `terraform plan`\n - apply (replace `\u003cyour-IP\u003e`) `terraform apply -var='public_access_cidrs=[\"\u003cyour-IP\u003e/32\"]'`\n - destroy `tf destroy`\n\n## AWS VPC\n\nVPC name is `eks-\u003ccluster\u003e` (`\u003ccluster\u003e` defaults to `main` and can be changed with `cluster_name` variable). Default\nVPC address is `10.0.0.0` (can be changed with `vpc_address` variable) and VPC netmask is `/24`.\n\n### subnets\n\nWe create 3 public and 3 private subnets in different availability zones. Each public subnet has\n[NAT Gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) with elastic IP to be used by\nprivate subnets for internet traffic.\n\n| Name                      | Type    | AZ | CIDR          | Hosts | Address    | Broadcast     | Host Min      | Host Max      |\n| ------------------------- | ------- | -- | ------------- | ----- | ---------- | ------------- | ------------- | ------------- |\n| eks-\\\u003ccluster\u003e-private-a  | private | a  | 10.0.0.0/26   | 62    | 10.0.0.0   | 10.0.0.63     | 10.0.0.1      | 10.0.0.62     |\n| eks-\\\u003ccluster\u003e-private-b  | private | b  | 10.0.0.64/26  | 62    | 10.0.0.64  | 10.0.0.127    | 10.0.0.65     | 10.0.0.126    |\n| eks-\\\u003ccluster\u003e-private-c  | private | c  | 10.0.0.128/26 | 62    | 10.0.0.128 | 10.0.0.191    | 10.0.0.129    | 10.0.0.190    |\n| eks-\\\u003ccluster\u003e-public-a   | public  | a  | 10.0.0.192/28 | 14    | 10.0.0.192 | 10.0.0.207    | 10.0.0.193    | 10.0.0.206    |\n| eks-\\\u003ccluster\u003e-public-b   | public  | b  | 10.0.0.208/28 | 14    | 10.0.0.208 | 10.0.0.223    | 10.0.0.209    | 10.0.0.222    |\n| eks-\\\u003ccluster\u003e-public-c   | public  | c  | 10.0.0.224/28 | 14    | 10.0.0.224 | 10.0.0.239    | 10.0.0.225    | 10.0.0.238    |\n\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"eks cluster diagram\" src=\"docs/images/eks-cluster.png\"\u003e\n\u003c/p\u003e\n\n## AWS EKS cluster\n\nCluster name defaults to `main` (can be changed with `cluster_name` variable). Cluster has a public endpoint open to all \ntraffic (`0.0.0.0/0`) by default, it is strongly encouraged to change this to list of allowed CIDRs using\n`public_access_cidrs` variable: `terraform apply -var='public_access_cidrs=[\"\u003cyour-IP\u003e/32\"]'`\n\nWe prefix AWS IAM role for a cluster with region (so it doesn't clash if you have a cluster with the same name in\nmultiple regions). IAM role name is in `\u003cregion\u003e-eks-\u003ccluster\u003e` format.\n\n### Node groups\n\nBy default, we create one `default` node group with `t3.medium` instances. Update [tf/variables.tf](tf/variables.tf) file\nto change defaults. Node groups use launch template, so we have managed EKS nodes, but with custom images. To update\nimage, but let AWS roll the nodes, update launch template (e.g. change instance type) and then set node groups launch\ntemplate version to the one you want to use.\n\n## ECR\n\nBy default, project creates ECR repositories (\u003ccluster\u003e/debug) and private link to ECR and S3 (docker images content is\nstored in S3).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpete911%2Feks-cluster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpete911%2Feks-cluster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpete911%2Feks-cluster/lists"}