Firmware update Racks
Update firmware on Racks with optional name filter. If no filter is specified, targets all racks in the Site.
Org must have an Infrastructure Provider entity. User must have authorization role with PROVIDER_ADMIN suffix.
Authentication
export JWT_BEARER_TOKEN="<jwt-bearer-token>"
# Example org name: "acme-inc
export ORG_NAME=<org-name>
# Use the JWT bearer token in your API request auth header:
curl -v -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $JWT_BEARER_TOKEN" https://nico-rest-api.nico.svc.cluster.local/v2/org/$ORG_NAME/nico/user/current
Path parameters
Request
Target firmware input serialized as a string. Its format is a contract between the caller and the component backend selected for the target. The REST API and Flow orchestration otherwise preserve this value. Flow only unwraps the optional per-tray mapping described below before passing the value to the selected component manager.
Flow’s built-in firmware rule includes Compute and NVSwitch stages. Do not use a compute-specific host-catalog component map as shared input for other backends. For mixed backends, use the per-tray mapping below with values appropriate to each selected backend.
For RMS-backed rack-scale firmware updates, use the complete SOT
firmware-object JSON document, not a release version such as
24.11.0. A SOT
document is an object with ProductName and Milestones at the
top level. Each milestone contains Name, State, and
BoardSKUs; each board SKU contains Name, Type, and
Components. Component groups contain Software and Firmware
entries describing Component, Version, Type, FileNames,
artifact Locations, and optional SubComponents. Obtain the
complete document from the SOT release process; the abbreviated
examples are not executable input. Supply a complete document
covering all component types selected by the operation rule.
The string can contain either one shared firmware input for all
selected trays or a JSON mapping from tray type (compute,
nvswitch, powershelf) to firmware input. Each mapping value
must satisfy its selected backend’s contract. Flow forwards object
values as raw JSON and unquotes string values.
These exact lowercase top-level keys are reserved for per-tray
mappings; a shared JSON object must not contain any of them.
A missing tray type in the mapping skips that component type.
A non-empty, non-layered value is forwarded unchanged.
For rack-scale RMS components, an omitted, null, empty, or
whitespace-only value uses the owning rack profile’s configured
firmware object. Resolution or fetch failures are reported by the
asynchronous task.
Optional, write-only authentication data for firmware downloads. Not supported for DPU-only updates or by the legacy NICo compute firmware controller.
When true, request that the selected component backend override firmware version-based checks when deciding whether to apply the update. This permits same-version reapplication and downgrade when supported. It does not bypass readiness checks or state-controller routing.
When true, proceed even if one or more target components (or hosts on the owning rack for rack-scoped components) are reported as not ready by their persisted status. Intended for operator-supervised maintenance.