oxidecomputer / oxidecomputer/omicron

Tracking issue for configs that could cross version boundaries

Open
#3,704 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

https://github.com/oxidecomputer/omicron/issues/3703 and https://github.com/oxidecomputer/omicron/issues/3407 are related to this.

It would be nice to have an EXPECTORATE tool for validating the formats of the following configs, and ensure we don't unintentionally introduce breakages while upgrading the sled agent or related components.

  • https://github.com/oxidecomputer/omicron/pull/3715
    • Service ledger - services.toml (stored in the config dataset to allow the sled agent to re-instantiate services)
    • Zone bundle Metadata - metadata.toml (stored in the config dataset to track debug bundles)
    • Nexus's configuration file, which is processed and created by the sled agent - (constructed dynamically while creating the Nexus zone)
    • The bootstrap's notion of "how to launch the sled agent" - sled-agent-request.toml
    • The Rack Setup Service's sled and service plans: rss-sled-plan.toml, rss-service-plan.toml
  • Bootstore config: bootstore-fsm-state.json
  • Bootstore config: bootstore-network-config.json

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 by reading bootstore-fsm-state.json and bootstore-network-config.json, then review related issues 3703 and 3407 for the compatibility requirements. Done means both remaining bootstore formats are validated across version boundaries and unintended upgrade breakages are covered by the resulting checks.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
infrastructure, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.