We Built a Custom CI Runner with Go 1.24, Docker 26.0, and Kubernetes 1.32
Off-the-shelf CI runners like GitHub Actions or GitLab CI runners are great for most teams, but we hit limitations around custom workload requirements, cost optimization for high-volume builds, and strict security controls. To solve this, we built a custom CI runner using Go 1.24, Docker 26.0, and Kubernetes 1.32 — here’s how we did it.
Why Build a Custom CI Runner?
Our team runs over 10,000 CI jobs per day across multiple repositories, many requiring specialized build environments, GPU access, or air-gapped execution. Pre-built runners charged per-minute for our scale, and we couldn’t customize the execution environment to meet our security team’s requirements for rootless container execution and audit logging.…