What an upgrade to a release would do.
curl --request GET \ --url 'https://stratum.example.com/v1/admin/upgrades/plan?mode=now' \ --header 'Authorization: Bearer <token>'The plan, computed from the release’s signed manifest against what each
node reports it runs; nothing changes. Per node: the kind (containers,
host or os, the largest the diff touches), what restarts, whether the
node reboots and how many VMs stop for about how long. Then where the
backup goes, how the upgrade could be undone, the schema levels, and
every precheck with blocking true when one failed. The upgrade’s
prechecking step runs the same checks. Install-scope; gates on
upgrade:DescribeUpgrade.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”The release, found in a verified medium, on the node, or in the release mirror’s index.
A release mirror URL, or a release directory under the import root.
Responses
Section titled “Responses”The plan.
What an upgrade to a release would do, and every reason it would be
refused. kind is the largest of the nodes’ kinds; empty when every node
already runs the release.
object
The release key that signed the manifest.
What the operator will see, in a sentence or two.
One node’s part of a plan.
object
What restarts, in order.
object
Os, kernel, kernelArgs, hostBinaries, sysext:
security when the release’s OS change fixes a vulnerability and a
node reboots for it; absent otherwise. A staged upgrade waiting to
reboot for it raises NodeRebootPending as a warning, and the
node-reboot-pending alarm after 7 days.
The vulnerabilities the OS change fixes, with rebootReason security.
The upgrade’s steps, in order.
object
object
The previous OS stays bootable.
The old control plane cannot run on the new schema; going back means a restore.
object
The pinned components the upgrade changes: the target
release’s component list against the running release’s
(componentsFrom release), or, for a running release built before
the lists, against what a node reports (nodes: its image pins and
the host packages it lists). Empty when nothing changes or nothing
could be compared (none).
One pinned component the upgrade changes: a container image
(by digest) or a host package (by NEVRA). from is empty for a component
the running release does not have, to for one the target drops.
object
The images.yaml service name, or the package name.
What runs now, for reading - an image’s version and short digest, a package’s [epoch:]version-release.
What the release pins, in the same form.
Exact - the digest, or name-epoch:version-release.arch; empty when not known.
Exact, as fromId.
What the component changes were compared with, or why they could not be.
object
Release, version, upgrade-path, upgrade, cluster-shutdown, readiness,
schema, node, components, release-differs, space or backup-space.
upgrade-path fails a known-broken upgrade, or one that skips a
required stop, and says the way round it.
A precheck failed; the upgrade would be refused.
Example
{ "sourceKind": "media", "kind": "", "nodes": [ { "kind": "", "reboot": "none" } ], "rebootReason": "security", "backup": { "location": "node" }, "componentChanges": [ { "kind": "image" } ], "componentsFrom": "release", "prechecks": [ { "status": "pass" } ]}Bad request.
object
The findings of a rejected IAM policy document (custom and resource policies).
One finding of a rejected IAM policy document. A rejection lists every finding, so the author fixes the document in one round trip.
object
The finding, e.g. INVALID_DOCUMENT, UNKNOWN_ACTION, ACTION_NOT_APPLICABLE.
Index of the statement at fault; -1 for the document as a whole.
The offending action, where one is at fault (ACTION_NOT_APPLICABLE).
Field errors, for codes that carry them: each problem at its field
(see FieldError). Documented on the responses that set it, e.g.
approveNodeJoin’s INVALID_INPUT and JOIN_APPROVAL_REFUSED.
Absent otherwise.
One field’s problem, the stage-2 installer API’s shape.
field is the field’s path, message what is wrong with it.
object
The field’s path, e.g. links[0].interface, disks[1].confirm,
mgmt.address or role; empty for the whole request.
Structured facts about the refusal, for codes that carry them. The
shape is fixed per code and documented on the response that answers
it, e.g. IMAGE_POOL_MISMATCH (see ImagePoolMismatchDetails) and
IMAGE_IN_USE. Absent for codes that carry none.
object
Example
{ "issues": [ { "code": "ACTION_NOT_APPLICABLE", "action": "compute:CreateVpc" } ]}Authenticated but not authorized.
object
The findings of a rejected IAM policy document (custom and resource policies).
One finding of a rejected IAM policy document. A rejection lists every finding, so the author fixes the document in one round trip.
object
The finding, e.g. INVALID_DOCUMENT, UNKNOWN_ACTION, ACTION_NOT_APPLICABLE.
Index of the statement at fault; -1 for the document as a whole.
The offending action, where one is at fault (ACTION_NOT_APPLICABLE).
Field errors, for codes that carry them: each problem at its field
(see FieldError). Documented on the responses that set it, e.g.
approveNodeJoin’s INVALID_INPUT and JOIN_APPROVAL_REFUSED.
Absent otherwise.
One field’s problem, the stage-2 installer API’s shape.
field is the field’s path, message what is wrong with it.
object
The field’s path, e.g. links[0].interface, disks[1].confirm,
mgmt.address or role; empty for the whole request.
Structured facts about the refusal, for codes that carry them. The
shape is fixed per code and documented on the response that answers
it, e.g. IMAGE_POOL_MISMATCH (see ImagePoolMismatchDetails) and
IMAGE_IN_USE. Absent for codes that carry none.
object
Example
{ "issues": [ { "code": "ACTION_NOT_APPLICABLE", "action": "compute:CreateVpc" } ]}Upstream temporarily unavailable (driver / scheduler / dependency).
object
The findings of a rejected IAM policy document (custom and resource policies).
One finding of a rejected IAM policy document. A rejection lists every finding, so the author fixes the document in one round trip.
object
The finding, e.g. INVALID_DOCUMENT, UNKNOWN_ACTION, ACTION_NOT_APPLICABLE.
Index of the statement at fault; -1 for the document as a whole.
The offending action, where one is at fault (ACTION_NOT_APPLICABLE).
Field errors, for codes that carry them: each problem at its field
(see FieldError). Documented on the responses that set it, e.g.
approveNodeJoin’s INVALID_INPUT and JOIN_APPROVAL_REFUSED.
Absent otherwise.
One field’s problem, the stage-2 installer API’s shape.
field is the field’s path, message what is wrong with it.
object
The field’s path, e.g. links[0].interface, disks[1].confirm,
mgmt.address or role; empty for the whole request.
Structured facts about the refusal, for codes that carry them. The
shape is fixed per code and documented on the response that answers
it, e.g. IMAGE_POOL_MISMATCH (see ImagePoolMismatchDetails) and
IMAGE_IN_USE. Absent for codes that carry none.
object
Example
{ "issues": [ { "code": "ACTION_NOT_APPLICABLE", "action": "compute:CreateVpc" } ]}