Skip to main content

Configuration

Runner state lives in ~/.roboticks/runner.yaml (or %APPDATA%\roboticks\runner.yaml on Windows). The file is created by rbtk-runner register and updated automatically on token rotation. You edit the capabilities and resource stanzas.

File layout

Capabilities

Capabilities are matched all-or-nothing against the job requirements declared in the test job’s payload. A runner missing a required capability is silently skipped — it never sees the job.

ROS2 distros

The runner mounts the matching /opt/ros/{distro} into the test container. List only the distros actually installed on the host; rbtk-runner doctor flags drift.

Sim engines

GPU

Jobs that need a GPU set requires_gpu: true in the payload. If model is also set on the job, the runner is matched only if its declared model contains the substring. See GPU setup for nvidia-container-toolkit configuration.

Labels

Arbitrary string tags. Jobs may request a label (e.g., ldra-licensed) — runners without it are skipped.

Resources

Pick max_concurrent_jobs based on host capacity:

Log level

debug includes every HTTP request to the platform and the full Docker run command. Use it when diagnosing capability mismatches or upload failures. Per-invocation override:

Environment variables

Validate a config

Hot reload

The runner watches runner.yaml and re-applies capability changes on the next poll without restarting. Resource limits and log_level require a restart.

Token rotation

On every heartbeat the platform may return a fresh runner_token. The runner writes the new token to runner.yaml atomically. Never copy runner.yaml between machines — each runner identity is bound to its host.
If runner.yaml is lost or corrupted, run rbtk-runner register again with a fresh registration token. The old runner identity will be reaped after 24 hours of missed heartbeats.

Inspect current state

Next steps

Run as a service

systemd, launchd, Windows. Drain-then-replace updates.

GPU setup

nvidia-container-toolkit, multi-GPU pools.