Browse the Repo

file-type-icon.circleci
file-type-icon.github
file-type-icon_docs
file-type-iconexamples
file-type-iconmodules
file-type-iconrfc
file-type-icontest
file-type-icon.gitignore
file-type-icon.pre-commit-config.yaml
file-type-iconCODEOWNERS
file-type-iconCONTRIBUTING.md
file-type-iconGRUNTWORK_PHILOSOPHY.md
file-type-iconLICENSE.md
file-type-iconREADME.adoc
file-type-iconcore-concepts.md
file-type-icongetting-started.md
file-type-icongruntwork-gitops.md
file-type-iconrenovate.json
file-type-iconsetup.cfg
file-type-iconterraform-cloud-enterprise-private-module-...

Browse the Repo

file-type-icon.circleci
file-type-icon.github
file-type-icon_docs
file-type-iconexamples
file-type-iconmodules
file-type-iconrfc
file-type-icontest
file-type-icon.gitignore
file-type-icon.pre-commit-config.yaml
file-type-iconCODEOWNERS
file-type-iconCONTRIBUTING.md
file-type-iconGRUNTWORK_PHILOSOPHY.md
file-type-iconLICENSE.md
file-type-iconREADME.adoc
file-type-iconcore-concepts.md
file-type-icongetting-started.md
file-type-icongruntwork-gitops.md
file-type-iconrenovate.json
file-type-iconsetup.cfg
file-type-iconterraform-cloud-enterprise-private-module-...
EC2 Kubernetes Service (EKS) Cluster

EC2 Kubernetes Service (EKS) Cluster

Deploy a Kubernetes cluster on top of Amazon EC2 Kubernetes Service (EKS).

Code Preview

Preview the Code

mobile file icon

README.adoc

down

Features

  • Deploy a fully-managed control plane

  • Deploy worker nodes in an Auto Scaling Group or using Managed Node Groups

  • Deploy Pods using Fargate instead of managing worker groups

  • Zero-downtime, rolling deployment for updating worker nodes

  • IAM to RBAC mapping

  • Auto scaling and auto healing

  • Fine-grained IAM roles for Pods

  • Deploy Helm securely with automated TLS certificate management

  • Heterogeneous worker groups that use different instance configurations (e.g AMIs, instance types, security groups, etc).

  • ALB ingress controller support

  • VPC tagging

  • External DNS integration with Route 53

Learn

Note
This repo is a part of the Gruntwork Infrastructure as Code Library, 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 How to use the Gruntwork Infrastructure as Code Library!

Core concepts

  • 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.

Repo organization

  • modules: the main implementation code for this repo, broken down into multiple standalone, orthogonal submodules.

  • examples: This folder contains working examples of how to use the submodules.

  • test: Automated tests for the modules and examples.

Gruntwork analysis

Deploy

Pre-requisites (start here)

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.

Non-production deployment (quick start for learning)

If you just want to try this repo out for experimenting and learning, check out the following resources:

  • examples folder: The examples folder contains sample code optimized for learning, experimenting, and testing (but not production usage).

Production deployment

If you want to deploy this repo in production, check out the following resources:

EKS Cluster: Production-ready example code from the Reference Architecture:

Gruntwork GitOps "GruntOps" Deployment

Gruntwork GitOps "GruntOps" is currently in development! See the Gruntwork GitOps document for more info.

Support

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

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.

License

Please see LICENSE.md for details on how the code in this repo is licensed.

Questions? Ask away.

We're here to talk about our services, answer any questions, give advice, or just to chat.

Ready to hand off the Gruntwork?