Skip to content

[sled-agent-config-reconciler] Add separate OmicronDatasets type #8218

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

Open
wants to merge 4 commits into
base: john/sled-agent-config-reconciler-2
Choose a base branch
from

Conversation

jgallagher
Copy link
Contributor

This is more consistent with how the reconciler remembers zones and disks. This is almost all just moving code around. The only nontrivial changes are:

  1. In the spot where we ought to delete datasets, we at least "forget" them in-memory and log an error about leaking the ZFS dataset
  2. The dataset serialization task remembers fewer details about datasets it ensured (just the names - that's all we need for the error checking it does when dealing with nested datasets)

Staged on top of #8064. PR 1 of 3 working towards #8173.

This is more consistent with how the reconciler remembers zones and
disks. This is almost all just moving code around. The only nontrivial
changes are:

1. In the spot where we ought to delete datasets, we at least "forget"
   them in-memory and log an error about leaking the ZFS dataset
2. The dataset serialization task remembers fewer details about datasets
   it ensured (just the names - that's all we need for the error
   checking it does when dealing with nested datasets)
… starting zones (#8219)

This dramatically reduces the work that
`ServiceManager::start_omicron_zone()` does by moving most of it to the
config-reconciler:

* Moved: shutting down existing zone of the same name
* Moved: checking for time sync
* Reworked: checking datasets and choosing a root zpool (now checks are
performed against the most-recently-reconciled `DatasetConfig`s, and we
never choose a root zpool since all zones have a property specifying
which they should use)

Builds on #8064 + #8218.

Fixes #8173.
@jgallagher
Copy link
Contributor Author

(The diff on this has grown because it now includes #8219, #8220, and #8266, each of which was reviewed independently.)

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.

2 participants