oxidecomputer / oxidecomputer/omicron

Blueprint planner: gate zone adds and updates on boot disk host phase 2 being at a known version

Open
#8,918 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

Followup from https://github.com/oxidecomputer/omicron/issues/8726.

For the initial implementation we're just checking that all zone image sources are at known versions. In principle, we should also check that the boot disk's host phase 2 image is a known version. (We don't care as much about the non-boot disk.)

The problem with doing this check today is that:

  • The blueprint doesn't currently cache information about which disk is the boot disk.
  • Inventory does have this information, but if a sled isn't in inventory (due to, say, a transient network error), we won't have this information.

For now, we assume that if all zone image sources are at known versions, the host phase 2 image is also most likely at a known version. But this is a somewhat fragile assumption, so we should fix it properly at some point (maybe by caching the last known boot disk for a sled in the blueprint).

Note that the host phase 1 and phase 2 images are already coupled with each other, so checking that host phase 2 is known is equivalent to checking that both host OS phases are known.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the follow-up issue #8726 and the blueprint planner's existing checks that zone image sources have known versions. Trace how blueprint and inventory data represent a sled's boot disk, then define a way to retain or obtain that information when inventory is unavailable; done means boot disk host phase 2 is checked without relying on the fragile zone-source assumption.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend, operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.