Open variables.tf, set the environment variables specified at the top of the file, and fill in any other variables
that don't have a default.
Run terraform init.
Run terraform apply.
Known instabilities
EKS relies on the amazon-vpc-cni-k8s plugin to allocate IP addresses to
the pods in the Kubernetes cluster. This plugin works by allocating secondary ENI devices to the underlying worker
instances. Depending on timing, this plugin could interfere with destroying the cluster in this example. Specifically,
terraform could shutdown the instances before the VPC CNI pod had a chance to cull the ENI devices. These devices are
managed outside of terraform, so if they linger, it could interfere with destroying the VPC.
To workaround this limitation, you have to go into the console and delete the ENI associated with the VPC. Then,
retry the destroy call.
Questions? Ask away.
We're here to talk about our services, answer any questions, give advice, or just to chat.
{"treedata":{"name":"root","toggled":true,"children":[{"name":".circleci","children":[{"name":"config.yml","path":".circleci/config.yml","sha":"47ff1363dbff5fb54579e607a67b63998ea71164"},{"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":"b03bd8e4165d4bdce2190fe8f66df9e49fa36692"},{"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":"b2a13bb490471e6a5ea9b3600971317b4d18790b"},{"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":"ba512d8deb56705335dbbae288d2dfb0a0f906c3"},{"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":"151f139b5b9cef2ccf6d84c9a703b9ffdfe9939b"}]},{"name":"eks-cluster-with-iam-role-mappings","children":[{"name":"README.md","path":"examples/eks-cluster-with-iam-role-mappings/README.md","sha":"7491b8b28b06af093a3d21a2b005b550c79275c9","toggled":true},{"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":"19d7a3212fba19c23a497d24b2ec3ee01859af60"},{"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":"5e79469125a6c580dced561670d1992bb0f6b1b9"}],"toggled":true},{"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":"d67637e43022857caa2857ca7aad2f2117485f7e"},{"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":"a7594d79ac791f76cc388c44cea0e0021f3f01d0"}]},{"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":"043435c1eb4723a1a03f28b6742361dfde4d8bff"},{"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":"9fcd29b181709bddc5448f428d527df17b489cc8"}]},{"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":"bd25ed52197b1f45729907d234f2ffde8517f2f5"},{"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":"f96b11ab1018b6a54623079e54c0983aec09e6ed"}]},{"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":"974857bd546695ff8a554633b20c123d3e1f09df"}]}]},{"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":"6655daddf19122ef73126405312c5641b0b4bc98"},{"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":"fc49d51d55d626e77a9a86dd2c1a60516338ca37"}]},{"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":"0a87a14131bb5e468b19ca51ecde4adb7e6eb199"},{"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":"4ac67c3e216cbce96c98221814a7dbd774e47780"}]},{"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":"689ba0e729a593108f8793d4e4edfea0f514c494"},{"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":"0b3bcb9cff3b23f3904bca6202ee12d08c4646a0"}]},{"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":"3ea79cac3a55f92cdd858e075441e577a52a7428"},{"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":"af28562dd95d3cb6eaaef9801addec672d28f626"}]}],"toggled":true},{"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":"e68c70571dd4161d4d0f174ba9036ecd33258a8e"},{"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":"37cdecdfb477fc1d6fec4f8cc22c056c149b28aa"},{"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":"d933d5169a29db3939899cc8b8a9f479509b5050"},{"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":"101b482baa2767d2d4e3a2fc8dcf811a1bf827b5"},{"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":"7d59b9f0aac987c5dbcb50fa2f3f3d31b83e00a5"},{"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":"b9b245c3e2e65cdaf313bea605e1c843a17ccda9"},{"name":"main.tf","path":"modules/eks-cluster-control-plane/main.tf","sha":"7d82a7d3f53fffe4f5616b95ece18d366ae6eff2"},{"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":"6fcd1973020eea3c510e2ea5ac8468f439e29317"}]},{"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":"2ad17d88b5e47407f45b83988814a8d3686da8d2"},{"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":"07fd07d7eb4cc99b7e0df4eb86212fad26156818"},{"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":"fd6705b72e6a6f8a40128881420fb815afd5f603"},{"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":"be47bd5ac0b110ab1a09867be597d4d37700b76c"},{"name":"outputs.tf","path":"modules/eks-container-logs/outputs.tf","sha":"7061ed458fec528c8b8b587291f0eccb4324fb72"},{"name":"variables.tf","path":"modules/eks-container-logs/variables.tf","sha":"4ecff26c170043fc195c3ce2711498a1666a813d"}]},{"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":"efff172006bbabae03f85ed09bdf7f22b24b0973"},{"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":"89b00d853fdb398eaa4ab51a3dedc36a23c3a3c1"},{"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-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":"0d13a8a813c95d2cacf449dd0d842bcca5f5bc17"},{"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":"f3db332330990dff2eb884b6a6d1c43c364b1ec6"},{"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":"9a41e82cdcdee4e2c9e1f20e84065cb189fd7215"}]},{"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":"a7a1416e7a222e1975a55cb53ccf1220c393428e"},{"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":"91e400ce1ba733cfd85f2d99efd7048c948db4d8"},{"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":"d83cea431a5ae2c8aa77d33f044b65e209c89375"},{"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":"739f781fc1165e2d3895290dfa1111f3e44a7387"},{"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":"5c696a015d9e8b44e5687b758c61ac49f3a4b7ef"}]},{"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":"20f36046e466a4092b4d0561bb01f2f7f68385c8"},{"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":"c5708ec572318386a734dfa1e247a0e9e69de2e9"},{"name":"eks_cluster_with_auth_merger_test.go","path":"test/eks_cluster_with_auth_merger_test.go","sha":"8c8093f127f0b619c5f39381325631cf9567163e"},{"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":"803f8d4d1ee1ae3d97ae3d4b8fdbffa09cb9826c"},{"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":"<h1 class=\"preview__body--title\" id=\"eks-cluster-with-self-managed-workers-and-additional-iam-roles\">EKS Cluster with Self Managed Workers and Additional IAM Roles</h1><div class=\"preview__body--border\"></div><p>This folder shows an example of how to use the EKS modules to:</p>\n<ul>\n<li>deploy an EKS cluster</li>\n<li>deploy a self managed worker pool</li>\n<li>setup <code>kubectl</code> to deploy applications on it using the Kubernetes interface</li>\n<li>create a sample IAM role and bind a Kubernetes RBAC group to it</li>\n</ul>\n<p>After this example, your <code>kubectl</code> binary should be configured to access the EKS cluster. See <a href=\"/repos/v0.62.0/terraform-aws-eks/core-concepts.md#how-do-i-authenticate-kubectl-to-the-eks-cluster\" class=\"preview__body--description--blue\">How do I authenticate\nkubectl to the EKS cluster?</a> for more information.</p>\n<h2 class=\"preview__body--subtitle\" id=\"how-do-you-run-this-example\">How do you run this example?</h2>\n<p>To run this example, apply the Terraform templates:</p>\n<ol>\n<li>Install <a href=\"/repos/kubergrunt\" class=\"preview__body--description--blue\">kubergrunt</a>, latest version.</li>\n<li>Install <a href=\"https://www.terraform.io/\" class=\"preview__body--description--blue\" target=\"_blank\">Terraform</a>, minimum version <code>1.0.0</code>.</li>\n<li>Open <code>variables.tf</code>, set the environment variables specified at the top of the file, and fill in any other variables\nthat don't have a default.</li>\n<li>Run <code>terraform init</code>.</li>\n<li>Run <code>terraform apply</code>.</li>\n</ol>\n<h2 class=\"preview__body--subtitle\" id=\"known-instabilities\">Known instabilities</h2>\n<ul>\n<li>EKS relies on the <a href=\"https://github.com/aws/amazon-vpc-cni-k8s\" class=\"preview__body--description--blue\" target=\"_blank\"><code>amazon-vpc-cni-k8s</code></a> plugin to allocate IP addresses to\nthe pods in the Kubernetes cluster. This plugin works by allocating secondary ENI devices to the underlying worker\ninstances. Depending on timing, this plugin could interfere with destroying the cluster in this example. Specifically,\nterraform could shutdown the instances before the VPC CNI pod had a chance to cull the ENI devices. These devices are\nmanaged outside of terraform, so if they linger, it could interfere with destroying the VPC.\n<ul>\n<li>To workaround this limitation, you have to go into the console and delete the ENI associated with the VPC. Then,\nretry the destroy call.</li>\n</ul>\n</li>\n</ul>\n","repoName":"terraform-aws-eks","repoRef":"v0.59.2","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.md","filePath":"/examples/eks-cluster-with-iam-role-mappings/README.md","title":"Repo Browser: EC2 Kubernetes Service (EKS) Cluster","description":"Browse the repos in the Gruntwork Infrastructure as Code Library."}