oxidecomputer / oxidecomputer/omicron
need a built-in "factory reset" (clean slate)
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
Oxide currently has at least four different "clean slate" scripts:
- one used by support
- one in rkadm
- one in a branch of rkdeploy that's currently deployed and used for production systems
- one in meta
These are all inconsistent. This speaks to the need for having a single implementation that can be shared. We've long talked about having something like this in Wicket.
Relatedly: 3 of these have a bug in which they do not wipe the update dataset, which absolutely needs to be wiped. This has resulted in a significant customer issue. This suggests another thing that's been mentioned before, which is that it would be better if the clean slate script had an allow-list of things not to wipe rather than only wiping specific, known directories and files. (Even better would be to reconstruct the pool from first principles, but I don't know if that's feasible.)
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
Compare the clean-slate.sh implementations in customer-support and rkadm with the deployed rkdeploy version and the meta/engineering/rack-support/clean-slate.adoc guidance. Determine the Wicket entry point and the required wipe policy, including the update dataset. Done means a single shared factory-reset implementation replaces the inconsistent scripts and reliably preserves only explicitly allowed data.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust, shell
- Domain
- infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100