{"id":15083667,"url":"https://github.com/mdazfar2/Deployed-on-k8s-with-GitOps","last_synced_at":"2025-10-04T10:31:59.605Z","repository":{"id":239793324,"uuid":"800749467","full_name":"mdazfar2/maven-jenkins-ArgoCD","owner":"mdazfar2","description":"This is a simple Spring Boot-based Java app that can be built using Maven. This application is deployed onto Kubernetes using GitOps ArgoCD.","archived":false,"fork":false,"pushed_at":"2024-09-10T19:27:42.000Z","size":207,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-23T07:09:54.174Z","etag":null,"topics":["argocd","cicd","dockerfile","jenkins","jenkins-pipeline","jenkinsfile","kubernetes","sonarqube"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mdazfar2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-14T23:27:51.000Z","updated_at":"2025-01-05T19:41:37.000Z","dependencies_parsed_at":"2024-05-31T18:18:25.269Z","dependency_job_id":"3c68035f-6c9d-487b-a577-eea752859815","html_url":"https://github.com/mdazfar2/maven-jenkins-ArgoCD","commit_stats":null,"previous_names":["mdazfar2/maven-jenkins-argocd","mdazfar2/argocd-project"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdazfar2%2Fmaven-jenkins-ArgoCD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdazfar2%2Fmaven-jenkins-ArgoCD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdazfar2%2Fmaven-jenkins-ArgoCD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdazfar2%2Fmaven-jenkins-ArgoCD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdazfar2","download_url":"https://codeload.github.com/mdazfar2/maven-jenkins-ArgoCD/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235239084,"owners_count":18958091,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["argocd","cicd","dockerfile","jenkins","jenkins-pipeline","jenkinsfile","kubernetes","sonarqube"],"created_at":"2024-09-25T06:30:29.843Z","updated_at":"2025-10-04T10:31:59.279Z","avatar_url":"https://github.com/mdazfar2.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deploying Spring Boot App using K8s, ArgoCD, Jenkins and all\n\nSuccessfully deploy a Spring Boot application using a robust CI/CD pipeline. It provides an overview of the technologies and processes involved, including Jenkins, SonarQube, Kubernetes, ArgoCD, and Microsoft Azure.\n\n\u003c!--video uploading here--\u003e\n\n## 🎥 Watch the tutorial video [here](https://player.vimeo.com/video/948914848).\n\n# Workflow Diagram-\n![argoCD](https://github.com/mdazfar2/maven-jenkins-ArgoCD/assets/100375390/eae6d390-5eb9-4aff-b80b-88220dfff6e6)\n\n## Project Overview\n\nThis project demonstrates the deployment of a Spring Boot application using a fully automated DevOps pipeline. The key components and technologies used in this project are:\n\n- **Spring Boot**: A Java-based framework used to create stand-alone, production-grade Spring applications.\n- **Maven:** A build automation tool used primarily for Java projects.\n- **Jenkins**: An open-source automation server used to build, test, and deploy our application.\n- **SonarQube**: A tool for continuous inspection of code quality to perform automatic reviews.\n- **Kubernetes:** An open-source platform for automating the deployment, scaling, and management of containerized applications.\n- **ArgoCD**: A declarative, GitOps continuous delivery tool for Kubernetes.\n- **Microsoft Azure:** A cloud computing service used for deploying and managing applications.\n\n# Getting Started\n## Prerequisites\nBefore setting up this project, ensure you have the following prerequisites:\n\n- **Microsoft Azure Account**: You will need an Azure account to provision a Resource Group and create a Virtual Machine in the RG. If you don't have an Azure account you can [create one here](https://signup.live.com/signup?sru=https%3a%2f%2flogin.live.com%2foauth20_authorize.srf%3flc%3d1033%26client_id%3d51483342-085c-4d86-bf88-cf50c7252078%26cobrandid%3d788a943c-8e34-4c0a-9c83-1e4ef0322879%26mkt%3dEN-US%26opid%3d32AE1738B573F897%26opidt%3d1715941888%26uaid%3d35fcf7c10d4343389192c4200722161b%26contextid%3d741CCF2D50723A8F%26opignore%3d1\u0026mkt=EN-US\u0026uiflavor=web\u0026lw=1\u0026fl=easi2\u0026cobrandid=788a943c-8e34-4c0a-9c83-1e4ef0322879\u0026client_id=51483342-085c-4d86-bf88-cf50c7252078\u0026uaid=35fcf7c10d4343389192c4200722161b\u0026suc=8e0e8db5-b713-4e91-98e6-470fed0aa4c2\u0026lic=1).\n\n    - Launch a virtual machine with the Ubuntu 22.04 LTS image and choose the size D2ads v5 - 2 vCPUs and 8 GiB memory because we need to access more things like Jenkins, SonarQube, Kubernetes, ArgoCD, and much more.\n\n   - **SSH Access**: Connect to your Azure VM using SSH or any preferred method for configuration and setup.\n\n---\n\nNow install Jenkins-\n```bash\n#!/bin/bash\nsudo apt update -y\nwget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo tee /etc/apt/keyrings/adoptium.asc\necho \"deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main\" | sudo tee /etc/apt/sources.list.d/adoptium.list\nsudo apt update -y\nsudo apt install temurin-17-jdk -y\n/usr/bin/java --version\ncurl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc \u003e /dev/null\necho deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list \u003e /dev/null\nsudo apt-get update -y\nsudo apt-get install jenkins -y\nsudo systemctl start jenkins\nsudo systemctl status jenkins\n```\n\nAfter running this script, use your `\u003cVM-publicIP:8080\u003e` and access it via the browser.\n\n- after that install docker using these command-\n   ```bash\n   sudo apt install\n   ```\n\n   ```bash\n   sudo apt update -y\n   ```\n\n   ```bash\n   sudo apt install docker.io -y\n   ```\n\n- Docker group for permissions.\n\n   ```bash\n   sudo usermod -a -G docker $USER\n   ```\n\n- Switch primary group to Docker for current session.\n\n   ```bash\n   newgrp docker\n   ```\n\n- Granting universal read, write, and execute permissions to Docker socket.\n\n    ```bash\n    sudo chmod 777 /var/run/docker.sock\n    ```\n\n- now install sonarqube using this-\n    ```bash\n    docker run -d --name sonar -p 9000:9000 sonarqube:lts-community\n    ```\n   After run the container Use your \u003cVM-publicIP:9000\u003e for sonarqube dashboard and access it via the browser. and enter username `admin` \u0026 password is also `admin`.\n  \n\n\n- after all then Install plugins on Jenkins-\n- Plugins Prerequisites in Jenkins-\n\n    1. `Pipeline`\n    2. `Docker API Plugin`\n    3. `Docker Pipeline`\n    4. `SonarQube Scanner`\n    5. `Maven Integration`\n    6. `Blue Ocean`\n    7. `Git`\n\n - Now, in Jenkins credentials, add the credentials for `Docker`, `Github`, and `Sonarqube`. and after done of it's then run the Pipeline Script.\n   - This result appears as shown in the following screenshot-\n     \u003cbr/\u003e\n     \u003cbr/\u003e\n     \n     ![pipeline Screenshot](https://github.com/mdazfar2/maven-jenkins-ArgoCD/assets/100375390/04517050-4b7d-4267-90c3-efe3cc0a17d4)\n\n\n- Now install the Kubeadm because we are deploy ArgoCD using Kubernetes cluster, Visit the installation of [kubernetes](https://github.com/mdazfar2/ShellScript-Toolkit/tree/main/kubernetes%20Installation).\n  \n- you can also use kubernetes using Azure Kubernetes Service (AKS).\n  \u003cbr/\u003e\n  \n- for deploy argoCD visit the [argocd documentation](https://github.com/mdazfar2/ShellScript-Toolkit/tree/main/ArgoCD%20Installation).\n\n- after done of it's upload your github project link in `New App`.\n- And hope you can understand by the above tutorial video.\n\n# Conclusion\n\nThis project demonstrates a robust DevOps pipeline using Jenkins, SonarQube, Docker, Kubernetes, ArgoCD, and Azure. It ensures continuous integration and delivery, code quality, and automated deployment, providing a scalable and resilient environment for the Spring Boot application.\n\n\n\u003cimg src=\"https://www.animatedimages.org/data/media/562/animated-line-image-0184.gif\" width=\"1920\" /\u003e\n\n***That’s all from my side. If you encounter any issues while working on this project, feel free to connect with me via-***\n\n- [LinkedIN](https://linkedin.com/in/md-azfar-alam)\n- [Discord](https://discordapp.com/users/877531143610708028)\n- [Mail Me](mailto:azfaralam.ops@gmail.com)\n\n**Your insights are valuable and will help improve this project for everyone. Don't hesitate to connect!** ✨😊\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdazfar2%2FDeployed-on-k8s-with-GitOps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdazfar2%2FDeployed-on-k8s-with-GitOps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdazfar2%2FDeployed-on-k8s-with-GitOps/lists"}