Advanced CI/CD Pipeline with DevOps Tools
mvn -q -DskipTests=false testOverview
Section titled “Overview”Pipeline lab with Jenkins, Kubernetes manifests, and security tooling.
What You Will Build
Section titled “What You Will Build”Architecture Diagram
Section titled “Architecture Diagram”Prerequisites
Section titled “Prerequisites”- Install or review: Java, Maven, Docker, Kubernetes, SonarQube, AWS, Jenkins.
- Use your own cloud account credentials and keep them out of commits.
- This project expects cloud resources, so verify budget alerts and cleanup first.
- Open the safety guide before running commands that create infrastructure.
Credentials And Cost Warning
Section titled “Credentials And Cost Warning”Cost risk is medium. Cloud target: AWS. Cloud credentials needed: Yes. Always use your own account, never commit secrets, and confirm cleanup before creating paid infrastructure.
Step-By-Step Lab
Section titled “Step-By-Step Lab”Use this flow before you run commands:
- Read the cost and credential warning above.
- Review the validation, troubleshooting, cleanup, and portfolio proof sections below.
- Follow the original project guide preserved near the bottom of this page.
- Return to the validation and cleanup checks before you capture portfolio evidence.
Validation Checks
Section titled “Validation Checks”Run the project validation command before and after meaningful changes:
mvn -q -DskipTests=false testTroubleshooting
Section titled “Troubleshooting”- Run
mvn -q -DskipTests=false testfirst so local tooling issues are visible early. - If a command fails, check tool versions, working directory, and required environment variables.
- For cloud failures, confirm account identity, region, quotas, and least-privilege IAM.
- For pipeline failures, check repository secrets, runner permissions, and pinned action versions.
Cleanup
Section titled “Cleanup”No dedicated cleanup command was detected in the project README. Treat this as a warning: before provisioning anything, write down the exact delete, destroy, or rollback steps for your environment.
Portfolio Proof
Section titled “Portfolio Proof”- Validation command output:
mvn -q -DskipTests=false test - Screenshot or terminal proof: Passing pipeline run plus scan/deploy evidence
- Notes explaining what changed, what failed, and how you fixed it
- Cleanup evidence, especially for cloud or Kubernetes resources
Original Project Guide
Section titled “Original Project Guide”The original README content is preserved here for lab-specific commands and context. Headings are intentionally demoted so the page outline stays focused on the standard lab flow.
These are the steps I followed in the implementation of the entire CI/CD Pipeline.
Section titled “These are the steps I followed in the implementation of the entire CI/CD Pipeline.”🛡️ 2026 DevSecOps Enhancements (What You Will Learn)
Section titled “🛡️ 2026 DevSecOps Enhancements (What You Will Learn)”This repository has been upgraded from a standard CI/CD deployment into a modern DevSecOps pipeline. When reviewing the Dockerfile and Jenkinsfile integrations, note the following 2026 security practices:
- Unprivileged Container Execution: We explicitly block the Java microservice from running as a highly-privileged
rootuser. Instead, the Dockerfile builds an isolatedappusergroup on a minimal Alpine Linux distribution to run the JAR file. - Container Immutable Deployments: We avoid overwriting the
latesttag in our JFrog repository. Each successfully built artifact receives a unique semantic tag, ensuring Kubernetes deployments are rolling and easily rollback-able.
-
Configured SSH keys for password less authentication between Ansible Controller and Agent nodes.
-
Added GitHub credentials to the Jenkins Master and created Multibranch Pipeline job.
-
SonarQube:
- Generated an access token in SonarCloud and added SonarQube server credentials in Jenkins Master.
- Installed Sonarqube scanner plugin.
- Added Sonarqube server to the Jenkins Master in System section.
- Added Sonarqube scanner to the Jenkins Master in Tools section.
- Configured an organization and project in SonarCloud and wrote a sonar-project. properties file.
- Added sonarqube, unit tests and build stages in the Jenkinsfile.
-
EKS:
- Provisioned the EKS cluster with Terraform.
- Installed kubectl in Jenkins Slave.
- Installed AWS CLI v2 in Jenkins Slave to connect with AWS account.
- Downloaded Kubernetes credentials and cluster configuration from the cluster using the command
aws eks update-kubeconfig --region <region_name> --name <cluster_name>
-
- Note: Changed the default service type of Prometheus and Grafana services from ClusterIP to LoadBalancer to access them from the browser.
Hit the Star! ⭐
Section titled “Hit the Star! ⭐”If you are planning to use this repo for learning, please hit the star. Thanks!
Source Files On GitHub
Section titled “Source Files On GitHub”The full learning flow stays on this page. Open GitHub only when a step asks you to inspect code, fork the lab, or download source assets.