runner.pool-reconcile
Atomic adapter for runner.pool-reconcile; required by parent workflow specs: runners.pool.create-github-autoscaling, runners.pool.migrate-provider, runners.pool.resize-and-drain.
Overview
| Property | Value |
|---|---|
| Workflow type | Atomic |
| Library | App-runners |
| Version | 1.0 |
Input Schema
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
workflow_run_id | string | No | — | DAG-stamped parent run id. |
organization_uuid | uuid | Yes | — | Organization UUID for tenant isolation. |
actor | string | No | — | User or service actor initiating the workflow. |
dry_run | boolean | No | — | Validate and plan without mutating external resources. |
github_connection_uuid | uuid | No | — | UUID of the GitHub CloudConnection used to register/manage runners, picked from the organization's GitHub connections. Optional — omit when absent. |
connection_uuid | uuid | No | — | UUID of the CloudConnection used by this workflow for provider infrastructure, picked from the organization's connection list. |
repository | string | No | — | Repository owner/name for repo-scoped runners. |
runner_group_name | string | No | — | Runner group name. |
backend_type | string | No | — | Runner backend provider. |
min_size | integer | No | — | Minimum runner capacity. |
max_size | integer | No | — | Maximum runner capacity. |
labels | list | No | — | GitHub runner labels. |
image | string | No | — | Runner image override. |
dependency_context | json | No | — | Prior DAG step output used by this adapter. |
source_runner_group_uuid | uuid | No | — | UUID of the RunnerGroup being migrated from (the source of a pool/provider migration), picked from the organization's runner groups. |
target_connection_uuid | uuid | No | — | UUID of the CloudConnection for the migration's destination backend, picked from the organization's connections. |
target_backend_type | string | No | — | Target backend type. |
migration_policy | json | No | — | Drain/cutover policy. |
cutover_mode | string | No | — | Cutover mode. |
runner_group_uuid | uuid | No | — | UUID of the RunnerGroup this action operates on, picked from the organization's list of runner groups. |
target_min_size | integer | No | — | Target minimum capacity. |
target_max_size | integer | No | — | Target maximum capacity. |
drain_policy | json | No | — | Drain behavior and timeout policy. |
force_after_seconds | integer | No | — | Force drain after this many seconds. |
Output Schema
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
status | string | No | — | Adapter terminal status. |
summary | json | No | — | Adapter output summary. |
resource_refs | json | No | — | Provider/app resource references produced by adapter. |
warnings | list | No | — | Non-fatal adapter warnings. |
failure_reason | string | No | — | Adapter failure reason. |
failed_step | json | No | — | Failed step. |
failed_layer | json | No | — | Failed layer. |
failed_at_state | string | No | — | Failed at state. |
error | string | No | — | Error message. |
error_type | string | No | — | Error class. |
failed_at | string | No | — | Failure timestamp. |
States
| State | Initial | Terminal | Success | Auto-advance | Description |
|---|---|---|---|---|---|
PENDING | Yes | No | — | execute | — |
COMPLETED | No | Yes | Yes | — | — |
FAILED | No | Yes | No | — | — |
State Diagram
Transitions
| From | Action | To | Description |
|---|---|---|---|
PENDING | execute | COMPLETED | — |
* (any state) | fail | FAILED | — |
API Usage
bash
POST /api/workflows/start
Content-Type: application/json
{
"workflow_type": "runner.pool-reconcile",
"initial_data": {
"organization_uuid": "value"
}
}