CI/CD Pipeline using Jenkins, SonarQube, Nexus and Graphana
The goal of the project was to practise creating a CI/CD Pipeline using Jenkins, SonarQube, Nexus and Graphana. It aims to replicate more complicated corporate level CI/CD Pipelines which are used to build, test, deploy and monitor applications.
The pipeline includes several steps within Jenkins such as testing with maven, storing artifacts, as well as configuration of linux VMs, configuration of SonarQube and configuration of Nexus. The architecture of this project is as follows:
1. Update System Packages [On Master & Worker Node] sudo apt-get update 2. Install Docker[On Master & Worker Node] sudo apt install docker.io -y sudo chmod 666 /var/run/docker.sock 3. Install Required Dependencies for Kubernetes[On Master & Worker Node] sudo apt-get install -y apt-transport-https ca-certificates curl gnupg sudo mkdir -p -m 755 /etc/apt/keyrings 4. Add Kubernetes Repository and GPG Key[On Master & Worker Node] curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list 5. Update Package List[On Master & Worker Node] sudo apt update 6. Install Kubernetes Components[On Master & Worker Node] sudo apt install -y kubeadm=1.28.1-1.1 kubelet=1.28.1-1.1 kubectl=1.28.1-1.1 7. Initialize Kubernetes Master Node [On MasterNode] sudo kubeadm init --pod-network-cidr=10.244.0.0/16 8. Configure Kubernetes Cluster [On MasterNode] mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config 9. Deploy Networking Solution (Calico) [On MasterNode] kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml 10. Deploy Ingress Controller (NGINX) [On MasterNode] kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.49.0/deploy/static/provider/baremetal/deploy.yaml
Technologies Used
Website
n/a