Workload targeting
Stacks, deployments, and workflow templates choose how work finds a runner. The Runners page only registers and organizes agents; targeting lives on the workload.
Strategies
| Strategy | What you set | Scheduler behavior |
|---|---|---|
automatic | Nothing required | Best available self-hosted runner in scope; hosted fleet if axio-\* labels require it |
runner-group | Group name | Only runners in that group (still must be online, in scope, and have capacity) |
specific-runner | Runner name | Pin to one agent |
labels | Customer or hosted labels | All listed labels must match |
provider-runner | Hosted label such as axio-linux | Shared Axio fleet only (subscription required) |
Preference
Controls whether the scheduler considers self-hosted or provider runners.
| Preference | Behavior |
|---|---|
customer | Self-hosted only |
provider | Shared Axio fleet only |
automatic | Self-hosted first; hosted if axio-\* labels are present |
runnerPreference: provider is set automatically when hosted labels are present.
Scope chain
For customer-hosted work, the scheduler walks environment → project → organization and only considers runners whose group scope covers that resource.
A workspace-scoped group is not used by another workspace. An organization-scoped group is eligible everywhere in the org (subject to labels and capacity).
Eligibility checklist
A runner can take a job only if all of these are true:
- Effective status is
ONLINE(heartbeat ≤ 90 seconds) - Not paused, draining, disabled, or in maintenance
- Has a free job slot
activeJobs \< maxConcurrentJobs - Labels match
- Group / scope covers the workload
- Version is not
BLOCKED - For hosted labels: tenant plan has
providerRunnerAccessEnabledand the fleet has capacity
AUTO_SELECT
Some APIs expose AUTO_SELECT as “best available runner” — same idea as strategy: automatic.
When no runner matches
Deployment/workflow logs typically show:
No runner is availableNo hosted runner available for label "axio-linux"- IaC CLI missing on the assigned runner
See troubleshooting and IaC requirements