Firmware update a Rack

View as Markdown

Update firmware on a Rack identified by Rack UUID.

Org must have an Infrastructure Provider entity. User must have authorization role with PROVIDER_ADMIN suffix.

Authentication

AuthorizationBearer
``` 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

orgstringRequired
Name of the Org
idstringRequiredformat: "uuid"
ID of the Rack

Request

This endpoint expects an object.
siteIdstringRequiredformat: "uuid"
ID of the Site
versionstring or nullOptional
Target firmware version.
targetslist of enumsOptional

Optional subset of firmware targets to update within the targeted tray. Names are lowercase and select sub-parts of the tray (BMC, BIOS, etc.). The accepted set per tray type comes from the Flow service’s NICo proto bindings (which mirror Core’s per-tray-type enums in NICo-core/crates/rpc/proto/forge.proto), so the supported values track Core as new sub-parts are added:

  • switch trays (NvSwitchComponent): currently bmc, cpld, bios, nvos
  • powershelf trays (PowerShelfComponent): currently pmc, psu
  • compute trays (ComputeTrayComponent): currently bmc, bios (currently NOT honored end-to-end: the NICo compute-firmware path goes through SetFirmwareUpdateTimeWindow + auto-update, which has no per-target selection; the request is logged and the whole bundle is applied. Will be honored once compute moves to UpdateComponentFirmware.) Omitted or empty means “update everything in the bundle” (the historical default) for compute-tray-internal targets. Unknown names are rejected. Requires version to be set. The special target dpu, valid only on compute trays, requests DPU reprovisioning on the matched host. Unlike the other targets, dpu is NOT covered by the “omitted/empty means everything” default — it must be listed explicitly. version is ignored on the dpu branch; the target firmware version comes from site configuration.
ruleIdstringOptionalformat: "uuid"
Optional Operation Rule UUID. When set, pins this firmware update to the named rule and overrides Flow's default rule resolution.
overrideReadinessCheckbooleanOptionalDefaults to false

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.

Response

OK
taskIdslist of strings
List of task IDs created for the firmware update operation

Errors

400
Bad Request Error
403
Forbidden Error