/EKS-ArgoCD-AWS-LB-Controller-Terraform

This repository will contain terraform code to automate the eks cluster and cluster's resources such as argocd, prometheus, grafana and required service accounts

Primary LanguageHCLMIT LicenseMIT

🚀 AWS EKS Cluster with ArgoCD, Prometheus, and More - Terraform Project

LinkedIn Discord Medium GitHub Serverless AWS Terraform

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.

🌟 Overview

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.

Key Features:

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

Architecture Diagram

Architecture Diagram

🚀 Getting Started

Prerequisites

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.

Quickstart

  1. Clone the Repository:
    git clone https://github.com/your-repo/eks-terraform-project.git
    cd eks-terraform-project
    
  2. 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
    
  3. 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
    
  4. Access Deployed Resources: Use kubectl to interact with your EKS cluster and the deployed tools (ArgoCD, Prometheus, Grafana, etc.).

📖 Detailed Guide

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.

Contributing

We welcome contributions! If you have ideas for enhancements or find any issues, please open a pull request or file an issue.

License

This project is licensed under the MIT License.

Contact

If you have any questions, suggestions, or feedback, please feel free to join the Discord Server.