Our Kubernetes Journey
We run all production workloads on RKE2 (Rancher's Kubernetes distribution). Here's how we set up a production-grade environment for Laravel applications.
The Stack
- Cluster: RKE2 with automated node provisioning
- Database: CloudNativePG (PostgreSQL operator) with automated backups
- Cache: Valkey (Redis fork) for sessions and cache
- Secrets: OpenBao for secret management, injected at pod startup
- Monitoring: Prometheus + Grafana for metrics, Loki for logs, Tempo for traces
- Ingress: nginx ingress controller with cert-manager for TLS
Helm Charts for Laravel
Each Laravel service has a Helm chart that defines deployments for the web server, queue workers, scheduler, and migrations job. Environment-specific values files handle staging vs production configuration.
CI/CD Pipeline
Our Forgejo Actions pipeline runs tests, builds Docker images, pushes to the registry, and triggers Helm upgrades — all in under 5 minutes for a typical service.