Skip to content

Where the install stands.

GET
/v1/installer/status
Code sample: Shell / cURL
curl --request GET \
--url https://192.0.2.10:9443/v1/installer/status \
--header 'Authorization: <Authorization>'

The phase (configuring, installing, done, failed), the installer’s version, the draft’s install mode and profile, whether the current draft config is valid, and what became of a node.yaml stage 1 brought for an unattended install (unattended).

The install’s status.

Media typeapplication/json

mode is the draft’s install mode: its mode, or single-node for a structured draft with none; for a raw node.yaml, the install mode its mode resolves to. Absent when a raw node.yaml does not parse or names no mode the installer knows.

object
phase
required

configuring until an install starts; installing while one runs; done after one succeeded; failed after the latest one failed.

string
Allowed values: configuring installing done failed
version
required

The installer’s version line.

string
mode

How this node is installed: the first answer of stage 2. Each mode is a deployment profile of the release model and the node’s part in it.

  • single-node: one node runs everything (profile single-node; node.yaml mode: single-node).
  • hyperconverged-init: the first node of a hyperconverged cluster, the one that founds it (“HA init”; node.yaml mode: ha-init).
  • hyperconverged-join: a node that joins a hyperconverged cluster (“HA join”; node.yaml mode: join).
  • disaggregated-control-plane: a control-plane-only node that compute and storage nodes join later (profile disaggregated, a preview whose design is open,).

GET /v1/installer/options says which are available; the others are refused at mode, with the reason.

string
Allowed values: single-node hyperconverged-init hyperconverged-join disaggregated-control-plane
profile
required

The draft’s profile: the one its install mode installs (single-node for a draft with no mode, and for a raw node.yaml whose mode cannot be read).

string
hostname
required
string
url
required

Where this API is served.

string
configValid
required

Whether the current draft validates.

boolean
attempt
required

Install attempts started so far (0 before the first).

integer
step

The step running now, while installing.

string
startedAt
string format: date-time
finishedAt
string format: date-time
blockers

Why POST /install would be refused right now, whatever the config says: for example, the offline payload did not load (PAYLOAD_NOT_LOADED). Empty or absent when an install can start. A front end shows these before offering the install.

Array<object>
object
code
required

Stable identifier, e.g. PAYLOAD_NOT_LOADED.

string
detail
required

What is wrong and how to fix it, for a person.

string
unattended

An unattended stage 2. Stage 1 found a node.yaml beside install.yaml on the install medium and left it on the node; the service took it at its first start, made it the draft (source yaml), removed the file, and either started the install by itself or left it waiting. Absent when there was no such file. It records what became of the file. Only a blocked one that waits (autoStart) changes later: once its blockers clear it is decided again as at the first start, so state becomes started with attempt (or invalid, should the machine no longer accept it); and a person who takes the draft over ends the wait. A later draft or install is the person’s.

object
state
required

started: it validated and the service started install attempt attempt with no install code (at once, or once its blockers cleared); follow it like any install. invalid: it did not validate (errors), so nothing started; it is the draft, to fix and install. blocked: it validated, but blockers refused the install, so nothing started; it is the draft. While autoStart is true it starts by itself once they clear; otherwise a person installs it.

string
Allowed values: started invalid blocked
autoStart

blocked only. True while the install still starts by itself once the blockers clear: nobody has changed the draft or started an install since the file was taken. A PUT of the config or a started install hands the draft to the person and turns this off for good. Absent otherwise.

boolean
origin
required

Where stage 1 found it, e.g. node.yaml on the partition labeled STRATUM. Empty when the node’s install record does not say.

string
takenAt
required

When the service took it.

string format: date-time
attempt

The install attempt it started (started only).

integer
errors

Why it did not validate (invalid only), by node.yaml key.

Array<object>
object
field
required

The structured field (network.floatingIpCidrs[1]); empty for the whole config. For a raw YAML draft, the node.yaml key.

string
message
required
string

Example

{
"phase": "configuring",
"mode": "single-node",
"unattended": {
"state": "started"
}
}

No install code, or the wrong one.

Media typeapplication/problem+json

RFC 7807 problem details, the control plane’s shape.

object
type
required
string
title
required
string
status
required
integer
>= 400 <= 599
detail
string
code
required
string
requestId
required
string
errors

Field errors, for INVALID_CONFIG.

Array<object>
object
field
required

The structured field (network.floatingIpCidrs[1]); empty for the whole config. For a raw YAML draft, the node.yaml key.

string
message
required
string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"requestId": "example",
"errors": [
{
"field": "example",
"message": "example"
}
]
}

Too many wrong install codes; wait for Retry-After.

Media typeapplication/problem+json

RFC 7807 problem details, the control plane’s shape.

object
type
required
string
title
required
string
status
required
integer
>= 400 <= 599
detail
string
code
required
string
requestId
required
string
errors

Field errors, for INVALID_CONFIG.

Array<object>
object
field
required

The structured field (network.floatingIpCidrs[1]); empty for the whole config. For a raw YAML draft, the node.yaml key.

string
message
required
string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"requestId": "example",
"errors": [
{
"field": "example",
"message": "example"
}
]
}
Retry-After
integer

Seconds until the next attempt is considered.

The installer failed to answer.

Media typeapplication/problem+json

RFC 7807 problem details, the control plane’s shape.

object
type
required
string
title
required
string
status
required
integer
>= 400 <= 599
detail
string
code
required
string
requestId
required
string
errors

Field errors, for INVALID_CONFIG.

Array<object>
object
field
required

The structured field (network.floatingIpCidrs[1]); empty for the whole config. For a raw YAML draft, the node.yaml key.

string
message
required
string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"requestId": "example",
"errors": [
{
"field": "example",
"message": "example"
}
]
}