This project delivers a GitOps enabled CI/CD pipeline on AWS using Infrastructure as Code (IaC) with Terraform.
Initial deep-dive into ArgoCD's capabilities for automated synchronization of cluster state with Git repositories.
Understanding the declarative approach to infrastructure and application deployment using Git as the single source of truth.
Using Terraform to create and manage AWS resources for the CI/CD pipeline, providing a solid foundation for automation.
This project delivers a GitOps enabled CI/CD pipeline on AWS using Infrastructure as Code (IaC) with Terraform. CodePipeline and CodeBuild automate image creation and publishing to ECR, while ArgoCD continuously syncs changes from the GitOps repository into an EKS cluster. The deployed Spring Boot REST API connects to an RDS MySQL database and is exposed externally via a load balancer — all infrastructure (VPC, networking, ECR, EKS, RDS, and CI/CD services) provisioned declaratively through Terraform.
Developer pushes changes to the dev branch, triggering the Jenkins Dev Pipeline via GitHub Webhook.
The AWS CodePipeline automates the build process, including Docker image creation and ECR push.
AWS CodeBuild builds the Docker image and pushes it to Amazon Elastic Container Registry (ECR). Commits the change to the GitOps repository.
CodeBuild updates the image tag in the GitOps repository to trigger ArgoCD sync.
ArgoCD detects the change in the GitOps repo and synchronizes the Dev environment cluster state.
Application access to the Dev environment Spring Boot REST API on EKS.
Amazon Elastic Kubernetes Service (EKS) is a managed Kubernetes service that makes it easy to run Kubernetes on AWS. It handles the provisioning, scaling, and management of the Kubernetes control plane, as well as the worker nodes.