Skip to content

This repository demonstrates a comprehensive Continuous Integration and Continuous Deployment (CI/CD) setup using popular DevOps tools, emphasizing a GitOps approach. The tech stack includes AWS, Kubernetes (K8s), ArgoCD, Jenkins, SonarQube, Maven, Docker, and DockerHub.

Notifications You must be signed in to change notification settings

kiranbakale/Simplified-CICD-GitOps-with-Jenkins-and-ArgoCD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 

Repository files navigation

Simplified-CICD-GitOps-with-Jenkins-and-ArgoCD

AWS Badge GitHub Badge Docker Badge ArgoCD Badge Jenkins Badge Kubernetes Badge SonarQube Badge Maven Badge

non

Overview

This repository demonstrates a comprehensive Continuous Integration and Continuous Deployment (CI/CD) setup using popular DevOps tools, emphasizing a GitOps approach. The tech stack includes AWS, Kubernetes (K8s), ArgoCD, Jenkins, SonarQube, Maven, Docker, and DockerHub.

Folder Structure

  • /spring-boot-app: Contains the source code of the application.
  • /spring-boot-app-manifests: Includes Kubernetes deployment manifest files.

⚠️ Note on Repository Structure

While GitOps best practices often recommend separate repositories for code and manifests, this project takes a deliberate approach by consolidating both in a single repository. The intention is to simplify the learning experience, especially for beginners, and highlight the integral role of Argo CD in the continuous deployment process.

CI/CD Flow

  1. Developer's Commit: Developers commit their code to the GitHub repository.
  2. Jenkins Pipeline Trigger: A Jenkins CI/CD pipeline is triggered automatically through the GitHub webhook.
  3. Code Analysis with SonarQube: The pipeline performs code analysis using SonarQube to ensure code quality.
  4. Maven Build: Maven is utilized to download required packages, build the application, and generate artifacts.
  5. Docker Containerization: The application is containerized using Docker, and the Docker image is built.
  6. DockerHub Push: The Docker image is pushed to DockerHub, ensuring availability and versioning.
  7. ArgoCD Image Updater: ArgoCD's image updater component updates the image name in the repository.
  8. ArgoCD Deployment: ArgoCD, the continuous delivery tool, orchestrates changes in the Kubernetes deployment based on the new image.

If you are interested in deploying this setup, follow the detailed step-by-step guide in this Medium Article This repository serves as a blueprint for implementing a GitOps-centric CI/CD pipeline, promoting automation and efficiency in the software delivery process. Feel free to customize and extend it based on your specific project needs.

About

This repository demonstrates a comprehensive Continuous Integration and Continuous Deployment (CI/CD) setup using popular DevOps tools, emphasizing a GitOps approach. The tech stack includes AWS, Kubernetes (K8s), ArgoCD, Jenkins, SonarQube, Maven, Docker, and DockerHub.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published