oxidecomputer / oxidecomputer/omicron
Adding a sled shouldn't require operators to go through the mupdate recovery workflow
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
When adding a sled to a rack, we first mupdate the sled to match the current target release. This means when we add the sled to the rack, Reconfigurator detects that a mupdate has occurred, which then requires the operator to go through the system_update_recovery_finish() Nexus endpoint (which is more typically used to recover from a full-system mupdate).
With some care, Reconfigurator should be able to detect "we've found a sled that has been mupdated to the current target release", and in that case, not bump the blueprint's min target release generation and therefore not require the operator to go through the update recovery process.
In the fullness of time, we've discussed Nexus driving the mupdate of a sled being added to the rack. This seems like a (necessary?) stepping stone to that world, and it would make the add sled process meaningfully smoother today.
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 by tracing Reconfigurator's sled-add path and how it detects a prior mupdate, then review the interaction with the system_update_recovery_finish() Nexus endpoint. The change is done when a sled mupdated to the current target release can be added without bumping the blueprint's minimum target release generation or requiring update recovery.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100