Step 1: Start Minikube minikube start Verify: kubectl get nodes Step 2: Enable Ingress minikube addons enable ingress Verify: kubectl get pods -n ingress-nginx Step 3: Enable Metrics Server minikube addons enable metrics-server Verify: kubectl top nodes Step 4: Install ArgoCD kubectl create namespace argocd Install kubectl apply -n argocd \ -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml Verify: kubectl get pods -n argocd Step 5: Access ArgoCD kubectl port-forward svc/argocd-server \ -n argocd 8080:443 To get Password: kubectl get secret argocd-initial-admin-secret \ -n argocd \ -o jsonpath="{.data.password}" | base64 -d To Open in Local browser : https://localhost:8080 Check out the my website for next steps Step 6: Install Prometheus and Grafana Enter the below given command one by one 1)helm repo add prometheus-community https://prometheus-community.github.io/helm-charts 2)helm repo update 3)helm install monitoring prometheus-community/kube-prometheus-stack -n monitoring --create-namespace Get Grafana 'admin' user password by running: kubectl --namespace monitoring get secrets prometheus-grafana -o jsonpath="{.data.admin-password}" | base64 -d ; echo kubectl --namespace monitoring port-forward $POD_NAME 3000 Access Grafana local instance: http://localhost:3000 Step 7: Create Application Check out the my website for next steps Step 11: GitHub Actions ( Push Image to Docker Hub) Perquisites for building pipeline for build image and pushing image to docker hub You get these values from Docker Hub, then save them as GitHub repository secrets. 1.Go to DockerHub 2.Log in 3.Your DockerHub username is used as: DOCKER_USERNAME 4.Create an access token: * DockerHub → Account Settings * Personal access tokens * Generate new token * Copy the token * In GitHub, open your repository: * Settings * Secrets and variables * Actions * New repository secret Add these two secrets: Name: DOCKER_USERNAME Value: your DockerHub username Name: DOCKER_PASSWORD Value: your DockerHub access token Then your workflow can use them like this: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} Step 13: Test HPA Generate load: kubectl run load-generator \ --rm -it \ --image=busybox \ -- sh Inside: while true; do wget -q -O- http://enterprise-app; done Watch: kubectl get hpa -w Before running script Step 14: Access Website kubectl port-forward svc/enterprise-app 8081:80 Open: http://enterprise.local Please free feel to connect for any Doubt