Skip to main content
machine_image says what to boot. Leave it out and you get ubuntu2204: Canonical’s newest Ubuntu 22.04 image for the runner’s architecture, looked up in your region at launch time.
Both aliases work on every cloud, which is what makes a definition portable. A list of images is a fallback chain.

Per cloud

An AMI ID is region-specific, so pin the region alongside it or keep one definition per region.
A marketplace AMI needs its terms accepted for your account before it will launch. Subscribe once in the AWS Marketplace console; until then every launch fails permanently.

Any image your account can launch

There is no image allowlist. An airship.yaml can name any image the connected credential can boot. Architecture mismatches are refused, and so are marketplace images a publisher has deprecated, but trustworthiness is not something Airship can judge — the authority is the same one a workflow file already has. If that is not acceptable for a repository, do not activate it.

Pointing at your own image

Baking the runner and your toolchain into an image is the single biggest cold-start win, and it removes the package-mirror traffic from every job. The recipe, and what Airship looks for inside the image, is on its own page:

Baking a custom image

What to pre-install, where the runner tarball goes, and how to keep the image’s runner version current.

Windows

A Windows image gets a Windows boot script automatically — there is no flag to set. The extras worth knowing (an interactive desktop session, the install path, the local account) are on Windows runners.
The ubuntu2204 and ubuntu2404 aliases are Linux. A job that asks for the windows label is only served by a definition naming a Windows image of your own.

GPU images

An image that already ships an NVIDIA driver — a deep-learning image, for instance — is detected and left alone. On a stock Ubuntu image with gpu: set, Airship installs the driver during boot, which costs a minute or two per job; bake it into an image if GPU jobs are frequent.