oxidecomputer / oxidecomputer/omicron

Adding a sled uses the rack ID of the associated Nexus

Open
#7,980 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

multi-rack
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

Converting this TODO into an issue:

https://github.com/oxidecomputer/omicron/blob/aeb27f08c883c04360883fbb9ffd5f1222ceeede/nexus/src/app/sled.rs#L51-L52

When the sled-agent registers itself with Nexus, it winds up in this API call. The rack ID of the sled itself (which the sled-agent knows) is not included in the API call. Nexus instead uses its own rack ID. That's fine today, but won't work in a mulitrack scenario, unless the DNS lookup the sled-agent does ensures the call goes to a rack-local Nexus. We could also include the rack ID of the sled in the request, and there are also probably other solutions as well.

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 at nexus/src/app/sled.rs lines 51-52 and trace the API call made when sled-agent registers with Nexus. Determine how rack identity is currently selected and evaluate the issue's multirack concern before choosing a solution. Done means sled registration uses the correct rack identity in a multirack deployment.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.