Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shubnimkar/2048_react_k8s
πΉοΈ A 2048 Game clone built with React and Typescript. Including Animations, deployed using Kubernetes
https://github.com/shubnimkar/2048_react_k8s
Last synced: about 8 hours ago
JSON representation
πΉοΈ A 2048 Game clone built with React and Typescript. Including Animations, deployed using Kubernetes
- Host: GitHub
- URL: https://github.com/shubnimkar/2048_react_k8s
- Owner: shubnimkar
- License: mit
- Created: 2023-10-09T10:48:06.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2023-10-18T13:01:00.000Z (about 1 year ago)
- Last Synced: 2023-10-19T13:48:38.327Z (about 1 year ago)
- Language: TypeScript
- Size: 235 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![2048 K8S](https://github.com/shubnimkar/2048_React_K8S/assets/46809421/cc9befdb-6e10-4408-9d7c-6f2281a78c9b)
Find complete steps here in my blog [DevSecOps: Deploying the 2048 Game on Docker and Kubernetes with Jenkins CI/CD](https://medium.com/@shubnimkar/devsecops-deploying-the-2048-game-on-docker-and-kubernetes-with-jenkins-ci-cd-675a6fe5caa7)
## Steps
1. Launch an Ubuntu(20.04) AWS t2.large / GCP e2-highcpu-8
2. Install Jenkins, Docker and Trivy. Create a Sonarqube Container using Docker.
3. Install Plugins like JDK, Sonarqube Scanner, Nodejs, and OWASP Dependency Check.
4. Create a Pipeline Project in Jenkins using a Declarative Pipeline
5. Install OWASP Dependency Check Plugins
6. Docker Image Build and Push
7. Deploy the image using Docker
8. Kubernetes master and slave setup on Ubuntu (20.04) t2.medium/e2-medium
9. Access the Game on Browser.## Installation steps:
* On Main server## Jenkins
sudo apt install openjdk-11-jre
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo 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 > /dev/null
sudo apt-get update -y
sudo apt-get install jenkins -y
sudo systemctl enable jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins
## Dockersudo apt-get update -y
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update -y
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER
newgrp docker
sudo chmod 666 /var/run/docker.sock
sudo systemctl restart docker## Trivy
sudo apt-get install wget apt-transport-https gnupg lsb-release
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | sudo tee /usr/share/keyrings/trivy.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt-get update
sudo apt-get install trivy -y
* Once Jenkins is installed, you will need to go to your AWS EC2 Security Group and open Inbound Port 8080, since Jenkins works on Port 8080.* Install Plugins like JDK, Sonarqube Scanner, NodeJS, OWASP Dependency Check, kubernetes
Go to Manage Jenkins βPlugins β Available Plugins β* Install below plugins
1 β Eclipse Temurin Installer (Install without restart)
2 β Sonarqube Scanner (Install without restart)
3 β NodeJS Plugin (Install Without restart)
4 β OWASP Dependency-Check (Install Without restart)
5 β Search for Docker and install these plugins (Install Without restart)Docker
Docker Commons
Docker Pipeline
Docker API
docker-build-step6 β Kubernetes (Install Without restart)
* After the docker installation, we create a Sonarqube container (Remember to add 9000 ports in the security group).
docker run -d --name sonar -p 9000:9000 sonarqube:lts-community
Now our Sonarqube is up and running
## Kubernetes Setup:
Take Two Ubuntu 20.04 instances one for k8s master and the other one for worker.
* Install Kubectl on Jenkins machine also.
* Kubectl is to be installed on Jenkins also
sudo apt update
sudo apt install curl -y
curl -LO https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client
* Part 1 β β β β β Master Node β β β β β βsudo hostnamectl set-hostname K8s-Master
* β β β β β Worker Node β β β β β β
sudo hostnamectl set-hostname K8s-Worker
* Part 2 β β β β β β Both Master & Node β β β β β
sudo apt-get update
sudo apt-get install -y docker.io
sudo usermod βaG docker Ubuntu
newgrp docker
sudo chmod 777 /var/run/docker.sock
sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo tee /etc/apt/sources.list.d/kubernetes.list <: --token --discovery-token-ca-cert-hashCopy the config file to Jenkins master or the local file manager and save it
copy it and save it in documents or another folder save it as secret-file.txtNote: create a secret-file.txt in your file explorer save the config in it and use this at the Kubernetes credential section.
## Final Deployment on kubernetes
![kubernetes deployment](https://github.com/shubnimkar/2048_React_K8S/assets/46809421/01ced688-7ca2-4dc2-aa3c-6684ff4f4bc9)