Overview
Provisions a 3-node K3s cluster on OCI Always Free Ampere A1 compute via Terraform, bootstraps Argo CD for GitOps continuous delivery, and exposes apps through the Kubernetes Gateway API with Envoy Gateway. Cloudflare-managed DNS via ExternalDNS, automatic TLS via cert-manager + Let’s Encrypt, secrets stored in OCI Vault and synced via External Secrets. The k3s.sudhanva.me docs site runs on this cluster.
Why it exists
A real cluster on $0/month
OCI Always Free includes 4 OCPUs / 24 GB of Ampere A1 compute, an NLB, Vault, and Object Storage indefinitely. This project squeezes a production-shaped 3-node Kubernetes cluster out of that envelope: one public ingress node, one private control plane, one private worker.
Why Gateway API over Ingress
Gateway API is the successor to the old Ingress resource — it has a cleaner separation between cluster-operator concerns (the Gateway) and app-developer concerns (the HTTPRoute), and it’s the direction every major implementation is moving. Envoy Gateway gives you a CNCF-graduated Envoy data plane with Gateway API as its native API.
Terraform owns the whole graph
No click-ops anywhere. The Terraform plan provisions OCI compute, networking, Vault, NLB, Cloudflare DNS, K3s install via remote-exec, the Argo CD bootstrap, and the initial GitHub PAT secret. `terraform destroy` returns the entire footprint to zero with one command.