The system handling all of this leverages Kubernetes, naturally, and of-course has a number
of nautically-named components. This system is Prow, and is used to manage automatic validation and merging of
human-approved pull requests and to verify branch-health leading up to each release.

With Prow each job is a single-container pod, created in a dedicated build and test cluster by “plank”, a micro-service running in the services cluster.
Each Prow component (roughly outlined above, along with TestGrid) is a small Go service structured around managing these one-off single-pod “ProwJobs”.

Using Kubernetes frees us from worrying about most of the resource management and scheduling / bin-packing of these jobs once they have been created and has generally been a pleasant experience.

These are all open source, except TestGrid, which is actually a publicly hosted and configured version of an internal tool developed at Google. We hope to open source a more performant rewrite of Testgrid sometime in Spring 2018.

UPDATE (August 2018): Work on this is still ongoing. TestGrid must be ported off of many Google internal libraries and is primarily staffed by one engineer currently, who must also maintain it, so this is taking longer than we hoped. We still intend to open source TestGrid and are making progress, slowly.

A number of other projects / groups including OpenShift, Istio, and Jetstack are also using and contributing (greatly!) to Prow and the rest of Kubernetes “test-infra”.