Kubernetes -- Portfolio Projects
Three projects that prove production Kubernetes skills. These mirror what you will build at any company using K8s.
Project 1: Stateful WordPress on Kubernetes
Level: Beginner | Time: 1-2 days | GitHub: k8s-stateful-wordpress
What you build: WordPress + MySQL on Kubernetes using Deployments, PersistentVolumeClaims, ConfigMaps, and Secrets.
Key manifests
Steps
1.Set up minikube or kind cluster locally
2.Write all manifests by hand (no Helm yet)
3.Apply in order: Secret, PVC, Deployment, Service
4.Test persistence: delete pod, verify data survives restart
5.Add Ingress with host-based routing
6.Add HPA for WordPress (not MySQL)
7.Write troubleshooting guide for CrashLoopBackOff
Project 2: GitOps Platform with ArgoCD
Level: Intermediate | Time: 3 days | GitHub: k8s-gitops-platform
What you build: A GitOps-managed cluster where ALL changes go through Git, ArgoCD auto-syncs, and self-heals drift.
Repository structure
ArgoCD Application
Steps
1.Install ArgoCD on the cluster
2.Push K8s manifests to GitHub
3.Create ArgoCD Application pointing to repo
4.Make a change in Git, watch ArgoCD auto-sync
5.Try
kubectl delete deployment api -- ArgoCD restores it6.Add Slack notifications for sync events
7.Add ApplicationSet for dev/staging/prod namespaces
Project 3: Custom Kubernetes Operator
Level: Advanced | Time: 4-5 days | GitHub: database-provisioner-operator
What you build: A Kubernetes Operator that provisions PostgreSQL on demand via a custom DatabaseClaim CRD.
Custom Resource
Steps
1.Scaffold with Kubebuilder:
kubebuilder init && kubebuilder create api2.Implement Reconcile loop (compare desired vs actual state)
3.On DatabaseClaim created: deploy PostgreSQL + create Secret with credentials
4.On DatabaseClaim deleted: clean up all resources
5.Add status conditions: Provisioning, Ready, Failed
6.Write unit tests with envtest
7.Package as Helm chart
Portfolio Checklist
•[ ] Architecture diagram in every README
•[ ]
kubectl apply -f . works from a clean cluster•[ ] Project 2 demonstrates live GitOps (commit to Git triggers deploy)
•[ ] Can explain: StatefulSet vs Deployment for databases
•[ ] HPA configured and tested with load testing

