An open API service indexing awesome lists of open source software.

https://github.com/buguno/terraform

Terraform modules to provision a production-ready Amazon EKS cluster on AWS, covering networking, control plane, managed node groups, and AWS Load Balancer Controller.
https://github.com/buguno/terraform

aws kubernetes-cluster terraform

Last synced: 27 days ago
JSON representation

Terraform modules to provision a production-ready Amazon EKS cluster on AWS, covering networking, control plane, managed node groups, and AWS Load Balancer Controller.

Awesome Lists containing this project

README

          

# Terraform

This project provisions a production-ready **Amazon EKS** cluster on AWS using Terraform. It is structured into reusable modules that cover the full infrastructure stack, including networking, the EKS control plane, managed node groups, and the AWS Load Balancer Controller.

## Architecture

```mermaid
graph TB
Internet(["Internet"])

subgraph region["AWS Region"]
IGW["Internet Gateway"]
ALB["Application Load Balancer"]

subgraph vpc["VPC"]
subgraph az_1a["Availability Zone — us-east-1a"]
subgraph pub_1a["Public Subnet"]
NGW_1A["NAT Gateway"]
end
subgraph priv_1a["Private Subnet"]
NODE_1A["EC2 Worker Node"]
end
end

subgraph az_1b["Availability Zone — us-east-1b"]
subgraph pub_1b["Public Subnet"]
NGW_1B["NAT Gateway"]
end
subgraph priv_1b["Private Subnet"]
NODE_1B["EC2 Worker Node"]
end
end
end

subgraph eks["Amazon EKS"]
CP["EKS Control Plane"]
LBC["Load Balancer Controller
(IAM Role via IRSA)"]
end
end

Internet -->|"incoming request"| IGW
IGW --> ALB
ALB -->|"routes to pods"| NODE_1A
ALB -->|"routes to pods"| NODE_1B
NODE_1A -->|"outbound traffic"| NGW_1A
NODE_1B -->|"outbound traffic"| NGW_1B
NGW_1A -->|"via IGW"| IGW
NGW_1B -->|"via IGW"| IGW
CP -->|"manages"| NODE_1A
CP -->|"manages"| NODE_1B
LBC -->|"provisions"| ALB
```

## Requirements

| Name | Version |
| ---- | ------- |
| [aws](#requirement\_aws) | 6.45.0 |
| [helm](#requirement\_helm) | 3.1.1 |
| [kubernetes](#requirement\_kubernetes) | 3.1.0 |

## Providers

No providers.

## Modules

| Name | Source | Version |
| ---- | ------ | ------- |
| [eks\_aws\_load\_balancer\_controller](#module\_eks\_aws\_load\_balancer\_controller) | ./modules/aws-load-balancer-controller | n/a |
| [eks\_cluster](#module\_eks\_cluster) | ./modules/cluster | n/a |
| [eks\_managed\_node\_group](#module\_eks\_managed\_node\_group) | ./modules/managed-node-group | n/a |
| [eks\_network](#module\_eks\_network) | ./modules/network | n/a |

## Resources

No resources.

## Inputs

| Name | Description | Type | Default | Required |
| ---- | ----------- | ---- | ------- | :------: |
| [cidr\_block](#input\_cidr\_block) | Networking CIDR block to be used for the VPC | `string` | n/a | yes |
| [project\_name](#input\_project\_name) | Project name to be used in tags | `string` | n/a | yes |
| [region](#input\_region) | AWS region to create the resources | `string` | n/a | yes |
| [tags](#input\_tags) | A map of tags to add to all AWS resources | `map` | n/a | yes |

## Outputs

No outputs.