Runner groups
A runner group is the long-lived pool you configure. Compute stays in your account (or on your laptop, for DevKit). Orkestia is the control plane.
The create wizard at runners.orkestia.dev asks three independent questions. The public docs used to collapse those into “AWS / Azure / Kubernetes.” This section names every kind the platform actually stores.
Three axes, not one
| Axis | Field | What it answers |
|---|---|---|
| Purpose | purpose | What work this pool is for |
| Integration | integration_type | Which job source (if any) the runner binary registers with |
| Backend kind | backend_type | Where each execution physically runs |
The create form keeps purpose and integration consistent (an agent pool forces integration=none; a GitLab pool sets purpose=gitlab_runner). The server stores them as separate enums — do not invent extra combinations in automation that the wizard would refuse.
Full purpose catalog: Purposes & integrations.
Backend kinds
backend_type is the kind. Discover required config keys with data.runner.list-provider-config-specs before you create a group. Exact workflow names live in the live catalog — treat the names below as orientation, not a contract.
Production
Kind (backend_type) | Connection | Shape | Page |
|---|---|---|---|
fargate | AWS | ECS / Fargate tasks | Fargate |
ec2_auto_scaling | AWS | EC2 Auto Scaling group + ECS capacity provider | EC2 Auto Scaling |
ec2_vm | AWS | One EC2 instance per execution | EC2 VM |
kubernetes | Kubernetes | One pod per execution in a namespace you name | Kubernetes |
azure_container_apps_job | Azure | Container Apps Jobs | Azure Container Apps |
azure_vmss | Azure | Virtual Machine Scale Set | Azure VMSS |
azure_vm | Azure | One Azure VM per execution | Azure VM |
devkit | none | Laptop / hosted broker — no cloud connection | DevKit |
Kubernetes and Azure groups carry live production fleets today (including Orkestia's own agent pools). AWS Fargate and EC2 are the original GA CI path.
Beta
Kind (backend_type) | Connection | Shape | Page |
|---|---|---|---|
gce | GCP | One Compute Engine VM per execution | GCE |
cloud_run | GCP | Cloud Run Jobs | Cloud Run |
do_app_job | DigitalOcean | App Platform Job | DO App Job |
do_droplet | DigitalOcean | One Droplet per execution | DO Droplet |
mgc_vm | Magalu Cloud | One Magalu VM per execution | Magalu VM |
Treat beta kinds as partial: provisioning and launch exist in the provider libraries; warm-pool reconcile, health-reap, and multi-region are not uniformly GA. Confirm the current runner.* surface in reference.orkestia.dev before committing a production pipeline.
Reserved / do not create
Kind (backend_type) | Why it exists | What to use instead |
|---|---|---|
eks | Legacy label still accepted in the database | Kubernetes against an EKS cluster connection |
New groups should use kubernetes for any conformant cluster — EKS, AKS, GKE, Magalu, or your own. The eks value is a reserved alias, not a second product.
Pick a kind
Create path
- Connect the cloud (or skip it for DevKit): AWS, GCP / Azure / Magalu / Kubernetes.
- Open Add runner group in the Runners app. Stage 2 is Runner type — that list is this catalog, filtered by the connection you picked.
- Set purpose + integration. Agent pools must be created as
purpose=agent; you cannot flip a CI pool later. See Agent runner groups. - Fill the backend's required config keys. The form is driven by
data.runner.list-provider-config-specs. - Submit. Provisioning is
runner.group-creation/runner.environment-provision-*. The group is usable only after it reaches active.
