oxidecomputer / oxidecomputer/omicron
reconfigurator-cli: Add command to "perform" all MGS-driven images on a sled
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
For our reconfigurator-cli simulated system, we have some shortcut commands that make multiple changes at once like
# change the zone manifest to match a TUF repo
sled-update-install-dataset $SLED --to-target-release
# change the OmicronSledConfig to match a blueprint
sled-set serial0 omicron-config $BLUEPRINT
But we don't have a good way of updating all the MGS-driven images on a sled, so today if we need to do that, we have to spell out each update individually. This has come up on both https://github.com/oxidecomputer/omicron/pull/9044#discussion_r2395283630 and https://github.com/oxidecomputer/omicron/pull/9108#discussion_r2402398278. Maybe something like
sled-update-mgs-driven-images $SLED --to-target-release
that would do the equivalent of
sled-update-rot-bootloader $SLED --stage0 1.0.0
sled-update-rot $SLED --slot-a 1.0.0
sled-update-rot $SLED --slot-b 1.0.0
sled-update-sp $SLED --active 1.0.0
sled-update-host-phase1 $SLED --slot-a b99d5273ba1418bebb19d74b701d716896409566d41de76ada71bded4c9b166b
sled-update-host-phase2 $SLED --boot-disk A --slot-a d944ae205b61ccf4322448f7d0311a819c53d9844769de066c5307c1682abb47
(with appropriate choices for versions, hashes, and maybe active slot / boot disk?).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the reconfigurator-cli entry point and compare the existing sled-update-* commands listed in the issue. Trace how target-release versions, hashes, active slots, and boot disks are selected, then define the combined command's expected behavior. Done means one command performs all applicable MGS-driven image updates with appropriate choices.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100