oxidecomputer / oxidecomputer/omicron

need a built-in "factory reset" (clean slate)

Open
#10,794 1 comment 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

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

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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.