hemanthreddy00992/board_game

hemanth reddy

Hi In this project we will do CICD pipeline for Java based Game board selector application.

Ci pipeline ->

Using terraform to create a ec2 instances for Jenkins, sonarqube, jfrog.
Setup nexus using terraform
Install dependent plugins in Jenkins
Setup sonarqube , Jenkins, jfrog
Write Jenkins pipeline as checkout -> compile -> trivy fs scan -> sonarqube integration -> build code -> publish to nexus -> docker build -> docker tag -> trivy docker image scan -> docker push

Steps :

Install Jenkins
Login to Jenkins -> credentials -> docker cred (name) -> docker username and password
Plugins -> eclipse , docker,
Tools -> idk using eclipse, maven , docker
Install sonarqube : take ec2 instance > install docker > sudo docker run -d --name sonarqube -p 9000:9000 sonarqube:lts-community
Login to sonarqube : :9000 -> admin, admin -> goto administration create a token -> goto projects create a project manually by giving details locally and give the token to create project.
Install trivy to do trivy scanning on Jenkins server -> https://aquasecurity.github.io/trivy/v0.18.3/installation/
Pipeline ::

CD pipeline ->

Write manifest files like deployment, service for backend and frontend.
Check these files using online k8s clusters
Create EKS cluster, ArgoCD
Configure ARGO for deployment

Steps :

Create EKS Cluster From UI

Create Role for EKS Cluster: Go to AWS Management Console.-> IAM -> Roles -> Create role-> AWS Service -> EKS-cluster -> Click "Next" and provide a name for the role.
Create Role for EC2 Instances :
Create EKS Cluster: Navigate to Amazon EKS service.-> Click on "Create cluster".-> Enter the desired name, select version, and specify the role created in step 1.-> Configure Security Group, Cluster Endpoint, etc. -> create the cluster.
Create Compute Resources: Navigate to Amazon EKS service. -> Click on "Compute" or "Node groups".-> Provide a name for the compute resource.-> Select the role created in step 2.->Select Node Type & Size.-> Click "Next" and proceed to create the compute resource.
Configure Cloud Shell:

Create EKS Cluster From Terraform

Go to EKS_Terraform folder and give terraform init, terraform validate, terraform plan, terraform apply --auto-approve -> Your EKS cluster is created.

Install ArgoCD:

Create Namespace for ArgoCD: kubectl create namespace argocd
Apply ArgoCD Manifests: kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.7/manifests/install.yaml kubectl get all -n argocd
Patch Service Type to LoadBalancer: kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}' kubectl get svc -n argocd
Retrieve Admin Password: Username : admin kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d These commands will install ArgoCD into the specified namespace, set up the service as a LoadBalancer, and retrieve the admin password for you to access the ArgoCD UI.

Some Screenshots ::

Basic Feature Overview

Filter and search/sort within the game database
Add/Edit/Delete user accounts (with authentication)
Add/Edit/Delete user-added games
Add/Edit/Delete comments to games
Users can upload their own avatar images
Can filter games by category/mechanic
Like this project

Posted Dec 7, 2024

Devopsified Java based application using jenkins and deployed in Kubernetes

Hosted static website on AWS S3
Hosted static website on AWS S3
terraform-flask-sanity
terraform-flask-sanity