Welcome to the Terraform project repository for setting up a fully functional, private AWS EKS cluster integrated with essential tools like ArgoCD, Prometheus, and Grafana. This repository provides everything you need to deploy and manage a secure and scalable Kubernetes environment on AWS.
This project automates the provisioning of a private EKS cluster on AWS, along with the deployment of key Kubernetes management and monitoring tools using Terraform and Helm. The infrastructure is designed to be robust, allowing you to easily manage, scale, and monitor your Kubernetes resources.
- Private EKS Cluster: A secure EKS setup running within a private VPC.
- Infrastructure as Code: Automated deployment using Terraform, ensuring repeatability and scalability.
- Helm Integration: Deployment of ArgoCD, Prometheus, and Grafana using Helm charts.
- Modular Design: The project is structured into reusable modules for easier management and customization.
Before you begin, ensure you have the following installed:
- Terraform: Infrastructure as Code tool to automate deployment.
- AWS CLI: To interact with your AWS account.
- Kubectl: Kubernetes command-line tool.
- Helm: Kubernetes package manager.
- Clone the Repository:
git clone https://github.com/your-repo/eks-terraform-project.git cd eks-terraform-project
- Deploy VPC and EC2: Run the following commands to deploy the VPC and an EC2 instance:
terraform init terraform validate terraform plan -var-file=variables.tfvars terraform apply -auto-approve -var-file=variables.tfvars
- Deploy EKS Cluster and Tools: After setting up the VPC and EC2, run the following commands to deploy the EKS cluster and tools:
terraform init terraform validate terraform plan -var-file=variables.tfvars terraform apply -auto-approve -var-file=variables.tfvars
- Access Deployed Resources: Use kubectl to interact with your EKS cluster and the deployed tools (ArgoCD, Prometheus, Grafana, etc.).
For a complete step-by-step guide, including screenshots and detailed explanations, please refer to the blog post. This post covers all the necessary steps to successfully implement this project.
We welcome contributions! If you have ideas for enhancements or find any issues, please open a pull request or file an issue.
This project is licensed under the MIT License.
If you have any questions, suggestions, or feedback, please feel free to join the Discord Server.