You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[inventory] Add full OmicronSledConfig and fields for upcoming config reconciler (#8188)
The primary change here is replacing these inventory fields (a subset of
`OmicronSledConfig`):
```rust
pub omicron_zones: OmicronZonesConfig,
pub omicron_physical_disks_generation: Generation,
```
with these:
```rust
pub ledgered_sled_config: Option<OmicronSledConfig>,
pub reconciler_status: ConfigReconcilerInventoryStatus,
pub last_reconciliation: Option<ConfigReconcilerInventory>,
```
Once #8064 lands, all three of these will be filled in meaningfully; as
of this PR, only `ledgered_sled_config` is populated.
(`reconciler_status` is always `NotYetRun` and `last_reconciliation` is
always `None`, since there is no reconciler yet.) The rest of the
changes are all fallout from changing inventory:
* Update `omdb` printing
* Update sled-agent to report the new inventory fields
* Update consumers of inventory (tests, reconfigurator planner, one
Nexus RPW) - these all just look at `ledgered_sled_config` for now, but
will need to be updated on #8064 once other fields are populated
* Update database schema, model, and queries (the bulk of the diff).
This requires dropping all preexisting collections, since there's no way
to migrate from just `omicron_zones` to a full `OmicronSledConfig`. The
first few schema migrations take care of this.
Before merging I'll go through an upgrade on a racklette and confirm
things come back up okay after the schema migration blows away all the
pre-update inventory collections. (We think this is fine, but it'd be
good to confirm.) But I think this is close enough that it's reviewable.
Couple other minor changes that came along for the ride:
* Closes#6770 (`inv_sled_omicron_zones` is gone now)
* Fixes#8084 (added `image_source` columns to the inventory zone config
table, so we don't lose `ImageSource::Artifact { hash }` values reported
by sled-agent)
0 commit comments