Skip to content
Proud to collaborate with Microsoft for Startups

runner.pool-reconcile-azure-vm ​

Controller reconcile loop for warm-pool runner groups on Azure VMs. Observes GitHub (via LTIP) + ARM + the engine DB every tick and converges the pool toward min_warm_idle / max_count. Idempotent; safe to run on a stable workflow_id per group.

Controller reconcile loop for warm-pool runner groups on Azure VMs.

Overview ​

PropertyValue
Workflow typeLinear
LibraryApp-runners-azure
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
runner_group_uuiduuidYes—RunnerGroup.uuid whose Azure VM warm pool to reconcile.
queued_demand_hintjsonNo—Inline demand hint from runner.dispatch-from-job-queued; bridges GitHub's queue-read lag right after a job-queued webhook.

Output Schema ​

FieldTypeRequiredDefaultDescription
runner_group_uuidstringNo——
queued_demand_hintjsonNo——
started_atstringNo——
completed_atstringNo——
warm_pool_enabledbooleanNo——
observationjsonNo——
degradedbooleanNo——
observation_errorsjsonNo——
transitionsjsonNo——
action_takenstringNo——
launched_workflow_uuidstringNo——
terminated_instance_uuidstringNo——
desired_aliveintegerNo——
compositionjsonNo——
observation_lag_msintegerNo——
queued_hint_countintegerNo——
effective_queued_countintegerNo——
failure_reasonstringNo——
failed_atstringNo——
step_errorsjsonNo——
errorstringNo——
error_typestringNo——
failed_at_statestringNo——
failed_layerstringNo——
failed_stepstringNo——

States ​

StateInitialTerminalSuccessAuto-advanceDescription
pendingYesNo—observe—
emitting_snapshotNoNo—complete—
enforcing_floor_capNoNo—emit_snapshot—
observingNoNo—diff_and_transition—
transitioningNoNo—enforce_floor_cap—
completedNoYesYes——
failedNoYesNo——

State Diagram ​

Transitions ​

FromActionToDescription
pendingobserveobserving—
observingdiff_and_transitiontransitioning—
transitioningenforce_floor_capenforcing_floor_cap—
enforcing_floor_capemit_snapshotemitting_snapshot—
emitting_snapshotcompletecompleted—
* (any state)failfailed—

API Usage ​

bash
POST /api/workflows/start
Content-Type: application/json

{
  "workflow_type": "runner.pool-reconcile-azure-vm",
  "initial_data": {
    "runner_group_uuid": "value"
  }
}