A comprehensive end-to-end CI/CD pipeline leveraging Terraform, Ansible, Jenkins, SonarQube, JFrog, Docker, EKS, Prometheus, and Grafana.
Below is a step-by-step implementation breakdown of the complete DevOps CI/CD process.
π§ Step 1: Infrastructure Provisioning (Terraform)
- Provisioned VPC, Security Groups, Ansible Controller, Jenkins Master, and Agent Instances using Terraform.
π Step Details
π Step 2: SSH Configuration
- Set up password-less authentication between Ansible Controller and Agent nodes.
π Step Details
βοΈ Step 3: Jenkins Setup (Ansible)
- Configured Jenkins Master and Agent nodes.
- Agent configured as Maven Build Server.
π Step Details
π Step 4: Jenkins Master-Agent Integration
- Connected Jenkins Master to Agent with credentials.
π Step Details
π Step 5: GitHub Integration
- Added GitHub credentials.
- Created Multibranch Pipeline Job.
π Step Details
π¨ Step 6: Webhook Trigger Setup
- Configured GitHub webhook trigger using Multibranch Scan Webhook Trigger Plugin.
π Step Details
π§ͺ Step 7: SonarQube Integration
- Generated access token in SonarCloud.
- Installed SonarQube scanner plugin.
- Added SonarQube server and scanner to Jenkins.
- Configured
sonar-project.properties. - Added code quality, unit test, and build stages in
Jenkinsfile.
π Step-by-step Setup
π¦ Step 8: JFrog Artifactory Integration
- Configured JFrog credentials.
- Installed Artifactory plugin in Jenkins.
π Details
π³ Step 9: Docker Image & Push to JFrog
- Built Docker image from
.jar. - Pushed to JFrog Artifactory using Docker Pipeline Plugin.
- Added Docker Build & Publish stage to Jenkinsfile.
π Details
βΈοΈ Step 10: EKS Cluster Setup
- Created EKS cluster via Terraform.
- Installed
kubectland AWS CLI in Jenkins slave. - Configured Kube credentials using:
aws eks update-kubeconfig --region <region_name> --name <cluster_name>
π Details
π Step 11: Kubernetes Deployment
- Pulled Docker image using Kubernetes secrets.
- Deployed it to EKS cluster using Deployment and Service resources.
- Exposed via LoadBalancer.
π Details
π Step 12: Monitoring (Prometheus & Grafana)
- Added Prometheus Helm repo.
- Enabled monitoring in EKS cluster.
- Changed Prometheus and Grafana services to
LoadBalancerfor browser access.
π Details
This project is maintained by Harshhaa π
- π GitHub: @NotHarshhaa
- π Blog: ProDevOpsGuy
- π¬ Telegram: Join Community
- π LinkedIn: Harshhaa Vardhan Reddy
If you found this helpful:
- β Star this repo
- π Share it with your peers
- β Follow for more DevOps content

