instance_type is your cloud’s own name for a machine shape. Airship does not
invent a size vocabulary of its own, so anything your account can launch, you
can ask for.
- AWS
- Google Cloud
- Azure
Any EC2 instance type:
c7i.xlarge, m8g.4xlarge, r7iz.metal-32xl,
mac2-m2.metal, u7i-12tb.224xlarge.Architecture is inferred, not declared
There is noarch field. Airship reads the architecture from the instance
type and picks the matching default image, runner build and driver path:
The runner registers with
arm64 or x64 as a label, so a job can ask for
one specifically:
GPUs
gpu: means “this runner has a GPU”. It adds the gpu label, and on Ubuntu
images that lack one it installs the NVIDIA driver. What the value means
depends on the cloud:
- AWS
- Google Cloud
- Azure
The name is a flag — the instance type decides the hardware. Pick a GPU
instance family and name the GPU you expect:An image that already ships the driver — a deep-learning AMI, for instance
— needs no installation; Airship detects one and leaves it alone.
gpu: false.
Host maintenance
On Google Cloud,extra_config.scheduling decides what happens when the host
your runner sits on needs maintenance:
MIGRATE is the default for machines that can do it. TERMINATE is the
default — and the only option — for GPUs and spot, so MIGRATE together with
preemptible or a GPU is a config error rather than a launch Compute Engine
would refuse.
How long a machine may live
Every machine schedules its own shutdown before anything else runs: eight hours by default. A runner that reaches it finishes asmax_lifetime. A
launched runner that no job arrives for within ten minutes finishes as idle
— almost always a label mismatch.
Choosing a size
Start one size up from habit
CI is usually bound by one slow step. Doubling the cores on a
make -j
build is often cheaper per job, not more expensive, because the machine
lives for half as long.Then fix the disk
A fast instance on a default volume is disk-bound. Raise throughput and
IOPS before reaching for more cores. Disks
Spot for everything repeatable
With an on-demand fallback behind it, spot costs a retry now and then.
Fallbacks
Arm where your toolchain allows
Graviton and Arm families are usually the best price per unit of work, and
the runner labels let you split a matrix across both.