🎯 Objective
Deploy a full 3-tier application (frontend, backend, database) on an Amazon EKS cluster using:
Terraform (for infrastructure provisioning)
Public Terraform modules (for EKS & networking)
ArgoCD (for GitOps-based application delivery)
GitHub repository as the single source of truth
🏗 Architecture Overview
The project architecture includes:
✅ VPC & networking components
✅ Amazon EKS cluster & worker nodes
✅ Kubernetes namespace for the application
✅ Frontend, backend & database deployments
✅ Persistent storage using Amazon EBS
✅ ArgoCD for continuous reconciliation
✅ LoadBalancer service for external access
All Kubernetes manifests are stored in GitHub. ArgoCD continuously monitors the repository and ensures the cluster state matches the desired state defined in Git.
🔄 GitOps & Drift Detection in Action
One of the most powerful demonstrations in this session was drift detection.
Example scenario:
Manually change the number of replicas in Kubernetes.
ArgoCD immediately detects the deviation.
It automatically reverts the cluster back to the defined state in Git.
This proves a critical GitOps principle:
The Git repository is the source of truth.
Any unauthorized change is automatically corrected.
This eliminates configuration drift and improves production reliability.
🛠 Terraform Providers Used
Multiple Terraform providers were leveraged:
AWS provider – For VPC, EKS, nodes, IAM roles, EBS
Kubernetes provider – For deploying K8s resources
kubectl provider – For applying manifests like ArgoCD
Using public Terraform modules accelerated infrastructure setup while demonstrating how reusable modules simplify production deployments.
🚀 Deployment Workflow
terraform init
terraform plan
terraform apply
EKS cluster provisioning
ArgoCD installation via kubectl
Application deployment via GitHub repo
Automatic synchronization & monitoring
Persistent storage was configured using Amazon EBS volumes, ensuring stateful components like the database retain data across pod restarts.
🔐 Best Practice Discussion
Although public Terraform modules were used for speed, an important discussion highlighted:
Public modules are convenient.
Enterprises should carefully review them.
Security, compliance, and internal standards often require custom modules.
This balance between speed and control is critical in real-world environments.
📌 Key Takeaways
✔ Infrastructure and applications can be fully automated end-to-end
✔ GitOps eliminates manual deployment risks
✔ ArgoCD provides automatic drift correction
✔ EKS + Terraform enables scalable Kubernetes infrastructure
✔ Persistent storage is essential for stateful applications
✔ Public modules accelerate setup but must be reviewed in enterprise setups
Top comments (0)