Skip to content

Introduce sled-agent-scrimlet-reconcilers crate#10313

Open
jgallagher wants to merge 7 commits intomainfrom
john/scrimlet-reconcilers-1
Open

Introduce sled-agent-scrimlet-reconcilers crate#10313
jgallagher wants to merge 7 commits intomainfrom
john/scrimlet-reconcilers-1

Conversation

@jgallagher
Copy link
Copy Markdown
Contributor

@jgallagher jgallagher commented Apr 23, 2026

This is groundwork for #10167, and introduces the skeleton of network config reconcilers for use within sled-agent. None of this is wired up yet and all the service-specific reconcilers are placeholders, but it does have the real setup for how these tasks get started and how they report status.

The PR is pretty big but hopefully not too bad to review; more than half the code falls into either "tests", "status type definitions", or "placeholder/dummy reconcilers". A tentative suggestion for review order is:

  1. The crate-level docs in lib.rs; these are written assuming Tracking issue: Moving system-level networking reconciliation from Nexus to sled-agent #10167 is complete, not based on the current state of the crate.
  2. handle.rs, particularly ScrimletReconcilers - this is the entry point for sled-agent. It will hold a ScrimletReconcilers in its set of long-running tasks.
  3. reconciler_task.rs - this implements the common control flow for all of the service-specific reconcilers in the crate; handling periodic reactivation, activation when the config changes, transitioning to inert if we stop being a scrimlet because the sidecar goes away at runtime, and transitioning out of inert if it comes back.

The only production-affecting change here is that the ThisSledSwitchZoneUnderlayIpAddr type moved out of sled-agent and into this crate, so sled-agent depends on this crate just for that type. Edit: As of #10340, ThisSledSwitchZoneUnderlayIpAddr has moved to sled-agent-types, so now this PR uses it from there and makes no changes to sled-agent proper.

@rcgoodfellow rcgoodfellow added the networking Related to the networking. label Apr 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

networking Related to the networking.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants