This repository demonstrates Terraform configurations for deploying a production-ready Amazon EKS cluster with essential add-ons and monitoring capabilities.
- EKS cluster (v1.30) with managed node groups
- Karpenter for auto-scaling
- Monitoring stack:
- Prometheus
- Grafana
- AlertManager
- Essential add-ons:
- AWS Load Balancer Controller
- External DNS
- Cert Manager
- AWS EBS CSI Driver
- Metrics Server
- Ingress NGINX
- ArgoCD
- Terraform >= 1.3
- AWS CLI configured with appropriate credentials
- kubectl
-
Clone this repository
-
Initialize Terraform:
terraform init
-
Review and apply the Terraform configuration:
terraform plan -out planfile terraform apply planfile
-
Configure kubectl to connect to your cluster (the command will be provided in the Terraform output):
aws eks --region <region> update-kubeconfig --name <cluster-name>
- OIDC provider enabled for IAM roles for service accounts
- Security groups automatically managed
- Pod security standards enforced
- Secure communication with private endpoints
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.