[sled-agent] Persist omicron-zones.json
before bringing up zones
#5086
Labels
enhancement
New feature or request.
Sled Agent
Related to the Per-Sled Configuration and Management
Update System
Replacing old bits with newer, cooler bits
Milestone
Currently when sled-agent receives an omicron_zones_put it calls omicron_zones_ensure which creates datasets and brings up zones before
omicron-zones.json
is persisted to the ledger. If a sled reboots before persistence, we'll end up coming up with the oldomicron-zones.json
and start launching old zones. We believe this is technically safe, because inventory collection will read the oldomicron-zones.json
and the blueprint executor will redeploy the new zones on the next activation.While safe, this pattern is "backwards" from what is normally done in distributed systems. Typically you persist the intended state and then go about realizing it. That's what we'd like to do here. We could then also have the inventory collection see which zones are actually up in addition to reading
omicron-zones.config
.@davepacheco proposed this path forward:
The text was updated successfully, but these errors were encountered: