$ kubectl describe project gitops-pipeline-with-argocd-multi-environment-kubernetes-deployment
GitOps Pipeline with ArgoCD – Multi-Environment Kubernetes Deployment
Built a production-grade GitOps pipeline deploying a full-stack blog to Kubernetes using ArgoCD. Demonstrates modern platform engineering practices used at gaming studios.
The application consists of React frontend, Node.js/Express backend, and MongoDB. All containerized using Docker multi-stage builds (87% smaller images) and deployed to K3s in my home lab.
The CI/CD pipeline is fully automated via GitHub Actions. On code push, the workflow builds Docker images, tags them with git commit SHA for traceability, pushes to Docker Hub, updates Kubernetes manifests with new tags, and commits changes back to repo. ArgoCD detects changes and auto-syncs the cluster.
ArgoCD implements pull-based CD where the cluster pulls from Git rather than CI pushing to cluster. Benefits: Git is single source of truth, all deployments auditable through Git history, cluster self-heals by reverting unauthorized changes, and CI never needs cluster credentials.
I use Kustomize for three environments: dev (1 replica, auto-sync), staging (2 replicas, auto-sync), prod (3 replicas, manual approval). Each shares base manifests but applies environment-specific patches.
Monitoring: Prometheus scrapes ArgoCD metrics, Grafana displays official dashboard showing sync status, health, and reconciliation times.
Infrastructure automation via Ansible with four roles: k3s installation, ArgoCD deployment, monitoring setup, database seeding. Entire stack reproducible with one command.
Key achievements: Zero manual kubectl commands, full traceability from commit to deployment, drift detection and self-healing, multi-environment management, complete observability.
Technologies: React, Vite, Node.js, Express, MongoDB, Docker, Kubernetes, K3s, ArgoCD, Kustomize, GitHub Actions, Prometheus, Grafana, Ansible.