Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[bootstrap agent] Should expose an API for the RSS to call, to initialize the Sled Agent #821

Closed
Tracked by #824
smklein opened this issue Mar 28, 2022 · 1 comment · Fixed by #904
Closed
Tracked by #824
Assignees
Labels
bootstrap services For those occasions where you want the rack to turn on

Comments

@smklein
Copy link
Collaborator

smklein commented Mar 28, 2022

... and also identifying which /64 to use for this particular sled

@smklein smklein added the bootstrap services For those occasions where you want the rack to turn on label Mar 28, 2022
@smklein smklein self-assigned this Mar 28, 2022
@smklein
Copy link
Collaborator Author

smklein commented Mar 28, 2022

This relates to #443 , as it'll be a necessary step of establishing that /64

smklein added a commit that referenced this issue Apr 19, 2022
… allocate sled /64s (#904)

## Bootstrap Agent

- Stop relying on the "Unspecified" address for bootstrap addrs - instead, follow the advice of RFD 63, and **allocate addresses explicitly based on the physical link MAC address**. Admittedly, RFD 63 suggests using the SP MAC, but the physical link MAC is the one we have today.
  - Re-work some of the link-local multicast code, **ensuring that the sender address properly advertises the bootstrap address, rather than an unspecified interface**. Provide an integration test (illumos-only) to validate that this works how we want it to work - at least, until integration with Maghemite progresses far enough that multicast can be removed.
- Avoid launching the Sled Agent "by default" - instead, **keep the sled agent uninitialized until explicitly requested, alongside a whole `/64` for which it should be responsible**. Store configuration data to local storage within `OMICRON_CONFIG_PATH` to automatically launch these agents on reboot, after RSS setup.
- Provide a `PeerMonitorObserver` structure that may be used to **await the notification of new peers** within the bootstrap agent.

## Sled Agent

- Acquire initial address from subnet, avoid blocking on Nexus notification during setup.

## RSS

- **Await the appearance of enough bootstrap agent peers** before sending requests. This emulates an operator "seeing enough sleds come up" before deciding to initialize the rack.
- **Allocates subnets** based on an arbitrary initial order of peers (presumably Nexus will take over this allocation later on).

## Configs (mostly in `smf/`)
- **Adjust all addresses** to be within the subnet of the first sled. Also, condense the range of IPv6 addresses we're using for hardcoded stuff.
- **Remove the explicit addresses** for the "bootstrap_agent" and "sled_agent" - these should be inferred at runtime.

Fixes #821
leftwo pushed a commit that referenced this issue Dec 4, 2024
Skip jobs when reinitializing to `Faulted` (#1583)
Clear `repair_check_deadline` if repair is successfully started (#1581)
Update rust-version reqs to reflect reality (#1580)

Propolis:
60886290 update nvme-trace.d to match current probe definitions (#821)
8e5693bf Fix clippy lints for Rust 1.83
leftwo added a commit that referenced this issue Dec 4, 2024
Crucible:
Skip jobs when reinitializing to `Faulted` (#1583)
Clear `repair_check_deadline` if repair is successfully started (#1581)
Update rust-version reqs to reflect reality (#1580)

Propolis:
Update nvme-trace.d to match current probe definitions (#821) 
Fix clippy lints for Rust 1.83
PHD: use stty to widen the effective terminal for Linux guests (#818)

Co-authored-by: Alan Hanson <alan@oxide.computer>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bootstrap services For those occasions where you want the rack to turn on
Projects
None yet
1 participant