oxidecomputer / oxidecomputer/omicron

How flexible should sled-agent be in terms of environment / gimlet support?

Open
#2,510 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Today, you can run sled-agent on a real gimlet or a variety of other underlying hardware (or VMs), and it detects at runtime whether it thinks it's running on a real gimlet. This can lead to some odd failure modes; for example, if sled-agent runs on a real gimlet that has not been programmed (or reading the VPD has failed), sled_hardware::is_gimlet() will return false, which will lead to underlay::find_chelsio_nics() to look for net0/net1 devices instead of the real chelsio devices.

I'm not sure what action should be taken here, exactly. Maybe sled-agent should have more compile-time configuration and less runtime configuration? Maybe the runtime configuration is okay, at least for the near term?

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 with sled-hardware/src/illumos/mod.rs at sled_hardware::is_gimlet() and sled-hardware/src/underlay.rs at underlay::find_chelsio_nics(). Trace how sled-agent selects its environment and hardware paths, then review the issue discussion for constraints. Done means an agreed configuration approach and a defined resolution for the unprogrammed-gimlet and VPD-read-failure cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
embedded-iot, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.