Rollouts

Config and version rollouts, operator actions.

All paths are relative to the base path /api/v1 (same origin as the UI). Authentication, roles, pagination and the error format are described in the overview; the types are on the page Data types.

OperationRequestPermission
Rollouts (newest first)GET /rolloutsread (viewer)
Rollout with waves, counts and policy snapshotGET /rollouts/{id}read (viewer)
Targets (agents) of a rolloutGET /rollouts/{id}/targetsread (viewer)
Pause (no new targets are started; in-progress targets finish)POST /rollouts/{id}/actions/pauserollouts:operate (operator)
Resume a paused rolloutPOST /rollouts/{id}/actions/resumerollouts:operate (operator)
Abort - stop starting targets, cancel pending ones (updated agents keep the new state)POST /rollouts/{id}/actions/abortrollouts:operate (operator)
Approve a wave that requires approvalPOST /rollouts/{id}/actions/approverollouts:operate (operator)
Roll back all touched targets to their previous config/versionPOST /rollouts/{id}/actions/rollbackrollouts:operate (operator)
Reset failed/skipped targets to pending (rollout must be paused, running or failed)POST /rollouts/{id}/actions/retry-failedrollouts:operate (operator)

Rollouts (newest first)

GET /api/v1/rollouts

Operation listRollouts. Permission read (lowest role: viewer).

Parameters

NameInTypeRequiredDescription
fleetquerystringno
kindqueryRolloutKindno
statusqueryarray of RolloutStatusnoRepeat the parameter for several values.
activequerybooleannoOnly non-terminal rollouts.
limitqueryintegernoRange 1 to 500. Default 50.
offsetqueryintegernoRange 0 to 100000. Default 0.

Responses

StatusDescriptionContent typeType
200Rolloutsapplication/jsonRolloutSummaryPage
400Invalid request (code bad_request)application/problem+jsonProblem
401Not authenticated (code unauthorized)application/problem+jsonProblem

Rollout with waves, counts and policy snapshot

GET /api/v1/rollouts/{id}

Operation getRollout. Permission read (lowest role: viewer).

Parameters

NameInTypeRequiredDescription
idpathstringyesFormat uuid.

Responses

StatusDescriptionContent typeType
200Rolloutapplication/jsonRollout
404Not found (code not_found)application/problem+jsonProblem

Targets (agents) of a rollout

GET /api/v1/rollouts/{id}/targets

Operation listRolloutTargets. Permission read (lowest role: viewer).

Without sort, targets are ordered by wave, hostname and agent ID.

Parameters

NameInTypeRequiredDescription
idpathstringyesFormat uuid.
wavequeryintegernoMinimum 0.
statusqueryarray of TargetStatusnoRepeat the parameter for several values.
agentquerystringnoOnly the target of this agent (at most one item). The UI uses it to keep an open detail view current while the target moves between pages of the activity order. Format uuid.
sortquerystringnowave (default) orders by wave, hostname and agent ID. This order does not change while target statuses change, so use it to page through all targets. activity ranks by status first (in_progress and verifying, waiting_window, failed and rolled_back, pending, succeeded, skipped, cancelled), then by wave, hostname and agent ID. Statuses change while a rollout runs, so a target can move between pages between two requests. One of wave, activity. Default wave.
limitqueryintegernoRange 1 to 500. Default 50.
offsetqueryintegernoRange 0 to 100000. Default 0.

Responses

StatusDescriptionContent typeType
200Targetsapplication/jsonRolloutTargetPage
404Not found (code not_found)application/problem+jsonProblem

Pause (no new targets are started; in-progress targets finish)

POST /api/v1/rollouts/{id}/actions/pause

Operation pauseRollout. Permission rollouts:operate (lowest role: operator).

Parameters

NameInTypeRequiredDescription
idpathstringyesFormat uuid.
X-CSRF-TokenheaderstringnoRequired for cookie-authenticated mutating requests (value of cookie myriarch_csrf).

Request body

Content type application/json, optional. Type: RolloutActionRequest.

