Labels
Labels decide which runner a workload can use. They work like GitHub Actions runs-on labels.
Customer labels (self-hosted)
You choose these at registration or later from Overview.
Rules:
- Editable from the inventory Labels column, Edit labels & group, or Bulk update labels.
- Cannot use the reserved
axio-prefix. - Comma-separated on the Setup form; the add-label popover accepts a single label only.
Self-hosted runners never receive axio-\* labels.
Reserved labels (axio-\*)
The axio- prefix is globally reserved for Axio-managed (provider) runners.
| Label | Typical use |
|---|---|
axio-linux | Linux VM |
axio-linux-x86 / axio-linux-arm64 | Architecture |
axio-windows | Windows VM |
axio-docker | Docker host |
axio-kubernetes | Kubernetes |
axio-gpu | GPU |
axio-provider | Marker that the runner is on the shared fleet |
Tenants reference these on stacks and workflows. They cannot create, rename, assign, or import axio-\* on self-hosted runners or groups.
Where labels are set
| Place | What you can set |
|---|---|
| Setup → Register | Optional comma-separated list on the install command |
| Overview → label chips | Add / delete one label |
| Overview → Edit labels & group | Full replace + move group |
| Overview → Bulk update labels | Add or replace on the selection |
| Hosted fleet | System labels on the hosted group (axio-linux, …) |
| axio.yaml / stack wizard | Required labels for scheduling — not assigned to the runner |
Matching
The scheduler matches workload requiredLabels / labels against the runner’s labels (customer) or systemLabels (provider fleet).
- All required labels must be present on the runner.
- Extra labels on the runner are fine.
axio-\*on a workload routes to the platform provider org fleet, not your self-hosted inventory.
See Targeting for more details.
Filtering inventory
Shows online runners that have terraform.
| Name | Group | Labels | Status |
|---|---|---|---|
| prod-runner-1 | prod | linux terraform | Online |
| gpu-runner-2 | prod | gpu terraform | Online |
Validation
All APIs, registration, heartbeat, bulk assign, and Platform-as-Code imports go through the same reserved-label rules. A self-hosted register or patch that includes axio-\* is rejected.
Labels with prefix axio- are reserved and cannot be assigned to self-hosted runners.