Demo: a real job on a local cluster¶
GitHub Actions Gateway (GAG) in 30 seconds: a real GitHub Actions job runs in a
worker pod that exists only while the job runs, then disappears — no runner
sits idle. Nothing here is staged; every line was captured from a real run on a
local kind cluster against real GitHub (a
self-hosted runs-on: e2e workflow).
The recording assumes GAG is already installed and shows only the payoff — see Try it yourself to run it on your own cluster.
What the demo shows¶
| Beat | What happens | Why it matters |
|---|---|---|
| Idle | Before any job, the team's namespace holds only a lightweight controller and proxy — zero worker pods. | No idle compute (and no idle GPUs) between jobs. |
| Run | One gh workflow run triggers a job. A worker pod goes Pending → Running → Completed, then is deleted on completion. |
One job → one short-lived pod; the node is freed instantly. |
| Green | gh run view shows the job succeeded on GitHub (in ~8s). |
The job really ran on real GitHub — you paid for compute only while it ran. |
Try it yourself¶
- Install GAG on your cluster — Getting Started covers
the Helm chart, a tenant namespace and quota, the GitHub App credential Secret,
and the
ActionsGatewayresource. - Reproduce this exact demo for free on a local kind cluster — a step-by-step from-source guide (build the images, stand up kind, onboard a tenant, run one job) lives in the repository: Reproduce the local-kind demo.
Next steps¶
- Why GAG? — how GAG compares to Actions Runner Controller (ARC).
- Architecture — the four-tier design behind what the demo shows.
The recording is a hand-authored asciinema cast (v2)
assembled from the real command outputs of a run on a local kind cluster against
real GitHub, then rendered to a self-contained animated SVG. The cast and its
generator live in
docs/assets/
(demo-local-kind.cast, generate-demo-cast.py).