[server] restore SMBIOS type 1 input on instance ensure - #1200
[server] restore SMBIOS type 1 input on instance ensure#1200zeeshanlakhani wants to merge 1 commit into
Conversation
The instance spec versioning rework in #1178 moved the API-to-internal conversion into per-version `SpecBuilder` paths, but dropped the assignment of the API spec's `smbios` field to the internal spec's `smbios_type1_input`. As a result, ensure requests with an explicit SMBIOS Type 1 input silently receive Propolis's default Type 1 values (`Oxide`/`OxVM`) instead. This breaks consumers of programmable SMBIOS (#977), like voxel and a4x2, where the SMBIOS manufacturer selects a4x2 hardware and the product and serial values identify the sled's configured `BaseboardId` during bootstrap. This change preserves `smbios` in `latest_to_spec_builder`, the common funnel for the versioned instance-spec conversion paths, and adds a regression test.
|
This looks great and I've verified it works right with voxel. Do we plan on updating the falcon pin from February? I've got some other propolis work I'll be making a PR for soon that would depend on this. |
we should, though not sure what the proper ordering of deps updates should be. |
|
@iximeow thoughts on this btw? |
|
@zeeshanlakhani would you be open to |
That totally makes sense. Want me to add it? Or, do you want to extend this. I'd also like someone working on propolis to take a gander here. |
The instance spec versioning rework in #1178 moved the API-to-internal conversion into per-version
SpecBuilderpaths, but dropped the assignment of the API spec'ssmbiosfield to the internal spec'ssmbios_type1_input.As a result, ensure requests with an explicit SMBIOS Type 1 input silently receive Propolis's default Type 1 values (
Oxide/OxVM) instead. This breaks consumers of programmable SMBIOS (#977), like voxel and a4x2, where the SMBIOS manufacturer selects a4x2 hardware and the product and serial values identify the sled's configuredBaseboardIdduring bootstrap.This change preserves
smbiosinlatest_to_spec_builder, the common funnel for the versioned instance-spec conversion paths, and adds a regression test.