Skip to content

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.

jgallagher added a commit that referenced this pull request Jun 4, 2025
… 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.)

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 jgallagher force-pushed the john/sled-agent-config-reconciler-datasets-refactor branch from 6ea36d1 to 99d71c5 Compare June 9, 2025 12:28
@jgallagher jgallagher merged commit d811bda into john/sled-agent-config-reconciler-2 Jun 10, 2025
17 checks passed
@jgallagher jgallagher deleted the john/sled-agent-config-reconciler-datasets-refactor branch June 10, 2025 12:35
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.

3 participants