Skip to content

Latest commit

 

History

History
83 lines (66 loc) · 3.95 KB

README.md

File metadata and controls

83 lines (66 loc) · 3.95 KB

Terraform AWS EKS

repo logo
This repository contains Terraform configurations used for my studies to automate the deployment of an Amazon EKS cluster.
It sets up a VPC with subnets, route tables, and necessary gateways, provisions the EKS cluster with worker nodes, configures OIDC for authentication, and integrates the AWS Load Balancer Controller for managing Kubernetes ingress resources. Helm is utilized for package management within the Kubernetes environment.

High-Level Architecture

architecture

Steps

  • Networking (VPC, Subnets, Route Tables, IGW (Internet Gateway), NGW (NAT Gateway), Elastic IP)
  • Cluster
  • Nodes
  • eksctl
  • OIDC - Open ID Connect
  • AWS Load Balancer Controller (to create the Ingresses)
  • Helm

Docs and Resources

Pre-Commit Hook

Current Setup:

  • Terraform Validate
  • Terraform Fmt -recursive
  • Terraform Docs

Documentation Below Using Terraform Docs

Requirements

Name Version
aws 5.82.2
helm 2.17.0
kubernetes 2.35.1

Providers

Name Version
aws 5.82.2

Modules

Name Source Version
eks_aws_load_balancer_controller ./modules/aws-load-balancer-controller n/a
eks_cluster ./modules/cluster n/a
eks_managed_node_group ./modules/managed-node-group n/a
eks_network ./modules/network n/a

Resources

Name Type
aws_s3_bucket.bucket resource
aws_s3_bucket_versioning.versioning resource

Inputs

Name Description Type Default Required
cidr_block Network CIDR Block for VPC string n/a yes
project_name Project Name to be used to name Resources, as a tag string n/a yes
region AWS Region to create Resources string n/a yes
tags A map of tags to add to all AWS Resources map(any) n/a yes

Outputs

Name Description
ca n/a
eks_vpc_config n/a
endpoint n/a
oidc n/a
oidc_id n/a