/ramen

Terraform code to create an AWS EKS cluster.

Primary LanguageHCLMIT LicenseMIT

Ramen EKS

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

Requirements

To use this code the following is required:

  1. admin access to an AWS account;
  2. an S3 bucket for terraform state; and
  3. an AWS ACM certificate/key pair.

Contents

This project will create the following:

  1. an AWS VPC with public and private subnets;
  2. an AWS EKS cluster with managed node groups; and
  3. several services for cluster management, including:
    1. a Metric Server;
    2. a Cluster Autoscaler;
    3. a Kubernetes Dashboard behind an AWS application loadbalancer (no proxy required); and
    4. Kubernetes namespaces with optional Fargate profiles.

Structure

The project has 2 top level directories:

  1. deploy for Terraform root modules where terraform commands are executed; and
  2. modules for child modules where resources are defined.

Documentation can be found in these directories and their sub-directores.