Skip to content

Anju12345hub/Spring-boot-java-web-application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Jenkins Pipeline for Java based application using Maven, SonarQube, Argo CD, Helm and Kubernetes

This project demonstrates a production-style end-to-end CI/CD pipeline for a Spring Boot Java application using Jenkins for CI and ArgoCD for GitOps-based CD on a Kubernetes cluster.

Prerequisites:

Java application code hosted on a Git repository

Jenkins server

Kubernetes Cluster

Install Kubectl

Install docker

SonarQube

Argo CD

The pipeline automates:

  • Build and test

  • Static code analysis

  • Docker image creation & push

  • Kubernetes deployment via ArgoCD

Architecture Overview

Flow:

Untitled Diagram drawio (4)

Tech Stack

  • Language: Java (Spring Boot)

  • CI Tool: Jenkins

  • Code Quality: SonarQube

  • Containerization: Docker

  • Container Registry: Docker Hub

  • CD Tool: ArgoCD (GitOps)

  • Orchestration: Kubernetes (Minikube / EKS)

  • Cloud: AWS EC2

Problem Statement

Manual deployments are slow, error-prone, and difficult to scale. This project automates the entire software delivery lifecycle using DevOps best practices and GitOps, ensuring:

  • Faster deployments

  • Consistent environments

  • Automated quality checks

  • Zero manual kubectl apply

Project Workflow

Step 1: Run Application Manually

The Spring Boot application is built using Maven.

mvn clean package
java -jar target/Spring-boot-web.jar

Docker build and run:

docker build . -t ultimate-cicd:v1
docker run -d -p 8010:8080 ultimate-cicd:v1

Step 2: Continuous Integration with Jenkins

Jenkins pipeline performs:

  • Pull code from GitHub

  • Build with Maven

  • Run SonarQube analysis

  • Build Docker image

  • Push image to Docker Hub

  • Update Kubernetes deployment YAML with new image tag

Jenkins uses:

  • GitHub credentials

  • SonarQube token

  • Docker Hub credentials

  • Image tag is dynamically updated using Jenkins BUILD_NUMBER.

Step 3: Continuous Delivery with ArgoCD (GitOps)

ArgoCD continuously monitors the Git repository for Kubernetes YAML changes.

When Jenkins updates the deployment file:

  • ArgoCD detects the change

  • Automatically syncs to Kubernetes

  • Deploys the new version

No manual deployment required.

Screenshots

992e3f58-64fa-45d6-aaf7-5be3189caa93 76ba0c57-c41c-462c-b1b3-152bec7ccec8

Follow the article for doing this project : Click here

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors