┌──────────────────────────────────────────────────────────────────┐
│ │
│ name: Sarthak Singh │
│ role: Cloud & DevOps Engineering Student │
│ degree: BTech Computer Engineering │
│ location: India │
│ │
│ philosophy: > │
│ "I don't want to know how to use the tools. │
│ I want to know what happens when they fail." │
│ │
│ journey: VM Infrastructure → Kubernetes → Production CI/CD │
│ goal: Cloud / DevOps Architect. Systems-focused. │
│ status: Open to DevOps / Cloud Engineering Internship │
│ │
└──────────────────────────────────────────────────────────────────┘Everything below was built in sequence. Each project taught me something the previous one couldn't.
PHASE 1 — Learn infrastructure the hard way
RoboShop on EC2 + ALB → 15 Terraform modules, VMs, ASGs, security groups
PHASE 2 — Build reusable, modular IaC
Terraform VPC Module → Reusable across projects, dual testing/prod mode
PHASE 3 — Move to container orchestration
Kubernetes Lab → Every resource type, every concept, hands-on manifests
PHASE 4 — Production Kubernetes
Retail Store on EKS → Helm umbrella charts, IRSA, HPA, StatefulSets, observability
PHASE 5 — Automate everything
Jenkins Shared Library → One pipeline to rule all microservices, all languages
| Repository | Description |
|---|---|
| 📁 RoboShop-Infra-Standard | Main infrastructure — Terraform modules, Jenkins CI/CD |
| 🐚 Roboshop-Dev-Prod-Infra-CICD-Deployment | Infra CICD Deployment |
| 📦 Terraform-AWS-VPC-Advanced | Reusable VPC module consumed by this project |
| 🛡️ RoboShop-Security-Group-Module | Reusable security group module |
| ⚙️ RoboShop-Ansible-Roles-tf | Ansible roles for configuration management |
| 🐚 RoboShop-Shell-Script-For-Alma-Linux | Bootstrap shell scripts |
The foundation. Before touching Kubernetes, I built the entire platform the hard way — EC2, ALBs, ASGs, Ansible — across DEV and PROD using 15 separate Terraform modules. This is where I learned why infrastructure needs to be code, not clicks.
|
Infrastructure (15 Terraform Modules)
Compute & Deployment
|
Databases & Services
Configuration Management
CI Pipeline (Catalogue Service)
|
Stack: Terraform Ansible Jenkins AWS EC2/ALB/ASG/Route53/SSM AlmaLinux
| Repository | Description |
|---|---|
| 📁 retail-store-aws-deployment | Main EKS deployment — Helm umbrella charts, IRSA, observability |
| 🔄 retail-store-Jenkins-shared-library | Jenkins shared library — multi-language CI/CD for all services |
The flagship project. Everything learned building RoboShop on VMs, rebuilt properly on Kubernetes — with full observability, zero static credentials, and a CI/CD pipeline that handles every microservice in every language from a single shared library.
|
Helm Architecture
Security — IRSA Fully Implemented
|
Kubernetes Architecture
CI/CD — Jenkins Shared Library
Observability
|
Stack: AWS EKS Helm Jenkins Shared Library IRSA Prometheus Grafana EBS CSI Docker Terraform
PRODUCTION-READY ───────────────────────────────────────────────────────
✅ Multi-env VM infrastructure — 15 Terraform modules, full AWS stack
✅ Reusable Terraform VPC module — dual mode, region-agnostic, validated
✅ EKS production deployment — Helm umbrella, 10 subcharts, multi-env values
✅ IRSA — full OIDC chain, scoped IAM, zero static credentials
✅ Jenkins shared library — multi-language, multi-service, single codebase
✅ StatefulSets + EBS dynamic provisioning — MySQL and PostgreSQL
✅ HPA + health probes — 12 min → 1.5 min deployment time
✅ Prometheus + Grafana — ServiceMonitors, custom dashboards
ACTIVELY LEARNING ──────────────────────────────────────────────────────
🔄 Linux internals — cgroups, namespaces, process model, OOM killer
🔄 Networking — TCP, DNS resolution chain, k8s packet path through CNI
🔄 PromQL + AlertManager — from dashboards to actual SLOs and alert rules
NEXT BUILDS ────────────────────────────────────────────────────────────
⏳ External Secrets Operator — replace plaintext passwords with ESO + IRSA
⏳ NetworkPolicies — pod-level security mirroring existing SG rules
⏳ ArgoCD — pull-based deployment replacing Jenkins CD
⏳ Terraform CI — tflint + checkov + GitHub Actions on every PR
⏳ Trivy image scanning in Jenkins pipeline
Most students who "know Kubernetes" have run kubectl apply on a tutorial manifest. Here is what I have actually done differently.
On IRSA: I did not copy-paste a blog post. I enabled the OIDC provider, wrote the trust policy with the service account condition, scoped the IAM policy to a specific table ARN, annotated the ServiceAccount, and verified it by exec-ing into the pod and checking env | grep AWS. I know it works because I know why it works.
On the VPC module: I wrote a module that other modules consume. It has input validation, dual deployment modes, and is region-agnostic. When I call it from RoboShop and call it again from a new project, I do not copy-paste Terraform — I reference the same tested module.
On the Jenkins shared library: I did not write a Jenkinsfile per service. I wrote three reusable Groovy functions that handle version detection for Maven, Go, and Node — then one pipeline definition that every service calls. When the deployment process changes, I change it once.
On health probes: I did not add them because a tutorial said to. I added them, measured the deploy time, watched it drop from 12 minutes to 1.5 minutes, and understood why. The startup probe is what made the difference — Kubernetes was killing pods before they finished connecting to databases.

