- Boil water, add seasoning packets.
- Drop in noodles.
- Wait 3 minutes. Enjoy.
Like instant ramen, Terraform is indispensable for
developers. This project contains the Terraform code to deploy an
AWS EKS cluster. Instead of shuffling through
many aws
, kubectl
, and helm
commands from a run book or clicking through
the AWS console, a fully functioning cluster with load balancing and
autoscaling can be brought up and destroyed reliably with just a few
terraform
commands.
The code found here is based upon the Amazon EKS User Guide.
To use this code the following is required:
- admin access to an AWS account;
- an S3 bucket for terraform state; and
- an AWS ACM certificate/key pair.
This project will create the following:
- an AWS VPC with public and private subnets;
- an AWS EKS cluster with managed node groups; and
- several services for cluster management, including:
- a Metric Server;
- a Cluster Autoscaler;
- a Kubernetes Dashboard behind an AWS application loadbalancer (no proxy required); and
- Kubernetes namespaces with optional Fargate profiles.
The project has 2 top level directories:
deploy
for Terraform root modules whereterraform
commands are executed; andmodules
for child modules where resources are defined.
Documentation can be found in these directories and their sub-directores.