{
  "reason": "string"
}

Responses

StatusDescriptionContent typeType
200Updated rolloutapplication/jsonRollout
404Not found (code not_found)application/problem+jsonProblem
412Invalid state transition or precondition (code precondition_failed)application/problem+jsonProblem

Resume a paused rollout

POST /api/v1/rollouts/{id}/actions/resume

Operation resumeRollout. Permission rollouts:operate (lowest role: operator).

Parameters

NameInTypeRequiredDescription
idpathstringyesFormat uuid.
X-CSRF-TokenheaderstringnoRequired for cookie-authenticated mutating requests (value of cookie myriarch_csrf).

Request body

Content type application/json, optional. Type: RolloutActionRequest.

{
  "reason": "string"
}

Responses

StatusDescriptionContent typeType
200Updated rolloutapplication/jsonRollout
404Not found (code not_found)application/problem+jsonProblem
412Invalid state transition or precondition (code precondition_failed)application/problem+jsonProblem

Abort - stop starting targets, cancel pending ones (updated agents keep the new state)

POST /api/v1/rollouts/{id}/actions/abort

Operation abortRollout. Permission rollouts:operate (lowest role: operator).

Parameters

NameInTypeRequiredDescription
idpathstringyesFormat uuid.
X-CSRF-TokenheaderstringnoRequired for cookie-authenticated mutating requests (value of cookie myriarch_csrf).

Request body

Content type application/json, optional. Type: RolloutActionRequest.

{
  "reason": "string"
}

Responses

StatusDescriptionContent typeType
200Updated rolloutapplication/jsonRollout
404Not found (code not_found)application/problem+jsonProblem
412Invalid state transition or precondition (code precondition_failed)application/problem+jsonProblem

Approve a wave that requires approval

POST /api/v1/rollouts/{id}/actions/approve

Operation approveRolloutWave. Permission rollouts:operate (lowest role: operator).

Parameters

NameInTypeRequiredDescription
idpathstringyesFormat uuid.
X-CSRF-TokenheaderstringnoRequired for cookie-authenticated mutating requests (value of cookie myriarch_csrf).

Request body

Content type application/json, required. Type: ApproveWaveRequest.

{
  "wave": 0,
  "reason": "string"
}

Responses

StatusDescriptionContent typeType
200Updated rolloutapplication/jsonRollout
404Not found (code not_found)application/problem+jsonProblem
412Invalid state transition or precondition (code precondition_failed)application/problem+jsonProblem

Roll back all touched targets to their previous config/version

POST /api/v1/rollouts/{id}/actions/rollback

Operation rollbackRollout. Permission rollouts:operate (lowest role: operator).

Parameters

NameInTypeRequiredDescription
idpathstringyesFormat uuid.
X-CSRF-TokenheaderstringnoRequired for cookie-authenticated mutating requests (value of cookie myriarch_csrf).

Request body

Content type application/json, optional. Type: RolloutActionRequest.

{
  "reason": "string"
}

Responses

StatusDescriptionContent typeType
200Updated rolloutapplication/jsonRollout
404Not found (code not_found)application/problem+jsonProblem
412Invalid state transition or precondition (code precondition_failed)application/problem+jsonProblem

Reset failed/skipped targets to pending (rollout must be paused, running or failed)

POST /api/v1/rollouts/{id}/actions/retry-failed

Operation retryFailedRolloutTargets. Permission rollouts:operate (lowest role: operator).

Parameters

NameInTypeRequiredDescription
idpathstringyesFormat uuid.
X-CSRF-TokenheaderstringnoRequired for cookie-authenticated mutating requests (value of cookie myriarch_csrf).

Request body

Content type application/json, optional. Type: RolloutActionRequest.

{
  "reason": "string"
}

Responses

StatusDescriptionContent typeType
200Updated rolloutapplication/jsonRollout
404Not found (code not_found)application/problem+jsonProblem
412Invalid state transition or precondition (code precondition_failed)application/problem+jsonProblem