Skip to content

[sled-agent] Don't implicitly create datasets when launching zones #8173

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
jgallagher opened this issue May 15, 2025 · 0 comments
Open

[sled-agent] Don't implicitly create datasets when launching zones #8173

jgallagher opened this issue May 15, 2025 · 0 comments

Comments

@jgallagher
Copy link
Contributor

We should fix this either as a part of landing sled-agent-config-reconciler (#8064) or shortly thereafter.


This requires invasive changes in ServiceManager. I left this comment as a breadcrumb:

// TODO-cleanup This is implemented by
// `ServiceManager::start_omicron_zone()`, which does too much; we should
// absorb some of its functionality and shrink this interface. We definitely
// should not need to pass the full list of U2 zpools.

I think what ought to happen is:

  • start_zones_if_needed takes the current set of dataset ensure results (or the most recent one, if we failed to contact the dataset task; I think this is still okay)
  • start_zones_if_needed checks the result of ensuring the zone's filesystem_pool and (if relevant) durable dataset, and refuses to start the zone if the dataset failed to ensure
  • if the dataset(s) did ensure successfully, it calls out to ServiceManager, but no longer passes all_u2_pools; instead, ServiceManager should use the specific datasets the zone config specifies instead of choosing on its own and/or creating them with no quota if they don't exist

Originally posted by @jgallagher in #8162 (comment)

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

No branches or pull requests

1 participant