Shashi Vashisht
DevOps Engineer | Linux | Kubernetes | Automation
This project demonstrates a production-grade DevOps pipeline implementing:
- ✅ CI/CD using GitHub Actions
- ✅ Docker-based application delivery
- ✅ GitOps deployment model
- ✅ Kubernetes orchestration
- ✅ ArgoCD for continuous deployment
- ✅ Terraform for infrastructure provisioning
This architecture reflects real-world enterprise DevOps practices.
Developer → GitHub → CI (Build/Test) → DockerHub
→ CD updates GitOps Repo → ArgoCD → Kubernetes Cluster
| Category | Tools Used |
|---|---|
| CI/CD | GitHub Actions |
| Containerization | Docker |
| Orchestration | Kubernetes |
| GitOps | ArgoCD |
| IaC | Terraform |
| Backend App | Python (Flask) |
.
├── app/ # Flask application
├── Dockerfile # Container build
├── requirements.txt # Python dependencies
├── .github/workflows/ # CI/CD pipelines
├── assets/ # Images (profile, diagrams)
└── README.md
Triggered on every push:
- Code checkout
- Build Docker image
- Tag image using commit SHA
- Push image to DockerHub
docker build -t <username>/demo-app:${{ github.sha }}
docker push <username>/demo-app:${{ github.sha }}Instead of deploying directly:
- CI updates GitOps repository
- ArgoCD detects changes
- Automatically syncs with Kubernetes
👉 This ensures:
- Declarative deployments
- Version-controlled infrastructure
- Easy rollback capability
| Endpoint | Description |
|---|---|
/ |
Health check |
/version |
App version |
docker build -t demo-app .docker run -p 5000:5000 demo-appAccess:
http://localhost:5000
Deployment is handled via:
- GitOps repo (separate)
- ArgoCD Application
- Kubernetes manifests
Example:
image: your-docker/demo-app:<commit-sha>Infrastructure provisioning includes:
- Compute resources (EC2 / K8s nodes)
- Networking (VPC, subnets)
- IAM roles
Handled via GitHub Secrets:
DOCKER_USERNAMEDOCKER_PASSWORD
- GitOps (ArgoCD)
- Immutable deployments
- CI/CD pipeline design
- Infrastructure as Code (Terraform)
- Container lifecycle management
- Separation of concerns (App vs Infra vs GitOps)
“I implemented a GitOps-based CI/CD pipeline where GitHub Actions builds Docker images, pushes them to DockerHub, updates a GitOps repository, and ArgoCD handles automated deployment to Kubernetes with self-healing enabled.”
- Helm charts for templating
- Multi-environment setup (dev/stage/prod)
- Prometheus + Grafana monitoring
- GitHub OIDC (no static secrets)
- ArgoCD RBAC & Projects
- Canary deployments
Add:
- ArgoCD dashboard
- Pipeline execution
- Kubernetes pods
Place inside:
assets/screenshots/
- GitHub: https://github.com/your-username
- LinkedIn: https://linkedin.com/in/your-profile
Give it a ⭐ on GitHub — it helps a lot!
