Skip to content

[draft] Feature branch: add sled-agent-scrimlet-reconcilers#10441

Draft
jgallagher wants to merge 1 commit into
mainfrom
john/feature-sled-agent-scrimlet-reconcilers
Draft

[draft] Feature branch: add sled-agent-scrimlet-reconcilers#10441
jgallagher wants to merge 1 commit into
mainfrom
john/feature-sled-agent-scrimlet-reconcilers

Conversation

@jgallagher
Copy link
Copy Markdown
Contributor

Feature branch to build up the initial implementation of the sled-agent-scrimlet-reconcilers crate. Contains these PRs:

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 #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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant