Kubernetes and EKS core concepts: learn about Kubernetes architecture (control plane, worker nodes), access control (authentication, authorization), resources (pods, controllers, services, config, secrets), and more.
Kubernetes in Action: the best book we’ve found for getting up and running with Kubernetes.
There are a number of pre-requisites that need to be met prior to attempting to deploy this module. See the Getting Started document to ensure pre-requisites are met prior to attempting to deploy any of the examples or leveraging the EKS modules directly.
If you need help with this repo or anything else related to infrastructure or DevOps, Gruntwork offers Commercial Support via Slack, email, and phone/video. If you’re already a Gruntwork customer, hop on Slack and ask away! If not, subscribe now. If you’re not sure, feel free to email us at support@gruntwork.io.
Contributions to this repo are very welcome and appreciated! If you find a bug or want to add a new feature or even contribute an entirely new module, we are very happy to accept pull requests, provide feedback, and run your changes through our automated test suite.
{"treedata":{"name":"root","toggled":true,"children":[{"name":".circleci","children":[{"name":"config.yml","path":".circleci/config.yml","sha":"a44390f1275fb3bc74ecfb6908b63515ed78471b"},{"name":"post-upgrade-test-results.sh","path":".circleci/post-upgrade-test-results.sh","sha":"a4867e8fbdc334b7a90259568ee41ea577fbe764"},{"name":"set-upgrade-test-vars.sh","path":".circleci/set-upgrade-test-vars.sh","sha":"04ccab865d51c1169f7ae4648c38a3d98a9889ab"}]},{"name":".github","children":[{"name":"ISSUE_TEMPLATE","children":[{"name":"bug_report.md","path":".github/ISSUE_TEMPLATE/bug_report.md","sha":"d2e87e27c601e423865ed660ec697082470ca60f"},{"name":"feature_request.md","path":".github/ISSUE_TEMPLATE/feature_request.md","sha":"023a33099be2336476930c96e17ff1ba5dc55348"}]},{"name":"pull_request_template.md","path":".github/pull_request_template.md","sha":"6b100e40e323b5b07f40ed30616277c51c9f4b9e"}]},{"name":".gitignore","path":".gitignore","sha":"bfc15743d4328afefce082a0c1f1a7e94c2c7019"},{"name":".pre-commit-config.yaml","path":".pre-commit-config.yaml","sha":"5572d654afb9977c494772ccc3dfb8b26b2d2cec"},{"name":"CODEOWNERS","path":"CODEOWNERS","sha":"4d7d85a37b224e4ec798f28d4202059cd03a9178"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","sha":"1fa95dac5dc8a9b5f5cb33fcdf9bb4d085f6f155"},{"name":"GRUNTWORK_PHILOSOPHY.md","path":"GRUNTWORK_PHILOSOPHY.md","sha":"02d9873a74c99fe6d9b6b26bd9f8eb4a7a699c32"},{"name":"LICENSE.md","path":"LICENSE.md","sha":"a2cf01ecdd725fddd718ab91c80c115882c94f3c"},{"name":"README.adoc","path":"README.adoc","sha":"c3f1c2829701458eb84bdd239cded9dac3b845a8","toggled":true},{"name":"_docs","children":[{"name":"eks-architecture.png","path":"_docs/eks-architecture.png","sha":"b4c9c46f88ed465c5575e915af54ad9920b56941"},{"name":"eks-icon.png","path":"_docs/eks-icon.png","sha":"83a29dc46e7bc6234ba5bb825e8ae283c56229a0"},{"name":"iam-role-icon.png","path":"_docs/iam-role-icon.png","sha":"c05bb05e6caae9b9db46505ce505a386f21fa2e4"}]},{"name":"core-concepts.md","path":"core-concepts.md","sha":"348a0f2131a64a1ff9fc8d9ca142228be88fce26"},{"name":"examples","children":[{"name":"README.md","path":"examples/README.md","sha":"93b72e051adc393d5ef2daadad4ab6c49f8fbae2"},{"name":"eks-cluster-managed-workers","children":[{"name":"README.md","path":"examples/eks-cluster-managed-workers/README.md","sha":"dfeb410bdf56b810e03ba3e73e9bb93d79e97452"},{"name":"dependencies.tf","path":"examples/eks-cluster-managed-workers/dependencies.tf","sha":"756ddc34328bd4de3a615f5369bf71cc3cffafdc"},{"name":"main.tf","path":"examples/eks-cluster-managed-workers/main.tf","sha":"8087059d95b84426b37fe5911b8f39be6ddbe1fa"},{"name":"outputs.tf","path":"examples/eks-cluster-managed-workers/outputs.tf","sha":"84532a8cc37bbcb322e11d554713d98036d12b34"},{"name":"user-data","children":[{"name":"user_data.sh","path":"examples/eks-cluster-managed-workers/user-data/user_data.sh","sha":"c5fdd13d5bb04f765f1c90e9f12d23c48e94a252"}]},{"name":"variables.tf","path":"examples/eks-cluster-managed-workers/variables.tf","sha":"3029970974f357be5185a4fab83ecfb16b705f79"}]},{"name":"eks-cluster-with-argocd","children":[{"name":"README.md","path":"examples/eks-cluster-with-argocd/README.md","sha":"a4501dd1636f41fef573d730601d781998984919"},{"name":"argocd","children":[{"name":"dependencies.tf","path":"examples/eks-cluster-with-argocd/argocd/dependencies.tf","sha":"9fb708d6ce688d0c167d9fec0d6c1739e02a3d89"},{"name":"main.tf","path":"examples/eks-cluster-with-argocd/argocd/main.tf","sha":"6d1c3082a917c50d143dceba026d849678b5732f"},{"name":"outputs.tf","path":"examples/eks-cluster-with-argocd/argocd/outputs.tf","sha":"c09565f06bd69a9ed26536cbc8389012d20b7cb7"},{"name":"variables.tf","path":"examples/eks-cluster-with-argocd/argocd/variables.tf","sha":"4080eb586a0fc43d2380495590b5fc0b048ecbb2"}]},{"name":"core-services","children":[{"name":"dependencies.tf","path":"examples/eks-cluster-with-argocd/core-services/dependencies.tf","sha":"e0355c17476f86787dd04663fe2dbece2b710b90"},{"name":"main.tf","path":"examples/eks-cluster-with-argocd/core-services/main.tf","sha":"37642f5ca3386d8158b650fa21c0490a2f4c1b87"},{"name":"outputs.tf","path":"examples/eks-cluster-with-argocd/core-services/outputs.tf","sha":"b7b6da1a4da0ed22f2ebf7b9be1a4b5526be0fac"},{"name":"variables.tf","path":"examples/eks-cluster-with-argocd/core-services/variables.tf","sha":"0e75dfdc711d193ea61553a3db328d9e3b75cfe0"}]},{"name":"eks-cluster","children":[{"name":"dependencies.tf","path":"examples/eks-cluster-with-argocd/eks-cluster/dependencies.tf","sha":"756ddc34328bd4de3a615f5369bf71cc3cffafdc"},{"name":"main.tf","path":"examples/eks-cluster-with-argocd/eks-cluster/main.tf","sha":"851b010ddd186272c6ba83356de3521df89d4dc9"},{"name":"outputs.tf","path":"examples/eks-cluster-with-argocd/eks-cluster/outputs.tf","sha":"2e17cf19632aab9deb96adc2650ccf0e6e103379"},{"name":"user-data","children":[{"name":"user_data.sh","path":"examples/eks-cluster-with-argocd/eks-cluster/user-data/user_data.sh","sha":"c5fdd13d5bb04f765f1c90e9f12d23c48e94a252"}]},{"name":"variables.tf","path":"examples/eks-cluster-with-argocd/eks-cluster/variables.tf","sha":"3029970974f357be5185a4fab83ecfb16b705f79"}]}]},{"name":"eks-cluster-with-iam-role-mappings","children":[{"name":"README.md","path":"examples/eks-cluster-with-iam-role-mappings/README.md","sha":"7491b8b28b06af093a3d21a2b005b550c79275c9"},{"name":"dependencies.tf","path":"examples/eks-cluster-with-iam-role-mappings/dependencies.tf","sha":"1e257e8ae253547bcfb04b1623f77cd3a2278e10"},{"name":"main.tf","path":"examples/eks-cluster-with-iam-role-mappings/main.tf","sha":"80a7afa9c83bb4a89ef6d19602d153029a960ca5"},{"name":"outputs.tf","path":"examples/eks-cluster-with-iam-role-mappings/outputs.tf","sha":"e641213ad585fffe0f165b9a543d54c9175a1a7d"},{"name":"user-data","children":[{"name":"user-data.sh","path":"examples/eks-cluster-with-iam-role-mappings/user-data/user-data.sh","sha":"b10c34bfe4c9d10101472b47edbc3b7dff42a88e"}]},{"name":"variables.tf","path":"examples/eks-cluster-with-iam-role-mappings/variables.tf","sha":"14fd8b8db4d113e63373eb5e5ced2f07be948200"}]},{"name":"eks-cluster-with-karpenter","children":[{"name":"README.md","path":"examples/eks-cluster-with-karpenter/README.md","sha":"1103de5beb3e965a02fad20553445edc3889c1b9"},{"name":"charts","children":[{"name":"karpenter-configs","children":[{"name":"Chart.yaml","path":"examples/eks-cluster-with-karpenter/charts/karpenter-configs/Chart.yaml","sha":"8a82e61c5316ddb4ad37ef5ef958cff57397e692"},{"name":"templates","children":[{"name":"default-node-template.yaml","path":"examples/eks-cluster-with-karpenter/charts/karpenter-configs/templates/default-node-template.yaml","sha":"c8c816b7c987dfaa993133ee0064875c251992ee"},{"name":"default-provisioner.yaml","path":"examples/eks-cluster-with-karpenter/charts/karpenter-configs/templates/default-provisioner.yaml","sha":"92d44dff2bff7bde0420b344c1de8e711c41b367"}]},{"name":"values.yaml","path":"examples/eks-cluster-with-karpenter/charts/karpenter-configs/values.yaml","sha":"2722c76a72f50476c340dce342e0eca3b55ea5e6"}]}]},{"name":"dependencies.tf","path":"examples/eks-cluster-with-karpenter/dependencies.tf","sha":"756ddc34328bd4de3a615f5369bf71cc3cffafdc"},{"name":"main.tf","path":"examples/eks-cluster-with-karpenter/main.tf","sha":"0d157642a97f1d5dd48a2fc647dc9876ce4d04a7"},{"name":"outputs.tf","path":"examples/eks-cluster-with-karpenter/outputs.tf","sha":"e19ab8a511c09876d953efaa160367a08f89766c"},{"name":"templates","children":[{"name":"nginx-values.yaml","path":"examples/eks-cluster-with-karpenter/templates/nginx-values.yaml","sha":"a6924778ed01fda8375d708e7582db439d664fa6"}]},{"name":"user-data","children":[{"name":"user_data.sh","path":"examples/eks-cluster-with-karpenter/user-data/user_data.sh","sha":"c5fdd13d5bb04f765f1c90e9f12d23c48e94a252"}]},{"name":"variables.tf","path":"examples/eks-cluster-with-karpenter/variables.tf","sha":"c52db00f5397851a561ab88aeda35618aa6b9d5a"}]},{"name":"eks-cluster-with-supporting-services","children":[{"name":"README.md","path":"examples/eks-cluster-with-supporting-services/README.md","sha":"b1882c2dfbf1e0db6436ca45839f4a4c83813b87"},{"name":"core-services","children":[{"name":"README.md","path":"examples/eks-cluster-with-supporting-services/core-services/README.md","sha":"ec11e4899d4ca1a898fbf5b5a77bcff8555c2e64"},{"name":"dependencies.tf","path":"examples/eks-cluster-with-supporting-services/core-services/dependencies.tf","sha":"977c72682567c034c4effe391757cab2f342086f"},{"name":"main.tf","path":"examples/eks-cluster-with-supporting-services/core-services/main.tf","sha":"6ac4b8be34d887caea3e149af3a8600c942d3484"},{"name":"outputs.tf","path":"examples/eks-cluster-with-supporting-services/core-services/outputs.tf","sha":"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391"},{"name":"variables.tf","path":"examples/eks-cluster-with-supporting-services/core-services/variables.tf","sha":"0e75dfdc711d193ea61553a3db328d9e3b75cfe0"}]},{"name":"eks-cluster","children":[{"name":"README.md","path":"examples/eks-cluster-with-supporting-services/eks-cluster/README.md","sha":"8a60a01004a93bbbf2091b730f0207f6dd2cc07e"},{"name":"dependencies.tf","path":"examples/eks-cluster-with-supporting-services/eks-cluster/dependencies.tf","sha":"abce3f302a956114f394e4c5025a4aaf2b9da148"},{"name":"main.tf","path":"examples/eks-cluster-with-supporting-services/eks-cluster/main.tf","sha":"4d2cd921a4e0520332ef522e964983dd1c0ee258"},{"name":"outputs.tf","path":"examples/eks-cluster-with-supporting-services/eks-cluster/outputs.tf","sha":"be23a13dd6f4063be394b8ca7358b631d50fab8a"},{"name":"user-data","children":[{"name":"app_worker_user_data.sh","path":"examples/eks-cluster-with-supporting-services/eks-cluster/user-data/app_worker_user_data.sh","sha":"c5fdd13d5bb04f765f1c90e9f12d23c48e94a252"},{"name":"core_worker_user_data.sh","path":"examples/eks-cluster-with-supporting-services/eks-cluster/user-data/core_worker_user_data.sh","sha":"0fa26153108b3d030ceeaae777aeb0a7e115404e"}]},{"name":"variables.tf","path":"examples/eks-cluster-with-supporting-services/eks-cluster/variables.tf","sha":"ecaed652d0ccfc10bd5945cceec64c33b0b5eeff"}]},{"name":"nginx-service","children":[{"name":"README.md","path":"examples/eks-cluster-with-supporting-services/nginx-service/README.md","sha":"31221d1b06df0b3207e8c5a58ecd165250187619"},{"name":"dependencies.tf","path":"examples/eks-cluster-with-supporting-services/nginx-service/dependencies.tf","sha":"0176248910eed450c12b54d10e3d74c8702c17ca"},{"name":"main.tf","path":"examples/eks-cluster-with-supporting-services/nginx-service/main.tf","sha":"4ca956fe33173bab39a6f0836dbacd5aa1d5f19d"},{"name":"templates","children":[{"name":"values.yaml","path":"examples/eks-cluster-with-supporting-services/nginx-service/templates/values.yaml","sha":"f9be5310abb29e3310d77bbb8a025ef90f15dc5a"}]},{"name":"variables.tf","path":"examples/eks-cluster-with-supporting-services/nginx-service/variables.tf","sha":"36ea6f8a36b19e34dbeeb25ae7e5fcf30c956b0f"}]},{"name":"packer","children":[{"name":"README.md","path":"examples/eks-cluster-with-supporting-services/packer/README.md","sha":"2e3d40d4297cbd7cbdfb2172c38b0c479ea2e7ee"},{"name":"build.pkr.hcl","path":"examples/eks-cluster-with-supporting-services/packer/build.pkr.hcl","sha":"f282ca7942f7937584685bc1a709271e042080b3"}]}]},{"name":"eks-fargate-cluster-with-argocd","children":[{"name":"README.md","path":"examples/eks-fargate-cluster-with-argocd/README.md","sha":"7115776901baa2362222195afd48edbfbc4e4dd7"},{"name":"argocd","children":[{"name":"dependencies.tf","path":"examples/eks-fargate-cluster-with-argocd/argocd/dependencies.tf","sha":"edac96d132bc7425e886356bdb529375079f3af0"},{"name":"main.tf","path":"examples/eks-fargate-cluster-with-argocd/argocd/main.tf","sha":"510bf45e5fbe94daf71c5105799f8fbaba00a3cd"},{"name":"outputs.tf","path":"examples/eks-fargate-cluster-with-argocd/argocd/outputs.tf","sha":"c09565f06bd69a9ed26536cbc8389012d20b7cb7"},{"name":"variables.tf","path":"examples/eks-fargate-cluster-with-argocd/argocd/variables.tf","sha":"b7bd683967ed8d49b98a5349a87478c8582c6d1f"}]},{"name":"core-services","children":[{"name":"README.md","path":"examples/eks-fargate-cluster-with-argocd/core-services/README.md","sha":"5a479eadaae31051bc6922443018683051f2ef9c"},{"name":"dependencies.tf","path":"examples/eks-fargate-cluster-with-argocd/core-services/dependencies.tf","sha":"96c15ff4a702a70e6f8a1234b6a5e02fd41e38b7"},{"name":"main.tf","path":"examples/eks-fargate-cluster-with-argocd/core-services/main.tf","sha":"f23cf64d619667a27ce31055311b544427300f6c"},{"name":"outputs.tf","path":"examples/eks-fargate-cluster-with-argocd/core-services/outputs.tf","sha":"c09565f06bd69a9ed26536cbc8389012d20b7cb7"},{"name":"variables.tf","path":"examples/eks-fargate-cluster-with-argocd/core-services/variables.tf","sha":"fe40dd3758a52a0bce8342e95cec25b23db232ff"}]},{"name":"eks-cluster","children":[{"name":"dependencies.tf","path":"examples/eks-fargate-cluster-with-argocd/eks-cluster/dependencies.tf","sha":"f0730837927bfc77f4208917dfb9186789d607e0"},{"name":"main.tf","path":"examples/eks-fargate-cluster-with-argocd/eks-cluster/main.tf","sha":"85d9acdae15d7dc6f85904c38251e7126361b957"},{"name":"outputs.tf","path":"examples/eks-fargate-cluster-with-argocd/eks-cluster/outputs.tf","sha":"be823054868d3e9d3fbf88dccb707dc6a33aa1ce"},{"name":"variables.tf","path":"examples/eks-fargate-cluster-with-argocd/eks-cluster/variables.tf","sha":"14b958ee6bde0dc732795ee44f416944fa93e722"}]}]},{"name":"eks-fargate-cluster-with-irsa","children":[{"name":"README.md","path":"examples/eks-fargate-cluster-with-irsa/README.md","sha":"2ef7cf26c31533e74f1cc2b0b33489237b313b76"},{"name":"dependencies.tf","path":"examples/eks-fargate-cluster-with-irsa/dependencies.tf","sha":"b1404cb3c268b1c1af371859cec6ed8a4167c91c"},{"name":"main.tf","path":"examples/eks-fargate-cluster-with-irsa/main.tf","sha":"a51697ff3447de0a5b24196cc1daaa3989354a00"},{"name":"outputs.tf","path":"examples/eks-fargate-cluster-with-irsa/outputs.tf","sha":"f059d7b74ffbfb06a0868d6d0a5d1831c8f45f10"},{"name":"variables.tf","path":"examples/eks-fargate-cluster-with-irsa/variables.tf","sha":"1fcdff2f70711708a3d0482f101e6a98abe1df4e"}]},{"name":"eks-fargate-cluster-with-supporting-services","children":[{"name":"README.md","path":"examples/eks-fargate-cluster-with-supporting-services/README.md","sha":"49bdbe1483a7133cab1b345bb1ed9cf994dac786"},{"name":"core-services","children":[{"name":"README.md","path":"examples/eks-fargate-cluster-with-supporting-services/core-services/README.md","sha":"18cf6d3c8a4b2de11a41517121d3292fc632e1ec"},{"name":"dependencies.tf","path":"examples/eks-fargate-cluster-with-supporting-services/core-services/dependencies.tf","sha":"977c72682567c034c4effe391757cab2f342086f"},{"name":"main.tf","path":"examples/eks-fargate-cluster-with-supporting-services/core-services/main.tf","sha":"729300b496e98a4c7f1e29b1e8ef9cb94fc1abe7"},{"name":"variables.tf","path":"examples/eks-fargate-cluster-with-supporting-services/core-services/variables.tf","sha":"c878e34d13bce307523d30bd2741fc64a29e54c4"}]},{"name":"eks-cluster","children":[{"name":"dependencies.tf","path":"examples/eks-fargate-cluster-with-supporting-services/eks-cluster/dependencies.tf","sha":"243348214af559f81518ede4871dd10670813ed0"},{"name":"main.tf","path":"examples/eks-fargate-cluster-with-supporting-services/eks-cluster/main.tf","sha":"3c11bd2684586c027afdf34c0f364a2ba57da69f"},{"name":"outputs.tf","path":"examples/eks-fargate-cluster-with-supporting-services/eks-cluster/outputs.tf","sha":"edddf9a6ab6f5927db366689db79e1b91db9d8c8"},{"name":"variables.tf","path":"examples/eks-fargate-cluster-with-supporting-services/eks-cluster/variables.tf","sha":"8a256f2acf611e4ad250ea9771e9f0bf1ef10887"}]},{"name":"nginx-service","children":[{"name":"dependencies.tf","path":"examples/eks-fargate-cluster-with-supporting-services/nginx-service/dependencies.tf","sha":"0176248910eed450c12b54d10e3d74c8702c17ca"},{"name":"main.tf","path":"examples/eks-fargate-cluster-with-supporting-services/nginx-service/main.tf","sha":"7932ef879924e11d311421454f714b2eced1c9b4"},{"name":"templates","children":[{"name":"values.yaml","path":"examples/eks-fargate-cluster-with-supporting-services/nginx-service/templates/values.yaml","sha":"7faf0150a3336c47a2a9c0195172b6c249db9efe"}]},{"name":"variables.tf","path":"examples/eks-fargate-cluster-with-supporting-services/nginx-service/variables.tf","sha":"d3c166441cdc556b0839930fbc281b7e8a1bd57f"}]}]},{"name":"eks-fargate-cluster","children":[{"name":"README.md","path":"examples/eks-fargate-cluster/README.md","sha":"d4327780c978b563d52ea7ff6772ab9f95447eb0"},{"name":"dependencies.tf","path":"examples/eks-fargate-cluster/dependencies.tf","sha":"b1404cb3c268b1c1af371859cec6ed8a4167c91c"},{"name":"main.tf","path":"examples/eks-fargate-cluster/main.tf","sha":"b693bab2e0ae513fe7b1bb6bd804199394e114c8"},{"name":"outputs.tf","path":"examples/eks-fargate-cluster/outputs.tf","sha":"b95747230a76d29eb3b00093e6c4d20be776dfdf"},{"name":"user-data","children":[{"name":"user-data.sh","path":"examples/eks-fargate-cluster/user-data/user-data.sh","sha":"b10c34bfe4c9d10101472b47edbc3b7dff42a88e"}]},{"name":"variables.tf","path":"examples/eks-fargate-cluster/variables.tf","sha":"cb9a3dce1e7d2558fbd23506bf98779417d9671f"}]},{"name":"eks-private-fargate-cluster","children":[{"name":"README.md","path":"examples/eks-private-fargate-cluster/README.md","sha":"f97e1789cdcca547e546dc9d6671d1b504e33237"},{"name":"dependencies.tf","path":"examples/eks-private-fargate-cluster/dependencies.tf","sha":"b1404cb3c268b1c1af371859cec6ed8a4167c91c"},{"name":"main.tf","path":"examples/eks-private-fargate-cluster/main.tf","sha":"47cd2ebf18890de8459e036365c35987ea01c4f8"},{"name":"outputs.tf","path":"examples/eks-private-fargate-cluster/outputs.tf","sha":"be8cfb1ba6c42ffb4ff5b80053c47193e82e2652"},{"name":"user-data","children":[{"name":"user-data.sh","path":"examples/eks-private-fargate-cluster/user-data/user-data.sh","sha":"384647634c0337e04dc3c333680afb23e83144d4"}]},{"name":"variables.tf","path":"examples/eks-private-fargate-cluster/variables.tf","sha":"f935481b26d88d6937f8070c9e5a090c93afa988"}]}]},{"name":"getting-started.md","path":"getting-started.md","sha":"efc2b81e978a6a15584735c405f49012f930791e"},{"name":"gruntwork-gitops.md","path":"gruntwork-gitops.md","sha":"ff7e953aa2d29d3399dad67e72a618d66240ebee"},{"name":"modules","children":[{"name":"eks-alb-ingress-controller-iam-policy","children":[{"name":"README.md","path":"modules/eks-alb-ingress-controller-iam-policy/README.md","sha":"c87be2ee00f8f59403f827303915b5a70c602002"},{"name":"iampolicy.json","path":"modules/eks-alb-ingress-controller-iam-policy/iampolicy.json","sha":"bf5a357922cc6bb1027c0cca855abcac08ef850b"},{"name":"main.tf","path":"modules/eks-alb-ingress-controller-iam-policy/main.tf","sha":"34721c87423251374a1d8ffc973ca7e6c34fb410"},{"name":"outputs.tf","path":"modules/eks-alb-ingress-controller-iam-policy/outputs.tf","sha":"b551b0bcc6eb1b43bfff1606696566658564cfb4"},{"name":"variables.tf","path":"modules/eks-alb-ingress-controller-iam-policy/variables.tf","sha":"250152e6bfeb02a16bed4151ffc7156636db1bd9"}]},{"name":"eks-alb-ingress-controller","children":[{"name":"README.md","path":"modules/eks-alb-ingress-controller/README.md","sha":"674460e96524b7c471bcd145fc63ffda572f6dd6"},{"name":"main.tf","path":"modules/eks-alb-ingress-controller/main.tf","sha":"5d1568c25a543dc9f0e99e9884d7bf2be9fb75f3"},{"name":"variables.tf","path":"modules/eks-alb-ingress-controller/variables.tf","sha":"224c0b0e87565b082167606f033d8775e5c8797a"}]},{"name":"eks-aws-auth-merger","children":[{"name":"Dockerfile","path":"modules/eks-aws-auth-merger/Dockerfile","sha":"9380baad15659923c5905853afbab3ec6427aa74"},{"name":"README.adoc","path":"modules/eks-aws-auth-merger/README.adoc","sha":"3925da9abe76bd1d4ddb2d4edbc1bbff65ed282c"},{"name":"aws-auth-merger","children":[{"name":"aws_auth_merger.go","path":"modules/eks-aws-auth-merger/aws-auth-merger/aws_auth_merger.go","sha":"e57f85e46562688691ecf7696d8658b234f0643d"},{"name":"aws_auth_merger_test.go","path":"modules/eks-aws-auth-merger/aws-auth-merger/aws_auth_merger_test.go","sha":"218a7dbb20c3e5ba80e6540156a81241360c6930"},{"name":"cli.go","path":"modules/eks-aws-auth-merger/aws-auth-merger/cli.go","sha":"e59602c3f30025d24db02d9362c3ff4f07a27abd"},{"name":"configmap_watch_controller.go","path":"modules/eks-aws-auth-merger/aws-auth-merger/configmap_watch_controller.go","sha":"a0f8c6befb7a40e1b6f35bbe93e90c7054f3536c"},{"name":"debouncer.go","path":"modules/eks-aws-auth-merger/aws-auth-merger/debouncer.go","sha":"1d9ddd27a9db243fd250eb4b8672a44edb63e7ff"},{"name":"debouncer_test.go","path":"modules/eks-aws-auth-merger/aws-auth-merger/debouncer_test.go","sha":"e6cd8e44503b4dea3e81b26ff20db39c35c8c72e"},{"name":"go.mod","path":"modules/eks-aws-auth-merger/aws-auth-merger/go.mod","sha":"7385dc48196848ef440aba1ec87d5a476fc89daa"},{"name":"go.sum","path":"modules/eks-aws-auth-merger/aws-auth-merger/go.sum","sha":"52866cbfe61e22107b82ab8bc509fbf69339e6e3"},{"name":"main.go","path":"modules/eks-aws-auth-merger/aws-auth-merger/main.go","sha":"caa9ef8bda3af991c3c088fa20b80d9696b9dcb5"},{"name":"mapping.go","path":"modules/eks-aws-auth-merger/aws-auth-merger/mapping.go","sha":"04ad904821a3530a3dea9930b74081d95330d73f"},{"name":"mapping_test.go","path":"modules/eks-aws-auth-merger/aws-auth-merger/mapping_test.go","sha":"02c91e45a128d6c306ec42a548ac9023df350e78"}]},{"name":"core-concepts.md","path":"modules/eks-aws-auth-merger/core-concepts.md","sha":"2da0061c35747e9f280f8a440adfc4534da40fa4"},{"name":"main.tf","path":"modules/eks-aws-auth-merger/main.tf","sha":"81c27bd02b878cd732181867401b746ab023218a"},{"name":"outputs.tf","path":"modules/eks-aws-auth-merger/outputs.tf","sha":"d733fb246403f97ac011cbedf3f1d2761badef82"},{"name":"variables.tf","path":"modules/eks-aws-auth-merger/variables.tf","sha":"429e5990df785c4c01c4a07668d41ce648e4e68b"}]},{"name":"eks-cloudwatch-agent","children":[{"name":"README.md","path":"modules/eks-cloudwatch-agent/README.md","sha":"fa78952ef636c021ce85246dc89955ae87c16f32"},{"name":"main.tf","path":"modules/eks-cloudwatch-agent/main.tf","sha":"7f19dea9871d4af790ea088228bcd16c801925ac"},{"name":"outputs.tf","path":"modules/eks-cloudwatch-agent/outputs.tf","sha":"7061ed458fec528c8b8b587291f0eccb4324fb72"},{"name":"variables.tf","path":"modules/eks-cloudwatch-agent/variables.tf","sha":"5bb5fdf994036c472b0f5e4b162895ccd018c6e8"}]},{"name":"eks-cluster-control-plane","children":[{"name":"README.md","path":"modules/eks-cluster-control-plane/README.md","sha":"e8a0fa5defdc96d36d7a1c3a48159b152340fc9e"},{"name":"dependencies.tf","path":"modules/eks-cluster-control-plane/dependencies.tf","sha":"f33b4c9962a861cf7203fe7a90fbc86478d7a143"},{"name":"main.tf","path":"modules/eks-cluster-control-plane/main.tf","sha":"a05fb43958e3ed004c4612318d87fc801837ccfd"},{"name":"outputs.tf","path":"modules/eks-cluster-control-plane/outputs.tf","sha":"92250611edcb122926d433fb9a55970f08da5788"},{"name":"scripts","children":[{"name":"find_and_run_kubergrunt.py","path":"modules/eks-cluster-control-plane/scripts/find_and_run_kubergrunt.py","sha":"acec4108e53536b87a16dc7f143e5193035a891f"}]},{"name":"templates","children":[{"name":"kubectl_config.tpl","path":"modules/eks-cluster-control-plane/templates/kubectl_config.tpl","sha":"4eadcc7bd5c167feb6100efb17052a96ac83bba8"}]},{"name":"variables.tf","path":"modules/eks-cluster-control-plane/variables.tf","sha":"56159aaf72f93cd9dc4c3d4fad628f86eeca7d19"}]},{"name":"eks-cluster-managed-workers","children":[{"name":"README.md","path":"modules/eks-cluster-managed-workers/README.md","sha":"3a16f897364248d95f5ab96e064b26ad580bd29f"},{"name":"main.tf","path":"modules/eks-cluster-managed-workers/main.tf","sha":"f2eaec6e1b171c80dc9c52dc618890161e006cec"},{"name":"outputs.tf","path":"modules/eks-cluster-managed-workers/outputs.tf","sha":"0717106e35f73f355972e05b9b8c5e2ea94434f4"},{"name":"variables.tf","path":"modules/eks-cluster-managed-workers/variables.tf","sha":"af41ba4053fa077613dcc7cd0231b05e8b965829"}]},{"name":"eks-cluster-workers-cross-access","children":[{"name":"README.md","path":"modules/eks-cluster-workers-cross-access/README.md","sha":"6c4e50bda62acc6c06d836488ef54f7119f27aee"},{"name":"main.tf","path":"modules/eks-cluster-workers-cross-access/main.tf","sha":"715de2b770e3a96b147f92e965d8e1b80a356a05"},{"name":"outputs.tf","path":"modules/eks-cluster-workers-cross-access/outputs.tf","sha":"c6c7f7a89007c55be5470ffd639c05c3fb052ad7"},{"name":"variables.tf","path":"modules/eks-cluster-workers-cross-access/variables.tf","sha":"d64aab893b6e909416189e985f072dd8809dfa2f"}]},{"name":"eks-cluster-workers","children":[{"name":"README.md","path":"modules/eks-cluster-workers/README.md","sha":"13dca344372f0c7492ab813a42ab7cefaa975fe3"},{"name":"dependencies.tf","path":"modules/eks-cluster-workers/dependencies.tf","sha":"d177e89ddc5cb6b4ab5b36ec96fd1ec22a008a49"},{"name":"main.tf","path":"modules/eks-cluster-workers/main.tf","sha":"9051a43cd70fd4581d467ac93de0a3cadfc88dce"},{"name":"outputs.tf","path":"modules/eks-cluster-workers/outputs.tf","sha":"aeab5d8ac0fd110798c22c067baf8ba559605fbf"},{"name":"variables.tf","path":"modules/eks-cluster-workers/variables.tf","sha":"82ebe162ab2fc342192feca65a8f96868223b130"}]},{"name":"eks-container-logs","children":[{"name":"README.md","path":"modules/eks-container-logs/README.md","sha":"b0ceb4671329b00a0f2003bd0d08589c12ea83ed"},{"name":"main.tf","path":"modules/eks-container-logs/main.tf","sha":"7d08f9986c055deb2a502372d29c45fe81c6e3ce"},{"name":"outputs.tf","path":"modules/eks-container-logs/outputs.tf","sha":"7061ed458fec528c8b8b587291f0eccb4324fb72"},{"name":"variables.tf","path":"modules/eks-container-logs/variables.tf","sha":"84460eb8814b9a25533bc17b38def4f85339c3a1"}]},{"name":"eks-fargate-container-logs","children":[{"name":"README.md","path":"modules/eks-fargate-container-logs/README.md","sha":"7ac3892272260b9af994dfbe50aded64d54b58cf"},{"name":"main.tf","path":"modules/eks-fargate-container-logs/main.tf","sha":"a21b6ced6ce17eaec2eef6bad5868cdbc3ad6d20"},{"name":"outputs.tf","path":"modules/eks-fargate-container-logs/outputs.tf","sha":"2ed65ae0ecffdfb49281bcb32fd90a4f71d3a016"},{"name":"variables.tf","path":"modules/eks-fargate-container-logs/variables.tf","sha":"83547c699653a578e35542822b547aa0abff6724"}]},{"name":"eks-iam-role-assume-role-policy-for-service-account","children":[{"name":"README.md","path":"modules/eks-iam-role-assume-role-policy-for-service-account/README.md","sha":"efbbbd70fea3661c662750768facb7950239ffa3"},{"name":"main.tf","path":"modules/eks-iam-role-assume-role-policy-for-service-account/main.tf","sha":"2a580faffb59234534b0ee4bf07ceae4be0812ff"},{"name":"outputs.tf","path":"modules/eks-iam-role-assume-role-policy-for-service-account/outputs.tf","sha":"c2910cec89910bb06a157311ac8c4bf72835dfe5"},{"name":"variables.tf","path":"modules/eks-iam-role-assume-role-policy-for-service-account/variables.tf","sha":"763803eda0d225bb23642767306d5e150977253d"}]},{"name":"eks-k8s-argocd","children":[{"name":"README.md","path":"modules/eks-k8s-argocd/README.md","sha":"aa8371a21947f3dfa4185ffc89894f38fde7cc58"},{"name":"main.tf","path":"modules/eks-k8s-argocd/main.tf","sha":"9f7b64f1b76afcf1ffdfa28a489bd07d63a3a1b5"},{"name":"outputs.tf","path":"modules/eks-k8s-argocd/outputs.tf","sha":"cb9f236128127bb1b2028bc60b2a7f3becc36ac3"},{"name":"variables.tf","path":"modules/eks-k8s-argocd/variables.tf","sha":"641a3273fe0695184c193951dc8aa9ac8774868d"}]},{"name":"eks-k8s-cluster-autoscaler-iam-policy","children":[{"name":"README.md","path":"modules/eks-k8s-cluster-autoscaler-iam-policy/README.md","sha":"591a2e965b97691e43bd72ad9700c62653933072"},{"name":"main.tf","path":"modules/eks-k8s-cluster-autoscaler-iam-policy/main.tf","sha":"c5c69ca7f4a4efeb184fb406e8ea0fc88bc3a62f"},{"name":"outputs.tf","path":"modules/eks-k8s-cluster-autoscaler-iam-policy/outputs.tf","sha":"8b6c4e1747b3fa6a88c6233ec87aa2f450dfd334"},{"name":"variables.tf","path":"modules/eks-k8s-cluster-autoscaler-iam-policy/variables.tf","sha":"7534ac11f3cd71e1a1bf9521065a474f5f56ec3c"}]},{"name":"eks-k8s-cluster-autoscaler","children":[{"name":"README.md","path":"modules/eks-k8s-cluster-autoscaler/README.md","sha":"720c5bf5ac2fae03be80ca2284cb813cbe9dda78"},{"name":"main.tf","path":"modules/eks-k8s-cluster-autoscaler/main.tf","sha":"d006a96214c0d0c8f8e5492723a44956ce76d98d"},{"name":"templates","children":[{"name":"expander-priorities.tpl","path":"modules/eks-k8s-cluster-autoscaler/templates/expander-priorities.tpl","sha":"989d1ac06ad6c8fad0b71b0d9a25fcf792064819"}]},{"name":"variables.tf","path":"modules/eks-k8s-cluster-autoscaler/variables.tf","sha":"426a235c11a0592b11344a396906db2d78ad179e"}]},{"name":"eks-k8s-external-dns-iam-policy","children":[{"name":"README.md","path":"modules/eks-k8s-external-dns-iam-policy/README.md","sha":"a33d41f9824e6270ef4573d6b7e22b394224689c"},{"name":"main.tf","path":"modules/eks-k8s-external-dns-iam-policy/main.tf","sha":"888f7e0e7ef01989c06064c5cb786cf99bf657c1"},{"name":"outputs.tf","path":"modules/eks-k8s-external-dns-iam-policy/outputs.tf","sha":"21604a63b741b94ea9ebffd20b18772131020fcf"},{"name":"variables.tf","path":"modules/eks-k8s-external-dns-iam-policy/variables.tf","sha":"c9d71db85ad8f3085d9ae3c3073bf46da6241b75"}]},{"name":"eks-k8s-external-dns","children":[{"name":"README.md","path":"modules/eks-k8s-external-dns/README.md","sha":"3258c634834d26d3e973da22aaab1b2dd824a2e5"},{"name":"main.tf","path":"modules/eks-k8s-external-dns/main.tf","sha":"9d626d45b705192dbd868f886038f092e1f635dc"},{"name":"variables.tf","path":"modules/eks-k8s-external-dns/variables.tf","sha":"b746e3844a43007816e2761364a706a1a77a4d89"}]},{"name":"eks-k8s-karpenter","children":[{"name":"README.md","path":"modules/eks-k8s-karpenter/README.md","sha":"28f709f2c4de98316fb556945f0db6b437b12fe3"},{"name":"main.tf","path":"modules/eks-k8s-karpenter/main.tf","sha":"90582afbb1c34d731478e24bf5553c073434124c"},{"name":"migrating-to-karpenter-from-cas.md","path":"modules/eks-k8s-karpenter/migrating-to-karpenter-from-cas.md","sha":"6b1b4ab812b30f272e2692dd05f3300bec79befc"},{"name":"outputs.tf","path":"modules/eks-k8s-karpenter/outputs.tf","sha":"a92bab6397516ac03acc08fc7132b3daace4be4c"},{"name":"variables.tf","path":"modules/eks-k8s-karpenter/variables.tf","sha":"a18eeb8d2a002da077cf40c9f9d80e27eb64449f"}]},{"name":"eks-k8s-role-mapping","children":[{"name":"README.md","path":"modules/eks-k8s-role-mapping/README.md","sha":"2962e93307761b2356c62f0ac8068dc01f98d9f4"},{"name":"main.tf","path":"modules/eks-k8s-role-mapping/main.tf","sha":"f5462cd975a537d8d8cec04428518e4c60ec426e"},{"name":"outputs.tf","path":"modules/eks-k8s-role-mapping/outputs.tf","sha":"95d4d4ec652bb541b91a2844e00f68064b423e60"},{"name":"variables.tf","path":"modules/eks-k8s-role-mapping/variables.tf","sha":"8b4947f34102ce2c42d89f434ef36fbc4ed5b3b0"}]},{"name":"eks-scripts","children":[{"name":"README.md","path":"modules/eks-scripts/README.md","sha":"ecbee774470d2934bd06be0a617cf308a9e2f3fb"},{"name":"bin","children":[{"name":"map-ec2-tags-to-node-labels","path":"modules/eks-scripts/bin/map-ec2-tags-to-node-labels","sha":"5518b99c1427110c77b6ff3d2c8ef525407da15c"},{"name":"map_ec2_tags_to_node_labels.py","path":"modules/eks-scripts/bin/map_ec2_tags_to_node_labels.py","sha":"f75ad19587e95b2bd8924125ea2a1a697154909f"}]},{"name":"dev_requirements.txt","path":"modules/eks-scripts/dev_requirements.txt","sha":"f56f9d1629a85734fe16ed70f00f36b830cd97c9"},{"name":"install.sh","path":"modules/eks-scripts/install.sh","sha":"9bcc8f9f983a6304fd092c044b19b74ee0200cc1"},{"name":"requirements.txt","path":"modules/eks-scripts/requirements.txt","sha":"d0d331dd2b1483f8dcfd833d2e1d4d6220a4111a"}]},{"name":"eks-vpc-tags","children":[{"name":"README.md","path":"modules/eks-vpc-tags/README.md","sha":"b53e923baaa79718b55a272158ff9b710871a6ce"},{"name":"main.tf","path":"modules/eks-vpc-tags/main.tf","sha":"f47d5c6af725abce4509d7f3385e99f1667885a0"},{"name":"outputs.tf","path":"modules/eks-vpc-tags/outputs.tf","sha":"0ef2787cfd02ea8668c687302b1929618079a0b2"},{"name":"variables.tf","path":"modules/eks-vpc-tags/variables.tf","sha":"a6e332e9da4e473e1e42b1ca6c7b0ba139a77cfb"}]}]},{"name":"renovate.json","path":"renovate.json","sha":"39a2b6e9a55b8aaa96d0ee0e1c8f956c5c662e75"},{"name":"rfc","children":[{"name":"shipping-logs-to-cloudwatch.md","path":"rfc/shipping-logs-to-cloudwatch.md","sha":"77d230b88e3b760140d0e2e2b8b54fd13698ca2e"}]},{"name":"setup.cfg","path":"setup.cfg","sha":"981bc2bfd0b35029438d56c6d862a7f1519b8fe6"},{"name":"terraform-cloud-enterprise-private-module-registry-placeholder.tf","path":"terraform-cloud-enterprise-private-module-registry-placeholder.tf","sha":"ae586c0fe830819580e1009d41a9074f16e65bed"},{"name":"test","children":[{"name":"README.md","path":"test/README.md","sha":"f020dc40af74a4deed3b1530e067d79e7b5e3812"},{"name":"eks_cluster_drain_test.go","path":"test/eks_cluster_drain_test.go","sha":"ffe7e5dbb1023647dc0f46448dd383ee1ded1dee"},{"name":"eks_cluster_integration_test.go","path":"test/eks_cluster_integration_test.go","sha":"7a20a13cbef25c84e3168b7b8bcc018905c26e1b"},{"name":"eks_cluster_karpenter_test.go","path":"test/eks_cluster_karpenter_test.go","sha":"961d158c438c70cdeb3a81ef4e1e3cd05d281fe8"},{"name":"eks_cluster_managed_workers_test.go","path":"test/eks_cluster_managed_workers_test.go","sha":"db216be8c1e8cda05044d6af37b65f188d4e10c3"},{"name":"eks_cluster_test_helpers.go","path":"test/eks_cluster_test_helpers.go","sha":"d30817fcca3f43bb1a6652366330fff338f7ceb7"},{"name":"eks_cluster_upgrade_test.go","path":"test/eks_cluster_upgrade_test.go","sha":"5fc34c888e1e125b738a072c8c0a9a3f93348c25"},{"name":"eks_cluster_with_auth_merger_test.go","path":"test/eks_cluster_with_auth_merger_test.go","sha":"402ea656bb62724f547fe20bc80d52fdb68e810a"},{"name":"eks_cluster_with_iam_role_test.go","path":"test/eks_cluster_with_iam_role_test.go","sha":"76ccb120ad4c880fd352cc229691f8fabee5fc6b"},{"name":"eks_cluster_with_supporting_services_test.go","path":"test/eks_cluster_with_supporting_services_test.go","sha":"a382dd1c03c2bff947ccb62fc5e3860fd5aacc7b"},{"name":"eks_cluster_workers_optional_test.go","path":"test/eks_cluster_workers_optional_test.go","sha":"9c1398c1cd8ebe01f1d8f36349a6512f7f25171c"},{"name":"eks_envelope_encryption_test.go","path":"test/eks_envelope_encryption_test.go","sha":"a3a3e188ca2620e2fef831ed1732915cb8b24f32"},{"name":"eks_fargate_cluster_disable_public_endpoint_test.go","path":"test/eks_fargate_cluster_disable_public_endpoint_test.go","sha":"c8f8795570e5c8d9e22e5e27b41750ceb33a1332"},{"name":"eks_fargate_cluster_irsa_test.go","path":"test/eks_fargate_cluster_irsa_test.go","sha":"6199b0f6e7c7f9f5d8bc4ac77ea1ebed6e3a3479"},{"name":"eks_fargate_cluster_private_access_test.go","path":"test/eks_fargate_cluster_private_access_test.go","sha":"f9558dcf1c832616082a278cbe0e2f849ebed026"},{"name":"eks_fargate_cluster_public_access_cidr_test.go","path":"test/eks_fargate_cluster_public_access_cidr_test.go","sha":"0108e317220d505d8f8ec8eff94372b278ac425b"},{"name":"eks_fargate_cluster_test.go","path":"test/eks_fargate_cluster_test.go","sha":"697588af6d7372a17adc5d967fa22362d4c3f4bb"},{"name":"eks_fargate_cluster_with_supporting_services_test.go","path":"test/eks_fargate_cluster_with_supporting_services_test.go","sha":"6e637c902f5ea41e029d45e0c92bfacbc4e6c0fd"},{"name":"eks_mixed_cluster_dns_test.go","path":"test/eks_mixed_cluster_dns_test.go","sha":"069332615ab046026f91262ebfb3715786132895"},{"name":"errors.go","path":"test/errors.go","sha":"be062fe0205ff82db8183d0fde639aa1883013ad"},{"name":"go.mod","path":"test/go.mod","sha":"4ae528add1d114836c1c279e7a6b92883f26c7bb"},{"name":"go.sum","path":"test/go.sum","sha":"a8ee2d8a8687e4b07a08a0fc2aa7ee21765ca083"},{"name":"kubefixtures","children":[{"name":"autoscaler-test-pods-deployment.yml","path":"test/kubefixtures/autoscaler-test-pods-deployment.yml","sha":"b2d94c4bfa729b639290ee21629c19ca6ea694ee"},{"name":"eks-irsa-test.yml","path":"test/kubefixtures/eks-irsa-test.yml","sha":"db5439cf6d38873dbae71daa4197d6947990a94a"},{"name":"eks-k8s-role-mapping-test-role.yml","path":"test/kubefixtures/eks-k8s-role-mapping-test-role.yml","sha":"ede7587308d2a4ecf55042b05800099c43f3af7d"},{"name":"kube-system-sa-admin-binding.yml","path":"test/kubefixtures/kube-system-sa-admin-binding.yml","sha":"282d406512102cbe54e952575f26e7e0fbb2aa9a"},{"name":"nginx-deployment.yml","path":"test/kubefixtures/nginx-deployment.yml","sha":"a58866e59c113635af24982cfb0b530f0c416af0"},{"name":"robust-nginx-deployment.yml","path":"test/kubefixtures/robust-nginx-deployment.yml","sha":"b5307c53b4a00e90055d172373a23638264ff1ea"}]},{"name":"script_tests","children":[{"name":"executor.sh","path":"test/script_tests/executor.sh","sha":"458c534996fbc045081d1cfae521c090f6787a7f"},{"name":"requirements.txt","path":"test/script_tests/requirements.txt","sha":"06396f7e5a86d69eece77d50a8abeb668b32b6c5"},{"name":"test_map_ec2_tags_to_node_labels.py","path":"test/script_tests/test_map_ec2_tags_to_node_labels.py","sha":"6b88e92ac569e20ece5a35c74f053a08839e4638"},{"name":"tox.ini","path":"test/script_tests/tox.ini","sha":"8f35694ace0ae33f6935e5e779bed26d7ccdd9e8"}]},{"name":"terratest_options.go","path":"test/terratest_options.go","sha":"08c231b5cece6beea6cce3a3065aab3e1390089a"},{"name":"test_debug_helpers.go","path":"test/test_debug_helpers.go","sha":"c71a7a9d5b68f0f59d2518496d9f5893206b5e22"},{"name":"test_helpers.go","path":"test/test_helpers.go","sha":"1eb9c6089b41d234929d0b5c7050b389a2fb954d"},{"name":"upgrades","children":[{"name":"upgrade_test.go","path":"test/upgrades/upgrade_test.go","sha":"3b2daebd0aff102344c78076a5485ff3f9a32331"}]},{"name":"validation","children":[{"name":"validate_all_modules_and_examples_test.go","path":"test/validation/validate_all_modules_and_examples_test.go","sha":"74c928d0cbc2914e5cd708277bd857cb2375b660"}]}]}]},"detailsContent":"<div id=\"preamble\">\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p><span class=\"image\"><a class=\"image\" href=\"https://gruntwork.io/?ref=repo_aws_eks\" target=\"_blank\"><img src=\"https://img.shields.io/badge/maintained%20by-gruntwork.io-%235849a6.svg\" alt=\"maintained%20by gruntwork.io %235849a6\" class=\"preview__body--diagram\"></a></span>\n<span class=\"image\"><img src=\"https://img.shields.io/badge/tf-%3E%3D1.1.0-blue\" alt=\"Terraform version\" class=\"preview__body--diagram\"></span>\n<span class=\"image\"><img src=\"https://img.shields.io/badge/helm-%3E%3D3.1.0-green\" alt=\"Helm version\" class=\"preview__body--diagram\"></span>\n<span class=\"image\"><img src=\"https://img.shields.io/badge/k8s-1.23~1.27-5dbcd2\" alt=\"K8s version\" class=\"preview__body--diagram\"></span></p>\n</div>\n<div class=\"paragraph\">\n<p>This repo contains a Module for running Kubernetes clusters on <a href=\"https://aws.amazon.com\" target=\"_blank\">AWS</a> using <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/clusters.html\" target=\"_blank\">Elastic Kubernetes Service (EKS)</a> with\n<a href=\"https://www.terraform.io\" target=\"_blank\">Terraform</a>.</p>\n</div>\n<div class=\"imageblock\">\n<div class=\"content\">\n<img src=\"/repos/images/v0.63.0/terraform-aws-eks/_docs/eks-architecture.png?raw=true\" alt=\"EKS architecture\" class=\"preview__body--diagram\">\n</div>\n</div>\n<div id=\"toc\" class=\"toc\">\n<div id=\"toctitle\" class=\"title\"></div>\n<ul class=\"sectlevel1\">\n<li><a href=\"#_features\">Features</a></li>\n<li><a href=\"#_learn\">Learn</a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_core_concepts\">Core concepts</a></li>\n<li><a href=\"#_repo_organization\">Repo organization</a></li>\n<li><a href=\"#_gruntwork_analysis\">Gruntwork analysis</a></li>\n</ul>\n</li>\n<li><a href=\"#_deploy\">Deploy</a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_pre_requisites_start_here\">Pre-requisites (start here)</a></li>\n<li><a href=\"#_non_production_deployment_quick_start_for_learning\">Non-production deployment (quick start for learning)</a></li>\n<li><a href=\"#_production_deployment\">Production deployment</a></li>\n<li><a href=\"#_gruntwork_gitops_gruntops_deployment\">Gruntwork GitOps \"GruntOps\" Deployment</a></li>\n</ul>\n</li>\n<li><a href=\"#_manage\">Manage</a>\n<ul class=\"sectlevel2\">\n<li><a href=\"#_day_to_day_operations\">Day-to-day operations</a></li>\n<li><a href=\"#_major_changes\">Major changes</a></li>\n</ul>\n</li>\n<li><a href=\"#_support\">Support</a></li>\n<li><a href=\"#_contributions\">Contributions</a></li>\n<li><a href=\"#_license\">License</a></li>\n</ul>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_features\"><a class=\"anchor\" href=\"#_features\"></a><a class=\"link\" href=\"#_features\">Features</a></h2>\n<div class=\"sectionbody\">\n<div class=\"ulist\">\n<ul>\n<li>\n<p>Deploy a fully-managed control plane</p>\n</li>\n<li>\n<p>Deploy worker nodes in an Auto Scaling Group or using Managed Node Groups</p>\n</li>\n<li>\n<p>Deploy Pods using Fargate instead of managing worker groups</p>\n</li>\n<li>\n<p>Zero-downtime, rolling deployment for updating worker nodes</p>\n</li>\n<li>\n<p>IAM to RBAC mapping</p>\n</li>\n<li>\n<p>Auto scaling and auto healing</p>\n</li>\n<li>\n<p>Fine-grained IAM roles for Pods</p>\n</li>\n<li>\n<p>Deploy Helm securely with automated TLS certificate management</p>\n</li>\n<li>\n<p>Heterogeneous worker groups that use different instance configurations (e.g AMIs, instance types, security groups, etc).</p>\n</li>\n<li>\n<p>ALB ingress controller support</p>\n</li>\n<li>\n<p>VPC tagging</p>\n</li>\n<li>\n<p>External DNS integration with Route 53</p>\n</li>\n</ul>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_learn\"><a class=\"anchor\" href=\"#_learn\"></a><a class=\"link\" href=\"#_learn\">Learn</a></h2>\n<div class=\"sectionbody\">\n<div class=\"admonitionblock note\">\n<table>\n<tr>\n<td class=\"icon\">\n<div class=\"title\">Note</div>\n</td>\n<td class=\"content\">\nThis repo is a part of <a href=\"https://gruntwork.io/infrastructure-as-code-library/\" target=\"_blank\">the Gruntwork Infrastructure as Code\nLibrary</a>, a collection of reusable, battle-tested, production ready infrastructure code. If you’ve never used the Infrastructure as Code Library before, make sure to read <a href=\"https://gruntwork.io/guides/foundations/how-to-use-gruntwork-infrastructure-as-code-library/\" target=\"_blank\">How to use the Gruntwork Infrastructure as Code Library</a>!\n</td>\n</tr>\n</table>\n</div>\n<div class=\"sect2\">\n<h3 id=\"_core_concepts\"><a class=\"anchor\" href=\"#_core_concepts\"></a><a class=\"link\" href=\"#_core_concepts\">Core concepts</a></h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https://gruntwork.io/guides/kubernetes/how-to-deploy-production-grade-kubernetes-cluster-aws/#core_concepts\" target=\"_blank\">Kubernetes and EKS core concepts</a>: learn about Kubernetes architecture (control plane, worker nodes), access control (authentication, authorization), resources (pods, controllers, services, config, secrets), and more.</p>\n</li>\n<li>\n<p><em><a href=\"https://www.manning.com/books/kubernetes-in-action\" target=\"_blank\">Kubernetes in Action</a></em>: the best book we’ve found for getting up and running with Kubernetes.</p>\n</li>\n</ul>\n</div>\n</div>\n<div class=\"sect2\">\n<h3 id=\"_repo_organization\"><a class=\"anchor\" href=\"#_repo_organization\"></a><a class=\"link\" href=\"#_repo_organization\">Repo organization</a></h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/modules\">modules</a>: the main implementation code for this repo, broken down into multiple standalone, orthogonal submodules.</p>\n</li>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/examples\">examples</a>: This folder contains working examples of how to use the submodules.</p>\n</li>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/test\">test</a>: Automated tests for the modules and examples.</p>\n</li>\n</ul>\n</div>\n</div>\n<div class=\"sect2\">\n<h3 id=\"_gruntwork_analysis\"><a class=\"anchor\" href=\"#_gruntwork_analysis\"></a><a class=\"link\" href=\"#_gruntwork_analysis\">Gruntwork analysis</a></h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/core-concepts.md\">ECS vs EKS</a>: A detailed comparison of EKS with ECS, two Docker orchestration tools available\non AWS.</p>\n</li>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/modules/eks-cluster-managed-workers/README.md#differences-with-self-managed-workers\">Tradeoffs between Managed Node Groups and Self-Managed ASGs</a>:\nAn overview of the tradeoffs to consider when picking your worker pools.</p>\n</li>\n</ul>\n</div>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_deploy\"><a class=\"anchor\" href=\"#_deploy\"></a><a class=\"link\" href=\"#_deploy\">Deploy</a></h2>\n<div class=\"sectionbody\">\n<div class=\"sect2\">\n<h3 id=\"_pre_requisites_start_here\"><a class=\"anchor\" href=\"#_pre_requisites_start_here\"></a><a class=\"link\" href=\"#_pre_requisites_start_here\">Pre-requisites (start here)</a></h3>\n<div class=\"paragraph\">\n<p>There are a number of pre-requisites that need to be met prior to attempting to deploy this module. See the <a href=\"/repos/v0.63.0/terraform-aws-eks/getting-started.md\">Getting Started</a> document to ensure pre-requisites are met prior to attempting to deploy any of the examples or leveraging the EKS modules directly.</p>\n</div>\n</div>\n<div class=\"sect2\">\n<h3 id=\"_non_production_deployment_quick_start_for_learning\"><a class=\"anchor\" href=\"#_non_production_deployment_quick_start_for_learning\"></a><a class=\"link\" href=\"#_non_production_deployment_quick_start_for_learning\">Non-production deployment (quick start for learning)</a></h3>\n<div class=\"paragraph\">\n<p>If you just want to try this repo out for experimenting and learning, check out the following resources:</p>\n</div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/examples\">examples folder</a>: The <code>examples</code> folder contains sample code optimized for learning, experimenting, and testing (but not production usage).</p>\n</li>\n</ul>\n</div>\n</div>\n<div class=\"sect2\">\n<h3 id=\"_production_deployment\"><a class=\"anchor\" href=\"#_production_deployment\"></a><a class=\"link\" href=\"#_production_deployment\">Production deployment</a></h3>\n<div class=\"paragraph\">\n<p>If you want to deploy this repo in production, check out the following resources:</p>\n</div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"https://gruntwork.io/guides/kubernetes/how-to-deploy-production-grade-kubernetes-cluster-aws/#deployment_walkthrough\" target=\"_blank\">How to deploy a production-grade Kubernetes cluster on AWS</a>: A step-by-step guide for deploying a production-grade EKS cluster on AWS using the code in this repo.</p>\n</li>\n</ul>\n</div>\n<div class=\"paragraph\">\n<p><strong>EKS Cluster</strong>: Production-ready example code from the Reference Architecture:</p>\n</div>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"/repos/terraform-aws-service-catalog/examples/for-production/infrastructure-live/prod/us-west-2/prod/services/eks-cluster/terragrunt.hcl\">app account configuration</a></p>\n</li>\n<li>\n<p><a href=\"/repos/terraform-aws-service-catalog/examples/for-production/infrastructure-live/_envcommon/services/eks-cluster.hcl\">base configuration</a></p>\n</li>\n</ul>\n</div>\n</div>\n<div class=\"sect2\">\n<h3 id=\"_gruntwork_gitops_gruntops_deployment\"><a class=\"anchor\" href=\"#_gruntwork_gitops_gruntops_deployment\"></a><a class=\"link\" href=\"#_gruntwork_gitops_gruntops_deployment\">Gruntwork GitOps \"GruntOps\" Deployment</a></h3>\n<div class=\"paragraph\">\n<p>Gruntwork GitOps \"GruntOps\" is currently in development! See the <a href=\"/repos/v0.63.0/terraform-aws-eks/gruntwork-gitops.md\">Gruntwork GitOps</a> document for more info.</p>\n</div>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_manage\"><a class=\"anchor\" href=\"#_manage\"></a><a class=\"link\" href=\"#_manage\">Manage</a></h2>\n<div class=\"sectionbody\">\n<div class=\"sect2\">\n<h3 id=\"_day_to_day_operations\"><a class=\"anchor\" href=\"#_day_to_day_operations\"></a><a class=\"link\" href=\"#_day_to_day_operations\">Day-to-day operations</a></h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/core-concepts.md#how-to-authenticate-kubectl\">How to authenticate kubectl to EKS</a></p>\n</li>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/modules/eks-cluster-control-plane/README.md#control-plane-logging\">How to enable Control Plane logging</a></p>\n</li>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/modules/eks-cluster-control-plane/README.md#how-do-i-deploy-pods-on-fargate\">How to deploy Pods on Fargate</a></p>\n</li>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/modules/eks-cluster-workers/README.md#how-do-i-enable-cluster-auto-scaling\">How to enable worker node autoscaling</a></p>\n</li>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/modules/eks-cluster-control-plane/README.md#how-do-i-associate-iam-roles-to-pods\">How to associate IAM roles to the Pods?</a></p>\n</li>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/modules/eks-k8s-role-mapping/README.md#restricting-specific-actions\">How to restrict users to specific actions on the EKS cluster</a></p>\n</li>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/modules/eks-k8s-role-mapping/README.md#restricting-by-namespace\">How to restrict users to specific namespaces on the EKS cluster</a></p>\n</li>\n</ul>\n</div>\n</div>\n<div class=\"sect2\">\n<h3 id=\"_major_changes\"><a class=\"anchor\" href=\"#_major_changes\"></a><a class=\"link\" href=\"#_major_changes\">Major changes</a></h3>\n<div class=\"ulist\">\n<ul>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/modules/eks-cluster-control-plane/README.md#how-do-i-upgrade-the-kubernetes-version-of-the-cluster\">How to upgrade Kubernetes versions</a></p>\n</li>\n<li>\n<p><a href=\"/repos/v0.63.0/terraform-aws-eks/modules/eks-cluster-workers/README.md#how-do-i-roll-out-an-update-to-the-instances\">How to upgrade worker nodes</a></p>\n</li>\n</ul>\n</div>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_support\"><a class=\"anchor\" href=\"#_support\"></a><a class=\"link\" href=\"#_support\">Support</a></h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>If you need help with this repo or anything else related to infrastructure or DevOps, Gruntwork offers <a href=\"https://gruntwork.io/support/\" target=\"_blank\">Commercial Support</a> via Slack, email, and phone/video. If you’re already a Gruntwork customer, hop on Slack and ask away! If not, <a href=\"https://www.gruntwork.io/pricing/\" target=\"_blank\">subscribe now</a>. If you’re not sure, feel free to email us at <a href=\"mailto:support@gruntwork.io\" target=\"_blank\">support@gruntwork.io</a>.</p>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_contributions\"><a class=\"anchor\" href=\"#_contributions\"></a><a class=\"link\" href=\"#_contributions\">Contributions</a></h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Contributions to this repo are very welcome and appreciated! If you find a bug or want to add a new feature or even contribute an entirely new module, we are very happy to accept pull requests, provide feedback, and run your changes through our automated test suite.</p>\n</div>\n<div class=\"paragraph\">\n<p>Please see <a href=\"https://docs.gruntwork.io/guides/working-with-code/contributing\" target=\"_blank\">Contributing to the Gruntwork Infrastructure as Code Library</a> for instructions.</p>\n</div>\n</div>\n</div>\n<div class=\"sect1\">\n<h2 id=\"_license\"><a class=\"anchor\" href=\"#_license\"></a><a class=\"link\" href=\"#_license\">License</a></h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Please see <a href=\"/repos/v0.63.0/terraform-aws-eks/LICENSE.md\">LICENSE.md</a> for details on how the code in this repo is licensed.</p>\n</div>\n</div>\n</div>","repoName":"terraform-aws-eks","repoRef":"v0.63.0","serviceDescriptor":{"serviceName":"EC2 Kubernetes Service (EKS) Cluster","serviceRepoName":"terraform-aws-eks","serviceRepoOrg":"gruntwork-io","cloudProviders":["aws"],"description":"Deploy a Kubernetes cluster on top of Amazon EC2 Kubernetes Service (EKS).","imageUrl":"eks.png","licenseType":"subscriber","technologies":["Terraform","Python","Bash"],"compliance":[],"tags":[""]},"serviceCategoryName":"Docker orchestration","fileName":"README.adoc","filePath":"","title":"Repo Browser: EC2 Kubernetes Service (EKS) Cluster","description":"Browse the repos in the Gruntwork Infrastructure as Code Library."}