idle: removes that wait by keeping runners ready in advance.
airship.yaml
Three shapes, pick exactly one
- replicas
- schedule
- usage_based
A fixed number, always.The simplest and the most expensive: two machines are alive and billed
around the clock. Right for the one repository everybody waits on.
What it costs
Idle machines are running machines: your cloud bills them while they wait. The levers:How a pool is maintained
1
Read from the default branch
Unlike everything else in
airship.yaml, idle: is read from the
repository’s default branch — pools exist before any job, so there is
no commit to read them from. A push to the default branch updates them
within a reconcile pass.2
Replaced halfway through their lifetime
An idle runner is replaced after half the maximum machine lifetime (four
hours by default), so a job that takes one still has the other half before
the machine’s own deadline.
3
Replaced the moment one is taken
A pool runner that gets a job is replaced immediately, so the pool is back
at size before the next job arrives.
4
Paused when launches keep failing
Three failures and the pool pauses for ten minutes, so a bad definition or
an exhausted quota does not spin.
A pool runner reserved for a queued job has its wait measured from the
moment it was reserved, not from its launch — so a machine that has been
warm for hours is not written off as
idle the instant a job reserves it.Organization-wide pools
Idle runners defined inairship.global.yaml are shared: they register on
the organization, in a runner group named airship-<runner name> visible to
every activated private repository — or only to the repositories that
runner’s access policies name. Any such
repository can take one.
airship.global.yaml
Where to see them
The Runners page shows pool runners alongside job runners, and the dashboard has a pools view with each pool’s target and current size. A pool that is persistently under its target is almost always a quota or a capacity problem — Events will have your cloud’s message.Shorten the cold start too
A pool hides the cold start; a baked image removes most of it. Together,
even an empty pool starts jobs in seconds.