Skip to content

nexus: use debug dropbox to save Reconfigurator state - #10306

Merged
davepacheco merged 32 commits into
mainfrom
dap/blueprint-archive-nexus
Aug 25, 2026
Merged

davepacheco merged 32 commits into
mainfrom
dap/blueprint-archive-nexus

Conversation

@davepacheco

Copy link
Copy Markdown
Collaborator

Part of #7278.

@davepacheco
davepacheco force-pushed the dap/blueprint-archive-nexus branch from ce37d0b to aefe883 Compare April 22, 2026 02:44
Comment thread Cargo.toml Resolved
@davepacheco
davepacheco requested a review from jgallagher April 22, 2026 02:44
@davepacheco

Copy link
Copy Markdown
Collaborator Author

This is ready for review. I'm leaving it "draft" so I don't accidentally land it with the Cargo.toml change unfixed.

@jgallagher jgallagher left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - only one real concern and a few nits.

Comment thread nexus/src/app/deployment.rs Resolved
Comment thread nexus/src/app/deployment.rs Resolved
input,
vec![(*collection).clone()],
vec![(*parent).clone(), blueprint.clone()],
target,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will it be confusing if we persist a state claiming this new blueprint is the target, but then fail to make it the target and fail to remove it because sled-agent already slurped it up? We've now archived a state file that claims a blueprint was the target when it never was.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, we wound up discussing this here: #10307 (comment)

The only way I can think to improve this is to change the file format so that instead of storing the hopeful target here as the current target, we have a new optional field called blueprint_target_hopeful or something whose semantics are "the blueprint that we're trying to make the target right after we write this file". That would be more precise and accurate and would avoid being misleading.

Then the question is: what do we do with this? If you load this file into reconfigurator-cli either by itself or as the last one in a sequence (which would almost always be the case), then the CLI could either fail ("cannot load a file with an ambiguous target blueprint"), require you to say what you want ("you must specify if you want the loaded state to reflect the target blueprint when this state file was written or the blueprint that we hoped was the target immediately after it"), or pick one and warn you ("assuming that the hopeful target is the target, but beware that it's possible that it wasn't"). If we punt it to the human, what are they going to do? I imagine they'll ignore the warning if they can or else pick the hopeful target because that's pretty likely to be the right one. If all this is correct, I'm not sure it's worth doing any of this work because the end result is the same (although maybe the person has a chance of being more aware of this unusual case?).

Another option would be to add that "hopeful" field as above, but write two files whenever we change the target:

  • The first one is written after we create the new blueprint but before we make it the target. It's called autoplanner-intent or something. The target field reflects the old target (so it's not misleading) and the new hopeful field points to our new blueprint.
  • The second one is written after we make the new blueprint the target. It's called autoplanner-commit or something. The target field points to the new blueprint and the new hopeful field is None.

After we write the commit one, we could attempt to remove the intent one, since it would be superfluous.

Then when debugging, you'd generally have a whole bunch of "commit" files and occasionally an "intent" one, either because it was archived during the brief window before it was removed or else because Nexus actually crashed shortly after creating it.

Again: what would we do with this information? We'd still have to make the above changes to reconfigurator-cli. Namely, when it needs to determine the target blueprint from a file, and the hopeful field is set, then it either needs to pick one and warn the user or else make the user choose one or the other. The only difference (maybe a big one?) is that this would be much less common -- it would only come up if the latest file a person loaded was an "intent" file rather than a "commit" one.

I'm on the fence about whether any of this is worthwhile. What do you think?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I went ahead and implemented the multi-file approach. In both the planner and the internal API, when we set a new target, we:

  • generate and save an "intent" file that reflects not that we've set the target, but that we're trying to
  • set the target
    • on failure, as before, we attempt to remove the generated file and then bail out
    • on success, we save a second file reflecting that we have set the target and then try to delete the intent file

reconfigurator-cli doesn't do much different except warn you if it finds that the latest file has this intent property set so that you know.

I wouldn't say I love the implementation, but it has the runtime properties we want:

  • we should always have debug data for every time the blueprint changes (unless we have a permanent sled failure or something like that)
  • the file is not misleading about the current state
  • minimized noise in terms of spurious files (there will be some intent files that get archived before they get cleaned up, but it will be clear that they don't reflect real system state)

@davepacheco

Copy link
Copy Markdown
Collaborator Author

Okay, this has changed quite a bit after adding tests that the files get created when we want them to be. I'd recommend doing a full re-review (sorry).


This PR contains a few different changes that could theoretically be separated, but I'm keeping them together for practical reasons and because none of them makes sense to land on main on its own without a consumer:

  • add debug dropbox itself to Nexus and the test framework
  • update the state file format to include the new intended_target_blueprint field (including change to read_series)
  • add a helper type specifically for writing out "set target" state files (first an intent file, then a commit file)
  • update the autoplanner and the API endpoints to use this helper to write these state files
  • add TestTempDir helper in omicron-test-util (I've wanted this a lot and re-implemented it a few times I think)
  • add dropbox-related test helpers to omicron-test-util

I can separate some out if it's useful but it seems weird for example to land these helpers that aren't used, or even to review them separately from where they're used since their shape depends on what we're doing with them.

There is one fix here that's pretty unrelated and I'm going to see if I can pull that out.

@davepacheco

Copy link
Copy Markdown
Collaborator Author

I pulled that fix out into #11125 (and it turns out that was a bug I only hit while developing one of the tests here -- it doesn't actually break anything here).

@davepacheco

Copy link
Copy Markdown
Collaborator Author

This is finally ready for re-review.

Comment thread test-utils/src/dev/mod.rs Outdated
/// Temporary directory used for tests
///
/// Unlike typical temporary directories, this one is preserved by default, but
/// cleaned up on `Drop` if the caller invokes `cleanup_successful()`. The

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure this matters much since cleanup_successful() takes ownership of self, but reading this I assumed cleanup_successful() was setting something that Drop read when deciding whether to clean up. It's actually cleanup_successful() that does the cleanup though, right?

Suggested change
/// cleaned up on `Drop` if the caller invokes `cleanup_successful()`. The
/// cleaned up if the caller invokes `cleanup_successful()`. The

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

},

/// We've encountered an error and will be ignoring subsequent operations.
Failed(#[cfg_attr(not(test), expect(dead_code))] anyhow::Error),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The cfg_attr here is because nothing ever reads the error outside of tests? Do we need to keep the error at all, then, or could this be just Failed with no associated data?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We read the specific error in the tests, and I think that's fairly important in order to have confidence that we're testing what we think we are. If you're asking if we could only have the anyhow::Error under cfg(test), yes, but that would require sprinkling cfg(test) in a lot more places that seemed worse to me on net. I'll take a look though.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ehh if it's painful I wouldn't worry about it. Maybe a short comment explaining the choice is fine too?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

Comment thread nexus/src/app/deployment.rs Outdated
datastore,
planning_context.planning_input,
IdOrdMap::from_iter([inventory]),
IdOrdMap::from_iter([blueprint.clone()]),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this include the parent blueprint too? If we write the intent file but not the final one, we'll have written a file that doesn't include the current target blueprint. I don't think reconfigurator-cli will load that on its own, right?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

Comment thread nexus/src/app/deployment.rs Outdated
..intent_state
};

// unwrap(): we checked this in `SetTargetDebugFile::new()`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit:

Suggested change
// unwrap(): we checked this in `SetTargetDebugFile::new()`.
// unwrap(): we checked this in `SetTargetDebugWriterReady::new()`.

However, I'm not sure this is technically true: we checked that the intended target blueprint was present in SetTargetDebugWriterReady::new(), but there's no guarantee here that the new_target we've been given by the caller actually matches that, right?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, that's accurate. I considered checking for that case but intended to handle it -- but forgot about this unwrap() in the editing. I've updated this to log an error and stop in this case.

.expect("autoplanner should have created new blueprint within 60s");

let files = dropbox.load_new::<UnstableReconfiguratorState>();
assert_eq!(files.len(), 1);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this racy with the wait_for_condition above? The planner makes the new blueprint the target (any point after which we can get here), and then calls write_committed() to emit the final state file. So here we could see either of these in addition to what the test expects:

  • just the intent file (if we land in between the db query and write_committed())
  • both the intent file and the final state file (if we land in between depositing the final state file and cancelling the intent file)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch. I've inserted a call to wait for another activation to finish. (That's more than we need, but it didn't seem worth adding another helper.)


// Case: autoplanner produces no files when it doesn't generate a new
// blueprint.
let _ = run_blueprint_planner(&cptestctx.lockstep_client).await;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to check the return value here? If the planner failed we'd have an empty dropbox, but that's obviously not the intent of the test

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

pub async fn write_committed(
self,
new_target: BlueprintTarget,
commit_reason: BlueprintDebugAction,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it sensible/meaningful for a caller to pass different reasons to write_intent() / write_committed()? If not, should we take a single reason on construction instead?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For context, BlueprintDebugAction is really an abstraction (if you can call it that) over the final filename. All it's used for is to determine what the file should be called, and that's just so that people can tell at a glance when they have a bunch of files what they represent (e.g., "the autoplan run that generated X" vs. "the time an operator set the target blueprint to Y").

Today, there are two paths through this helper:

  • The autoplanner passes AutoplanIntent for the intent file and then Autoplan for the commit one.
  • Setting the target via the internal API passes TargetIntent for the intent file and then Targetfor the commit one.

So to answer your question: yes, you'd always be expected to pass different reasons to these functions. But these functions don't care about that. They treat the argument like a "filename" argument and let the caller decide.

I'm not sure if this is where you're going, but there are things not checked here by the compiler that in principle could be. Most obviously, you could pass AutoplanIntent and then Target or the other way around. Or you could pass Plan. (Plan is a fifth variant that's used when you use the internal API to re-run the planner but aren't setting the new blueprint as the target. There's no need for an intent file in that case and it does not go through this helper.) The way I'd phrase this is that the way this is implemented today, the filenames are fully the responsibility of the caller. This helper just uses whatever it's given. It doesn't know or care that there are only two callers, with two corresponding pairs of BlueprintDebugAction.

If we wanted to improve this, the obvious thing would be to define something like this:

/// who/what is setting the target
enum SetTargetWhy {
    Autoplanner,
    /// the "set target" internal API
    SetTarget,
}

impl SetTargetAction {
    fn intent_action(&self) -> BlueprintDebugAction { .. },
    fn commit_action(&self) -> BlueprintDebugAction { .. },
}

I didn't like this for two reasons: combined with the existing enum, it felt like a lot of boilerplate and conceptual overhead just for the purpose of naming the file usefully; and it felt too much like having an argument called "which of my two callers are you so that I can do the right thing for you", rather than letting the callers just specify what it is they want. I don't have a strong feeling about it.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ahh, gotcha. Sorry, I should've looked more closely at the callers. That all sounds perfectly reasonable.

// potentially debug the planning choices we made. The details of
// writing out the files are handled by `SetTargetDebugWriter`.
//
// The part of the process is best-effort. If any of it fails, we'll

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// The part of the process is best-effort. If any of it fails, we'll
// This part of the process is best-effort. If any of it fails, we'll

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

Comment thread nexus/types/src/deployment.rs Outdated
pub target_blueprint: BlueprintTarget,
/// If non-`None`, then this file was created as the system was attempting
/// to make this blueprint the new target
// We use `serde(default)` to supporting deserializing older-format state

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// We use `serde(default)` to supporting deserializing older-format state
// We use `serde(default)` to support deserializing older-format state

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

target_blueprint: BlueprintTarget,
intended_target_blueprint: Option<BlueprintUuid>,
) -> Result<UnstableReconfiguratorState, anyhow::Error> {
// It's also useful to include information about any DNS generations

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit - this comment sounds slightly weird now that it's the first line of a new function

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ha, good call.

@davepacheco

Copy link
Copy Markdown
Collaborator Author

This PR and #10308 changed a lot since my last end-to-end test on a racklette so I wanted to repeat that. Here's what I did:

  • Set up dublin on commit 20972ea (including mupdate recovery). This is the commit from main where sled agent: archive data from debug dropbox #10308 landed. It does not have these changes.
  • Did a self-service update to commit 9e93a2e (second-to-last commit on this branch)
  • Did a self-service update to commit aa0e334 (tip of this branch)
  • Ran the planner by hand (with the API) and set the blueprint as the new target
  • Ran through the export/plan/import path

Both of those last two commits have the changes in this branch. So what we'd expect is:

  • We'd initially have no archived debug files (same as main today).
  • We'd start getting archived debug files after Nexus handoff during the first update.
  • We'd have a complete set of debug files for the second update.
  • We'd expect almost no "intent" files, since they usually get cleaned up, though we might have a few.
  • We'd be able to load the complete set into reconfigurator-cli and run blueprint-history to see the same output that we'd get from omdb reconfigurator history, at least going back to the first blueprint written after Nexus handoff during the first update.
  • We'd see no warnings or other worrying log messages in the sled agent logs from the archival system nor from the Nexus logs around saving these files out.

tl;dr: all that matched what I found.

Note: many of the commands below use the --resolve flag on the CLI because the lab DNS config hadn't been updated to use the rack's external DNS servers.

Test process

Details

Initial state:

[dublin]root@oxz_switch1:~# omdb nexus update-status
note: Nexus URL not specified.  Will pick one from DNS.
note: using DNS from system config (typically /etc/resolv.conf)
note: (if this is not right, use --dns-server to specify an alternate DNS server)
note: using Nexus URL http://[fd94:3d68:8dce:102::5]:12232
Count of each component type by system version:

                  |install-dataset |unknown
------------------+----------------+--------
RoT bootloader    |0               |7
RoT               |0               |7
SP                |0               |7
Host OS (phase 1) |0               |4
Host OS (phase 2) |0               |4
Zone              |61              |0

Performing MUPdate recovery:

dap@ivanova ~ $ oxide --profile recovery --resolve recovery.sys.dublin.eng.oxide.computer:443:172.20.36.4 system update recovery-finish --system-version 23.0.0-0.ci+git20972eac927

I'm not sure I'd done this before. I saw some intermediate states:

[dublin]root@oxz_switch1:~# omdb nexus update-status
note: Nexus URL not specified.  Will pick one from DNS.
note: using DNS from system config (typically /etc/resolv.conf)
note: (if this is not right, use --dns-server to specify an alternate DNS server)
note: using Nexus URL http://[fd94:3d68:8dce:102::5]:12232
Count of each component type by system version:

                  |23.0.0-0.ci+git20972eac927 |install-dataset
------------------+---------------------------+----------------
RoT bootloader    |7                          |0
RoT               |7                          |0
SP                |7                          |0
Host OS (phase 1) |4                          |0
Host OS (phase 2) |4                          |0
Zone              |0                          |61

To see each individual component, rerun with `--details`.

but it pretty quickly converged as expected:

[dublin]root@oxz_switch1:~# omdb nexus update-status
note: Nexus URL not specified.  Will pick one from DNS.
note: using DNS from system config (typically /etc/resolv.conf)
note: (if this is not right, use --dns-server to specify an alternate DNS server)
note: using Nexus URL http://[fd94:3d68:8dce:102::5]:12232
Count of each component type by system version:

                  |23.0.0-0.ci+git20972eac927
------------------+---------------------------
RoT bootloader    |7
RoT               |7
SP                |7
Host OS (phase 1) |4
Host OS (phase 2) |4
Zone              |61

To see each individual component, rerun with `--details`.

Next, starting a self-service update:

  • "contact_support" is not present in the UI
  • progress currently at 100% (on the mupdate target release)
  • not suspended
dap@ivanova ~ $ oxide --profile recovery --resolve recovery.sys.dublin.eng.oxide.computer:443:172.20.36.4 system update status
{
  "components_by_release_version": {
    "23.0.0-0.ci+git20972eac927": 90
  },
  "contact_support": false,
  "suspended": false,
  "target_release": {
    "time_requested": "2026-08-25T03:37:33.500266Z",
    "version": "23.0.0-0.ci+git20972eac927"
  },
  "time_last_step_planned": "2026-08-25T03:37:38.094005Z"
}

I started the update in the browser.

dap@ivanova ~ $ oxide --profile recovery --resolve recovery.sys.dublin.eng.oxide.computer:443:172.20.36.4 system update status
{
  "components_by_release_version": {
    "23.0.0-0.ci+git9e93a2e5336": 21,
    "23.0.0-0.ci+git20972eac927": 69
  },
  "contact_support": false,
  "suspended": false,
  "target_release": {
    "time_requested": "2026-08-25T03:40:00.026217Z",
    "version": "23.0.0-0.ci+git9e93a2e5336"
  },
  "time_last_step_planned": "2026-08-25T03:40:08.204600Z"
}

It finished after about an hour:

dap@ivanova ~ $ oxide --profile recovery --resolve recovery.sys.dublin.eng.oxide.computer:443:172.20.36.8 system update status
{
  "components_by_release_version": {
    "23.0.0-0.ci+git9e93a2e5336": 90
  },
  "contact_support": false,
  "suspended": false,
  "target_release": {
    "time_requested": "2026-08-25T03:40:00.026217Z",
    "version": "23.0.0-0.ci+git9e93a2e5336"
  },
  "time_last_step_planned": "2026-08-25T04:37:58.094019Z"
}

and everything looks good.

I started a second update that also worked fine:

dap@ivanova ~ $ oxide --profile recovery system update status
{
  "components_by_release_version": {
    "23.0.0-0.ci+gitaa0e33451bd": 90
  },
  "contact_support": false,
  "suspended": false,
  "target_release": {
    "time_requested": "2026-08-25T05:04:22.891958Z",
    "version": "23.0.0-0.ci+gitaa0e33451bd"
  },
  "time_last_step_planned": "2026-08-25T06:00:21.283339Z"
}

I ran the planner by hand and made the new blueprint the target:

[dublin]root@oxz_switch1:~# omdb -w nexus blueprints regenerate
note: Nexus URL not specified.  Will pick one from DNS.
note: using DNS from system config (typically /etc/resolv.conf)
note: (if this is not right, use --dns-server to specify an alternate DNS server)
note: using Nexus URL http://[fd94:3d68:8dce:104::17]:12232
generated new blueprint ec1d0d53-c4e0-44a5-b365-ef234c91d333
[dublin]root@oxz_switch1:~# omdb -w nexus blueprints target set ec1d0d53-c4e0-44a5-b365-ef234c91d333 inherit
note: Nexus URL not specified.  Will pick one from DNS.
note: using DNS from system config (typically /etc/resolv.conf)
note: (if this is not right, use --dns-server to specify an alternate DNS server)
note: using Nexus URL http://[fd94:3d68:8dce:101::19]:12232
set target blueprint to ec1d0d53-c4e0-44a5-b365-ef234c91d333

Now, do the export/import path:

[dublin]root@oxz_switch1:~# omdb reconfigurator export r1.out
note: database URL not specified.  Will search DNS.
note: (override with --db-url or OMDB_DB_URL)
note: using DNS from system config (typically /etc/resolv.conf)
note: (if this is not right, use --dns-server to specify an alternate DNS server)
note: using database URL postgresql://root@[fd94:3d68:8dce:104::4]:32221,[fd94:3d68:8dce:103::3]:32221,[fd94:3d68:8dce:102::3]:32221,[fd94:3d68:8dce:104::3]:32221,[fd94:3d68:8dce:101::3]:32221/omicron?sslmode=disable
note: database schema version matches expected (294.0.0)
assembling reconfigurator state ... done
saving to r1.out ... done
[dublin]root@oxz_switch1:~# ./reconfigurator-cli
generated RNG seed: doubtlessly-intriguing-sturgeon
〉load r1.out
loaded data from "r1.out"
result:
  system:
    using collection 6d1a7b18-2453-4c0a-91ed-493e6d541f56 as source of sled inventory data
    loaded sleds: 68cfed7e-fdb2-4c3b-beef-f2663032cf5c, bbe0267d-b97e-45db-8f60-347fecccebea, d2358ee4-041d-4b21-a303-1d5751faa113, f1ea60d4-48db-406a-8b6e-56d19d1b7f6e
    loaded collections: 0749e7c8-bfb3-4a40-a602-b0735cf19747, 1e99b219-5d1b-429d-8906-77f14d668212, 6d1a7b18-2453-4c0a-91ed-493e6d541f56, 7b1fed22-006d-4389-81fa-dd06caf55a53, cbfcb302-33f1-4dd4-99cb-a8f5183ba02d
    loaded blueprints: 01eb7f0d-6b6b-471f-b937-c7e4cc9c22a7, 08ae55ca-74fa-49aa-bf43-b408012715f8, 0a09d44e-48a9-444a-b864-2233ec3e58d9, 0a82a35e-3e18-4848-89a8-b707fb2ffcd3, 0b2437b8-7a1c-4146-849d-7a95d0a99248, 0d30ae0b-2bae-4538-a95b-9491d31552a9, 0d78f1a1-2e60-44c3-90c1-11d8601ac9a2, 0f0a0de7-ae85-4565-916e-654976b46fb0, 0f1e2755-03b8-4225-803f-66093d738051, 0f7b3d0a-00b2-4a31-9e04-8cdb0df2afae, 10928cf2-b359-4a23-a5e1-a1bce91a16d3, 13b63ff9-df38-4084-8dcc-99db6544a2e2, 14893140-72f0-4534-9da2-0370d3ba6b43, 15322c8c-fa98-4dda-b291-9fa874957404, 16feaafa-2369-4e6c-bed4-1d21823bd3e4, 17281ed1-6e4b-4db4-acfc-83c4fc707f00, 1a5d0adc-2396-4c02-91a6-a7d9a4a61ee6, 1af1a7a1-9c14-4788-8ddf-f414214fe32c, 1b36fdf3-f830-4706-a737-23e6e8284f6e, 1c298c36-7505-4b83-a976-9a19ccc4cd97, 1c86f40d-0bb2-4132-bdb7-3645a29b6c7b, 1cb245f8-6593-450d-b9f2-a06cb8fe7ae0, 1ddaaae9-99af-4a38-adc2-84d5f8030a07, 1f406f84-6d84-4da2-9e3a-f1e1ed04320a, 1f687953-b859-4d9c-a98e-72fc4feb82c9, 238ff65b-a1fd-4994-b981-58cca07c4899, 247d16ae-3e57-4d07-b096-bba645ee3dac, 24a766cb-a18e-41c5-bdc1-34fdff9c525d, 24c8287c-add0-44bf-b832-7539ab2a520f, 25f1eadd-db93-4592-9b71-1730fe05d5fb, 279f2dc7-72ef-46bd-a087-fddcddebaab7, 28b9f385-77ee-448a-89a8-f329aadd7aa7, 28c00543-b081-4387-a2c0-0f5cfe8b84a2, 2a930d11-e042-4c0c-a4e8-c674713aa6f6, 2ccb23a9-2030-4c3a-b3bc-ff652720067c, 2fc8583a-467c-473f-b278-eaa74a25d834, 2fc876cc-5d20-4929-86d2-3cfb99e95ce2, 30a33b35-bcc5-4c2b-b3cb-275396b9662f, 325574a9-0393-40b1-b2d8-9723a581eba9, 3390212e-a86b-4b27-80b5-1b64ce67e602, 3732ad5a-c7ff-4826-aebe-8fade8512805, 37a346da-774c-4e35-baca-66fce2b45aaf, 38d5e415-c133-442a-9173-13d62d2bf050, 3af5a425-307e-44e0-8c4c-9e38244d89be, 3b0d5f8a-2ab7-46c9-b0bf-025549e9007f, 3b3242dc-bed5-4b96-808c-90610cc04e8d, 3b84bb3e-490e-4627-be25-0f85bf36a9ae, 3e7e2303-190b-4d6e-82d3-967ef8a7cad9, 3e93458e-4fd5-4d60-af86-7b32934cbbd0, 3f3ab8cf-76bc-448d-a2e8-90075c8ecf4b, 3fd64d0f-5931-4b95-805c-27871ae28b5d, 4128f41c-0640-428f-8102-eb7a8f07e053, 42bba8f6-ae17-44c1-af8a-a113e96c9a5d, 4421abe1-dc21-46fc-b9f6-01b37362aedf, 44e73634-cb11-4a9e-881c-6c5b8e651296, 46c2a12e-d98c-4720-9f15-e1dea66115a2, 47da793c-f39c-4702-854f-e13edd3d8f99, 4a043990-87c3-4be0-9bdc-557dfa92a48a, 4b06476b-fc9c-4ee0-a912-76630d72fb9d, 4c40a7b3-02c1-402a-b04e-afbd50564970, 4d05b075-0b98-4a10-bd00-55dd158d8638, 4eb8fb94-cd73-4943-a6fb-4d01a71900d1, 52bbde01-9abf-487d-a8b4-02de9fb0c215, 54413ad0-e918-41ad-8002-08733db26790, 5560782c-1e6b-4cba-96b0-7e8c7dc8c5cd, 56ce10cb-e663-4bea-918a-f32d73ee146c, 58e9fcae-3aa0-4321-88ad-7bbd4d717275, 59aea7d0-3f67-4f4c-b78b-e8ac519a6c33, 5acf3ff8-a0b1-46bb-afef-6d0ee31e8051, 5af33bd7-dd0e-4617-b2d1-45588724db84, 6015ef55-df09-44b9-9a09-04e6182f4c17, 6097e4b9-4d2c-40ce-8b18-43d2ce307ac2, 6154f757-332b-43dc-8071-c1712c43c16e, 62741118-f418-4787-999b-2cad16b2b38a, 6568e4d8-7d24-40bf-877a-cfa0be4f32ea, 66e593af-6931-4963-878c-a306c6ec1240, 68b7f74c-81df-470b-a12e-cbfa2e0361ac, 690985a5-d2f8-46f1-a49f-7c732b8db2e6, 6b15c45d-04df-41f5-9e21-e8d61b432109, 6bf964ec-db6e-4b7b-bd5a-cc67e666c885, 6cb9e7c7-ed3a-4ee9-b3c5-48be5c7b688f, 6d63730c-b98b-4773-befc-f2be5a1054f5, 6e082bdf-9cf8-4b1b-a892-266a54a7ce88, 7130857d-e5d2-441c-9e78-add6f2ac2e05, 7214e711-ae8e-4910-8f58-aa2e7640466f, 73033d29-a98b-4ff1-8dd2-b7b4bb3c5885, 73e67746-87c3-4095-9d3b-8302202eecd7, 77b25d96-9f2f-4ba1-9ec2-b66d043f3484, 77cf88ab-e9e9-418f-8ae5-5bc69db97639, 79a60891-f36c-4e22-bdb4-ffaa805e340b, 79e0b6e0-693b-454b-bc7e-b22ee6302aff, 7a227090-d388-48d4-9b9c-5d6c77748589, 7ac24b4f-e40d-4c71-a998-b2fb837b5cfc, 7b1b348b-d177-40c9-9edc-de47df3c11f7, 7bf30df4-ff0b-4de2-a8fd-2ef13bafbb58, 7c8a29b4-c715-4dad-a079-8c55500b0775, 7d1be74b-1cfd-4b6d-9fa7-4d6cee8524f5, 7eea0c45-c2fe-43c4-adff-c8dff552e47c, 806513ac-ed89-40ae-aaa7-d6ab40a6e4fd, 80993263-0308-4e26-b095-7b750301ffaa, 851cba80-3b25-4b99-b3bb-84eab0fdd16c, 85fbbd29-1459-4613-8ca4-af60fa99f415, 872e57ec-3c57-4017-9d30-38e375424f3d, 881880e4-e539-4d5c-a44f-4baee8a79fe9, 88c4c1ef-d790-48f4-9d53-78e2c42d4b06, 88c938c7-4e19-43b9-a44b-c333a449bc3d, 88ed3b48-e588-4b93-bee2-63e96788e57e, 89dd2764-ebae-4de0-a900-6129bbcc8387, 8b1898d7-9929-479b-a0ea-b4c73f78ca3e, 8ccbcb11-c835-4df6-9391-66b8c76beb0a, 8d42d962-1b43-4a69-b743-ba9226f591f7, 8dba0976-7316-4d39-8789-9bb42dd9d6f3, 8eef8dd2-4b61-4a62-ba3c-2240ca4791e5, 9028feaa-a022-4345-8f30-bbfc292bca2b, 90659e33-86b1-45ff-adbc-68150253257a, 91be2991-ef55-499f-8248-8ecf376e3c64, 91fb6708-5b35-4aec-9f3c-c65a2377005f, 91fd92c5-a907-47d4-9f4f-201eddc80acc, 93abb2d6-bc3d-4c83-880b-9e10cfabdbf2, 95881a4b-b73d-4f60-843a-090885524dac, 960ed8a4-ab98-4fcc-a5e1-c52bba1ecbe9, 971b9dc9-3ed6-4d3e-a246-1a1e37bf94db, 992af1c8-9616-4f3c-9fe3-09359828613d, 994a1c10-b4cf-412d-b1c9-58a8b6bd6101, 9b0b0aff-e665-4421-abee-4b3f596c3ec0, 9c781172-6ac4-4d95-82be-776b4495ecc8, 9cb9f888-784b-46c0-b179-20aad70a9fe2, 9d23e71a-a381-4beb-88ec-17247e4c41e1, 9d3c7392-de54-4cee-8e3f-31c520019b3a, 9f3d57e9-9793-4d09-bc88-1589b7117146, 9fc29715-056f-48f0-8116-d43da6fc5001, a0164618-52b9-428a-93a3-799f4a292d15, a082cbbf-8d59-4d3c-a21d-b04bc41477ca, a0b1dd11-303c-496b-a216-4aa94359d5ca, a0e6c19f-0ac9-482d-9021-9d905def725c, a1ae04b8-7053-4efa-b4bc-0e68761b54df, a322c668-8449-459c-be04-e5707f9452c1, a32c4a39-5658-40f3-a53c-d61c0aa80bac, a4cac71f-0e96-4ba7-878f-4e98f0d49b29, a69694b3-725f-464a-8314-321e01ddc1df, a6b9afb3-3838-4458-8b34-fceada10383f, abdffe1b-ba9a-4f44-9227-776e1d377716, afb73193-5f44-4a62-ab80-565575be1004, b032637e-634a-44a7-b764-b583fbd90baa, b22f66d7-b5de-4837-9287-99f8ff1cc960, b37e3e6a-441f-4d06-b533-b940aaa3c4f4, b54ec609-7266-4f78-96bc-92815f868a84, b8e0d2dc-4dc2-4867-80d3-80d8ce0e2238, baecb16a-fa72-4aa3-86e5-0a44b0456c08, bca381c0-b7f1-4cac-84f4-89c7b52b544d, bcd18f5c-978a-40f3-92c0-d2f686331b84, be1243c1-52b1-436d-871d-7ec5ba8d1398, be553998-8a90-4e92-9d2b-9cea6923561c, be742d6a-6638-4ddd-aecc-70f42d93e25f, bee398c7-b83f-4e11-bfb2-bf372acf1911, c1434752-d83f-46b3-8644-c96161b5f025, c2471fea-b0c2-4c10-9707-fed052ee376e, c2f3b6ef-62f4-4f78-88cc-fad42f9e2cb3, caf054b2-5e61-4979-88e2-82456c1565dc, cdcb5ed8-ee46-4cfb-9e12-b3289e402a78, d071fe78-e015-4539-a07c-9ac2f775c2df, d12c9bef-1ce4-4ae8-a2a9-a8428863d414, d2548d6a-ebfe-4aea-a197-20a97222304d, d25f27d1-c7b7-4981-a894-250729644151, d42db72c-1301-4a73-b7e3-52a5a2aef34b, d433d013-9432-4a00-8510-ad342339389b, d4a16e3d-0187-4c0b-97e4-96be09011817, d4e830b0-2116-4810-bbd8-24943d960561, d6a2bdc3-63db-4123-98a3-cb4d838ca0a2, d6b9532b-5550-4246-a7ee-6a3421911c4f, d89c5eb5-c36d-4c47-8e1e-cce4d4e23864, dd8f45e6-c150-4de3-8fcc-b4678e8a554f, ddd24e7f-8e15-43fd-9d03-041127dad04d, deffea70-aec6-40f0-aab0-d6ba2cc3f5e2, df6aa33d-4f87-4393-b236-6f6edf95b9bc, e5fa77ff-5bdf-440c-9bfb-00eb3ecc8029, e60f9767-0b1f-459a-956a-3eda2c318d73, e628b0f4-9f48-4d73-aee9-e1f5d4617962, e6cf3cc1-754c-4837-96de-49e9fc4ea4d4, e7553e0d-352c-4bd6-a6f0-a56bd6b75fb1, e7614960-ba8a-4115-9917-864dc967a8b8, e841748a-23c5-4573-a684-89b58e7f33ab, e894cc2d-74ea-4f55-9283-65ee06f58df2, ec1d0d53-c4e0-44a5-b365-ef234c91d333, ec5599ea-f21e-4c0d-9409-85a6c91a5e3a, ec8e8149-e986-4b64-a0b3-51c36a602af4, ecef230b-6c74-433f-af17-206540a7502b, f10a20a0-f791-40d8-87b9-5ec6ef88f96a, f70c9551-df0f-45e6-98ad-277b76110d44, fa4b5e13-ee26-424d-b44f-604e0977b750, fab79c2f-3706-41d6-b20a-ca5ff6d447ac, fec3a027-1fc0-4a4e-b1f9-b3b6e49c62dc
    loaded external IP policy: ExternalIpPolicy { service_pool_ipv4_ranges: [Ipv4Range { first: 172.20.36.1, last: 172.20.36.16 }], service_pool_ipv6_ranges: [], external_dns_ips: {172.20.36.1, 172.20.36.2, 172.20.36.3} }
    loaded cockroachdb settings: fingerprint = d4d87aa2ad877a4cc2fddd0573952362739110de, version = 22.1, preserve downgrade = 22.1
    loaded internal DNS generations: (none)
    loaded external DNS generations: (none)
  config:
    configured external DNS zone name: dublin.eng.oxide.computer
    configured silo names: default-silo, recovery
    active Nexus generation: 3

〉blueprint-history
TIME                     BLUEPRINT
... (earlier history omitted)
2026-08-25T04:32:12.656Z d6a2bdc3-63db-4123-98a3-cb4d838ca0a2 updating Crucible zone 9d4d7ae5-36c4-44d7-8616-2294d90f4941 in-place
2026-08-25T04:32:24.438Z 6cb9e7c7-ed3a-4ee9-b3c5-48be5c7b688f expunge InternalDns zone afcb65cf-f175-4cce-b4d7-1f77e5088ca6 for update
2026-08-25T04:32:24.977Z 7c8a29b4-c715-4dad-a079-8c55500b0775 expunge CruciblePantry zone b2d67554-e3f1-4858-a55e-7428fecc5ae9 for update
2026-08-25T04:32:25.322Z b22f66d7-b5de-4837-9287-99f8ff1cc960
2026-08-25T04:32:31.203Z 3b84bb3e-490e-4627-be25-0f85bf36a9ae
2026-08-25T04:32:49.931Z 28b9f385-77ee-448a-89a8-f329aadd7aa7
2026-08-25T04:33:00.654Z e841748a-23c5-4573-a684-89b58e7f33ab expunge ExternalDns zone c3ca238b-678b-4334-8508-7deb1c117e59 for update
2026-08-25T04:33:01.431Z 8dba0976-7316-4d39-8789-9bb42dd9d6f3
2026-08-25T04:33:07.695Z 8eef8dd2-4b61-4a62-ba3c-2240ca4791e5
2026-08-25T04:33:14.843Z 0d30ae0b-2bae-4538-a95b-9491d31552a9 updating Crucible zone cba18b0c-bc7d-41eb-8c31-13a3fd189ecf in-place
2026-08-25T04:33:28.116Z 91fb6708-5b35-4aec-9f3c-c65a2377005f updating Crucible zone d6c56c03-2597-4b6a-8e8d-0e34f0efd4b3 in-place
2026-08-25T04:33:42.685Z 1a5d0adc-2396-4c02-91a6-a7d9a4a61ee6 updating Crucible zone f2d56791-410b-48e6-8ca9-dfc2f984135c in-place
2026-08-25T04:33:54.043Z 0b2437b8-7a1c-4146-849d-7a95d0a99248 updating Crucible zone f99386ed-7ae4-4ae4-8821-4bb751536c2a in-place
2026-08-25T04:34:07.832Z e7614960-ba8a-4115-9917-864dc967a8b8 updating Crucible zone 0d6e258a-0422-451d-ba4f-63b58ca5b64f in-place
2026-08-25T04:34:17.673Z 58e9fcae-3aa0-4321-88ad-7bbd4d717275 updating Crucible zone 25dcd782-af37-4d9d-93c7-abb14ee70fcd in-place
2026-08-25T04:34:28.941Z 3b0d5f8a-2ab7-46c9-b0bf-025549e9007f updating CockroachDb zone 2fcb1c6b-c5c5-402f-990f-e1a1d8a9dd56 in-place
2026-08-25T04:35:04.111Z c2f3b6ef-62f4-4f78-88cc-fad42f9e2cb3 updating Crucible zone 4e8f19cf-7083-410e-94fa-8eeea3937493 in-place
2026-08-25T04:35:17.763Z 79a60891-f36c-4e22-bdb4-ffaa805e340b updating Crucible zone 513105b2-ad72-444f-8dc0-8e0b25b19105 in-place
2026-08-25T04:35:30.114Z 52bbde01-9abf-487d-a8b4-02de9fb0c215 updating Crucible zone 5d6b0bf0-5779-4ac7-9056-d226d1148b89 in-place
2026-08-25T04:35:42.209Z b37e3e6a-441f-4d06-b533-b940aaa3c4f4 updating Crucible zone 84035fa3-6478-4d11-8b2f-dcf9baac016f in-place
2026-08-25T04:35:51.067Z fa4b5e13-ee26-424d-b44f-604e0977b750 updating Crucible zone 88888080-5595-4984-91a5-81b03a887126 in-place
2026-08-25T04:36:00.252Z be1243c1-52b1-436d-871d-7ec5ba8d1398 updating Crucible zone b27301a9-9890-4ab7-88ae-0b32bda16a54 in-place
2026-08-25T04:36:10.610Z f10a20a0-f791-40d8-87b9-5ec6ef88f96a updating Clickhouse zone b411ffaa-2427-4adf-99c2-be028f3ef5fa in-place
2026-08-25T04:36:33.345Z a1ae04b8-7053-4efa-b4bc-0e68761b54df updating CockroachDb zone cd27903a-98a2-45d7-923e-a6f250e39fec in-place
2026-08-25T04:37:14.703Z a0b1dd11-303c-496b-a216-4aa94359d5ca updating Crucible zone d8e35d69-4d10-48f6-aa27-c0ff770d6e20 in-place
2026-08-25T04:37:15.299Z 91fd92c5-a907-47d4-9f4f-201eddc80acc
2026-08-25T04:37:34.812Z 44e73634-cb11-4a9e-881c-6c5b8e651296 updated nexus generation from 1 to 2
2026-08-25T04:37:48.471Z 9fc29715-056f-48f0-8116-d43da6fc5001 expunge Nexus zone 05a25a6b-ec74-42b9-a61f-5e7245c46250 for update
2026-08-25T04:37:49.898Z 7a227090-d388-48d4-9b9c-5d6c77748589 expunge Nexus zone 342a781f-a4be-4014-a392-985d7d07e53d for update
2026-08-25T04:37:50.801Z e5fa77ff-5bdf-440c-9bfb-00eb3ecc8029 expunge Nexus zone 7b70889b-33d0-4851-9a6f-326d80827f17 for update
2026-08-25T04:37:57.860Z b032637e-634a-44a7-b764-b583fbd90baa
2026-08-25T05:04:25.215Z a0e6c19f-0ac9-482d-9021-9d905def725c update Sled 17 (BRM23230010) host OS to 23.0.0-0.ci+gitaa0e33451bd
2026-08-25T05:11:05.070Z 9d23e71a-a381-4beb-88ec-17247e4c41e1
2026-08-25T05:13:32.839Z e628b0f4-9f48-4d73-aee9-e1f5d4617962 update Sled 16 (BRM23230018) host OS to 23.0.0-0.ci+gitaa0e33451bd
2026-08-25T05:20:22.985Z 881880e4-e539-4d5c-a44f-4baee8a79fe9
2026-08-25T05:22:53.489Z 17281ed1-6e4b-4db4-acfc-83c4fc707f00 update Sled 15 (BRM27230037) host OS to 23.0.0-0.ci+gitaa0e33451bd
2026-08-25T05:30:18.525Z d6b9532b-5550-4246-a7ee-6a3421911c4f
2026-08-25T05:31:01.405Z b8e0d2dc-4dc2-4867-80d3-80d8ce0e2238 update Sled 14 (2F8JEXDK) host OS to 23.0.0-0.ci+gitaa0e33451bd
2026-08-25T05:42:40.516Z 3732ad5a-c7ff-4826-aebe-8fade8512805
2026-08-25T05:44:51.874Z 0a82a35e-3e18-4848-89a8-b707fb2ffcd3 updating Crucible zone 15973675-e5db-45de-b658-d63493cd6051 in-place
2026-08-25T05:45:04.815Z 3e7e2303-190b-4d6e-82d3-967ef8a7cad9 updating Crucible zone 367cc8de-969d-4943-8838-4143e0d2c7ea in-place
2026-08-25T05:45:17.420Z f70c9551-df0f-45e6-98ad-277b76110d44 expunge CruciblePantry zone 3dfff007-9173-45e9-a75f-25165f362ab6 for update
2026-08-25T05:45:18.368Z 89dd2764-ebae-4de0-a900-6129bbcc8387
2026-08-25T05:45:22.530Z 9b0b0aff-e665-4421-abee-4b3f596c3ec0
2026-08-25T05:45:31.838Z 0f7b3d0a-00b2-4a31-9e04-8cdb0df2afae updating Crucible zone 417c0b3d-77ac-4b9f-99df-c24dd27c7bf9 in-place
2026-08-25T05:45:45.203Z 46c2a12e-d98c-4720-9f15-e1dea66115a2 updating Crucible zone 46a626d4-1c21-4960-aed7-d6aef0567826 in-place
2026-08-25T05:45:57.516Z e60f9767-0b1f-459a-956a-3eda2c318d73 updating Crucible zone 573969f5-edab-4837-a1dc-aea94128d4ce in-place
2026-08-25T05:46:14.744Z bca381c0-b7f1-4cac-84f4-89c7b52b544d updating Crucible zone 5fd6fd28-f708-446a-a706-bf7fb1ca1840 in-place
2026-08-25T05:46:27.790Z b54ec609-7266-4f78-96bc-92815f868a84 updating Crucible zone 7a9a7958-2548-4220-9d34-2b642ceaaef4 in-place
2026-08-25T05:46:41.898Z 6097e4b9-4d2c-40ce-8b18-43d2ce307ac2 expunge InternalDns zone 824de372-9eeb-4e50-bf6e-7aa6c4b0b81d for update
2026-08-25T05:46:42.380Z 25f1eadd-db93-4592-9b71-1730fe05d5fb updating CockroachDb zone 9511429c-7382-442c-9882-3760d0469fbf in-place
2026-08-25T05:46:57.323Z 994a1c10-b4cf-412d-b1c9-58a8b6bd6101
2026-08-25T05:47:11.799Z 4128f41c-0640-428f-8102-eb7a8f07e053 updating Crucible zone 9ba228cd-2ebe-4f84-8e89-601e80e1c2d2 in-place
2026-08-25T05:47:25.862Z 1b36fdf3-f830-4706-a737-23e6e8284f6e expunge InternalNtp zone b19aa0f5-27c2-4ec7-9f5f-c191f97a08ce for update
2026-08-25T05:47:26.654Z 971b9dc9-3ed6-4d3e-a246-1a1e37bf94db sled 68cfed7e-fdb2-4c3b-beef-f2663032cf5c: added zone: internal_ntp
2026-08-25T05:47:38.277Z 279f2dc7-72ef-46bd-a087-fddcddebaab7
2026-08-25T05:47:46.121Z d433d013-9432-4a00-8510-ad342339389b updating Crucible zone bcb3c062-137f-46b6-9cbc-6f4098cf92fe in-place
2026-08-25T05:47:58.525Z ddd24e7f-8e15-43fd-9d03-041127dad04d expunge ExternalDns zone cf2ef94d-c9a5-4f7d-b89e-18bb3d459b9b for update
2026-08-25T05:47:59.129Z d12c9bef-1ce4-4ae8-a2a9-a8428863d414
2026-08-25T05:48:07.821Z 90659e33-86b1-45ff-adbc-68150253257a
2026-08-25T05:48:11.285Z 5acf3ff8-a0b1-46bb-afef-6d0ee31e8051 updating Crucible zone 012fd864-53a3-4201-bdfd-bbddc1a7c059 in-place
2026-08-25T05:48:23.609Z deffea70-aec6-40f0-aab0-d6ba2cc3f5e2 expunge InternalNtp zone 248b1fea-d2c8-4211-8b3d-aa50809edcdf for update
2026-08-25T05:48:24.097Z ec5599ea-f21e-4c0d-9409-85a6c91a5e3a sled bbe0267d-b97e-45db-8f60-347fecccebea: added zone: internal_ntp
2026-08-25T05:48:36.074Z 66e593af-6931-4963-878c-a306c6ec1240 expunge CruciblePantry zone 2619718b-51ed-4703-819e-cf7fb18a4640 for update
2026-08-25T05:48:36.526Z 47da793c-f39c-4702-854f-e13edd3d8f99
2026-08-25T05:48:48.035Z 38d5e415-c133-442a-9173-13d62d2bf050 updating Crucible zone 33182dbf-6177-4e0c-aa83-67b3ac7d99ab in-place
2026-08-25T05:49:01.808Z 08ae55ca-74fa-49aa-bf43-b408012715f8 updating Crucible zone 4010df97-cd0c-4f17-abaa-18790e47ef27 in-place
2026-08-25T05:49:17.575Z 9cb9f888-784b-46c0-b179-20aad70a9fe2 updating Crucible zone 441b0e98-d763-47fe-8cd0-2ca10557cffb in-place
2026-08-25T05:49:34.657Z 10928cf2-b359-4a23-a5e1-a1bce91a16d3 updating Crucible zone 7a21bffb-044e-4061-ab1a-70711086fb1e in-place
2026-08-25T05:49:49.229Z 0a09d44e-48a9-444a-b864-2233ec3e58d9 updating Crucible zone 9aa75fa1-b2bc-4959-a9be-2ab335359cb3 in-place
2026-08-25T05:50:01.205Z 2fc876cc-5d20-4929-86d2-3cfb99e95ce2 updating Crucible zone a1bdee4e-670b-4de3-a669-9fb974463e73 in-place
2026-08-25T05:50:13.051Z 7d1be74b-1cfd-4b6d-9fa7-4d6cee8524f5 updating Crucible zone bd6515a1-4f8e-45f9-ae76-05bed9f2005b in-place
2026-08-25T05:50:24.635Z 992af1c8-9616-4f3c-9fe3-09359828613d updating Crucible zone cd5da597-9a63-41aa-85d9-a57755858365 in-place
2026-08-25T05:50:38.645Z 0f0a0de7-ae85-4565-916e-654976b46fb0 updating CockroachDb zone d7ec46a9-ed5a-4d4e-b1a0-75b3f7459eb2 in-place
2026-08-25T05:51:21.796Z fec3a027-1fc0-4a4e-b1f9-b3b6e49c62dc updating Crucible zone e0fbaefd-a1f4-47a0-ae86-bd716ee39d4a in-place
2026-08-25T05:51:34.882Z 9c781172-6ac4-4d95-82be-776b4495ecc8 expunge ExternalDns zone eefd5edd-99d4-40c9-be45-0c676128f54b for update
2026-08-25T05:51:35.561Z 24a766cb-a18e-41c5-bdc1-34fdff9c525d
2026-08-25T05:51:42.306Z a082cbbf-8d59-4d3c-a21d-b04bc41477ca
2026-08-25T05:51:52.086Z ec8e8149-e986-4b64-a0b3-51c36a602af4 expunge ExternalDns zone 00f8a3d2-0043-4c26-b4b0-45d2decfa324 for update
2026-08-25T05:51:52.748Z e6cf3cc1-754c-4837-96de-49e9fc4ea4d4
2026-08-25T05:51:58.781Z c1434752-d83f-46b3-8644-c96161b5f025
2026-08-25T05:52:02.122Z 0d78f1a1-2e60-44c3-90c1-11d8601ac9a2 expunge CruciblePantry zone 1b2bcdd4-64c4-4489-b47c-1924379c0d32 for update
2026-08-25T05:52:02.885Z 16feaafa-2369-4e6c-bed4-1d21823bd3e4
2026-08-25T05:52:11.777Z d4e830b0-2116-4810-bbd8-24943d960561
2026-08-25T05:52:16.063Z 5560782c-1e6b-4cba-96b0-7e8c7dc8c5cd updating Crucible zone 4247b180-d28a-466b-ab5e-1d141559d411 in-place
2026-08-25T05:52:33.953Z 88ed3b48-e588-4b93-bee2-63e96788e57e expunge InternalDns zone fcb4800f-e091-4baf-8699-d2417d447c4f for update
2026-08-25T05:52:34.629Z 7b1b348b-d177-40c9-9edc-de47df3c11f7 updating Crucible zone 51ea4e1e-f6d4-4ec3-ad3e-0cd771763d4f in-place
2026-08-25T05:52:38.227Z 6e082bdf-9cf8-4b1b-a892-266a54a7ce88
2026-08-25T05:52:54.714Z 56ce10cb-e663-4bea-918a-f32d73ee146c updating Crucible zone 5841cd93-f9fa-44b4-bbb2-53e372efa695 in-place
2026-08-25T05:53:11.945Z d4a16e3d-0187-4c0b-97e4-96be09011817 updating Crucible zone 5a8df32a-7292-45e1-9097-bcf410e09758 in-place
2026-08-25T05:53:31.716Z 0f1e2755-03b8-4225-803f-66093d738051 expunge InternalDns zone 66432531-37a7-49ab-9385-2d1239b42860 for update
2026-08-25T05:53:32.642Z 1cb245f8-6593-450d-b9f2-a06cb8fe7ae0 updating Crucible zone 77a0feaf-a23e-4033-a8d1-2851da344ebd in-place
2026-08-25T05:53:41.853Z 9f3d57e9-9793-4d09-bc88-1589b7117146
2026-08-25T05:53:57.923Z 7130857d-e5d2-441c-9e78-add6f2ac2e05 expunge BoundaryNtp zone 87cddafb-1a01-4233-9b34-0bc3c462c453 for update
2026-08-25T05:53:58.955Z 1c298c36-7505-4b83-a976-9a19ccc4cd97 sled d2358ee4-041d-4b21-a303-1d5751faa113: added zone: internal_ntp
2026-08-25T05:54:10.346Z 6154f757-332b-43dc-8071-c1712c43c16e
2026-08-25T05:54:16.679Z 6d63730c-b98b-4773-befc-f2be5a1054f5 updating Crucible zone 9d4d7ae5-36c4-44d7-8616-2294d90f4941 in-place
2026-08-25T05:54:28.750Z bcd18f5c-978a-40f3-92c0-d2f686331b84 updating Crucible zone cba18b0c-bc7d-41eb-8c31-13a3fd189ecf in-place
2026-08-25T05:54:40.355Z abdffe1b-ba9a-4f44-9227-776e1d377716 updating Crucible zone d6c56c03-2597-4b6a-8e8d-0e34f0efd4b3 in-place
2026-08-25T05:54:53.697Z be742d6a-6638-4ddd-aecc-70f42d93e25f updating Crucible zone f2d56791-410b-48e6-8ca9-dfc2f984135c in-place
2026-08-25T05:55:11.906Z 2a930d11-e042-4c0c-a4e8-c674713aa6f6 updating Crucible zone f99386ed-7ae4-4ae4-8821-4bb751536c2a in-place
2026-08-25T05:55:24.685Z 30a33b35-bcc5-4c2b-b3cb-275396b9662f updating Crucible zone 0d6e258a-0422-451d-ba4f-63b58ca5b64f in-place
2026-08-25T05:55:34.806Z a4cac71f-0e96-4ba7-878f-4e98f0d49b29 updating Crucible zone 25dcd782-af37-4d9d-93c7-abb14ee70fcd in-place
2026-08-25T05:55:44.712Z e894cc2d-74ea-4f55-9283-65ee06f58df2 expunge BoundaryNtp zone 3e337744-ad29-4e5d-87a1-504773bc1617 for update
2026-08-25T05:55:45.334Z be553998-8a90-4e92-9d2b-9cea6923561c sled f1ea60d4-48db-406a-8b6e-56d19d1b7f6e: added zone: internal_ntp
2026-08-25T05:56:05.625Z afb73193-5f44-4a62-ab80-565575be1004
2026-08-25T05:56:17.568Z 88c938c7-4e19-43b9-a44b-c333a449bc3d updating Crucible zone 4e8f19cf-7083-410e-94fa-8eeea3937493 in-place
2026-08-25T05:56:27.516Z 4a043990-87c3-4be0-9bdc-557dfa92a48a updating Crucible zone 513105b2-ad72-444f-8dc0-8e0b25b19105 in-place
2026-08-25T05:56:38.382Z 7bf30df4-ff0b-4de2-a8fd-2ef13bafbb58 updating Crucible zone 5d6b0bf0-5779-4ac7-9056-d226d1148b89 in-place
2026-08-25T05:56:48.036Z 3f3ab8cf-76bc-448d-a2e8-90075c8ecf4b expunge Oximeter zone 5e304d47-5aa8-4926-9bd5-e751ed9faa9f for update
2026-08-25T05:56:48.472Z baecb16a-fa72-4aa3-86e5-0a44b0456c08
2026-08-25T05:56:56.127Z 59aea7d0-3f67-4f4c-b78b-e8ac519a6c33
2026-08-25T05:57:01.785Z 6bf964ec-db6e-4b7b-bd5a-cc67e666c885 updating CockroachDb zone 4f852e7d-d869-4263-bf2d-ee3b2583e850 in-place
2026-08-25T05:57:40.120Z 7214e711-ae8e-4910-8f58-aa2e7640466f updating CockroachDb zone 2fcb1c6b-c5c5-402f-990f-e1a1d8a9dd56 in-place
2026-08-25T05:58:06.830Z d2548d6a-ebfe-4aea-a197-20a97222304d updating Crucible zone 84035fa3-6478-4d11-8b2f-dcf9baac016f in-place
2026-08-25T05:58:17.899Z 95881a4b-b73d-4f60-843a-090885524dac updating Crucible zone 88888080-5595-4984-91a5-81b03a887126 in-place
2026-08-25T05:58:28.477Z 3b3242dc-bed5-4b96-808c-90610cc04e8d updating Crucible zone b27301a9-9890-4ab7-88ae-0b32bda16a54 in-place
2026-08-25T05:58:37.941Z 77b25d96-9f2f-4ba1-9ec2-b66d043f3484 updating Clickhouse zone b411ffaa-2427-4adf-99c2-be028f3ef5fa in-place
2026-08-25T05:59:07.958Z d071fe78-e015-4539-a07c-9ac2f775c2df updating CockroachDb zone cd27903a-98a2-45d7-923e-a6f250e39fec in-place
2026-08-25T05:59:28.634Z 28c00543-b081-4387-a2c0-0f5cfe8b84a2 updating Crucible zone d8e35d69-4d10-48f6-aa27-c0ff770d6e20 in-place
2026-08-25T05:59:29.367Z 4c40a7b3-02c1-402a-b04e-afbd50564970
2026-08-25T05:59:55.000Z 690985a5-d2f8-46f1-a49f-7c732b8db2e6 updated nexus generation from 2 to 3
2026-08-25T06:00:06.573Z df6aa33d-4f87-4393-b236-6f6edf95b9bc expunge Nexus zone 4c38fe86-afb9-48c9-b28b-6b6d13efb916 for update
2026-08-25T06:00:07.903Z 1f687953-b859-4d9c-a98e-72fc4feb82c9 expunge Nexus zone f7198589-ce8c-4709-81c3-312d1fe2dca9 for update
2026-08-25T06:00:08.828Z 9d3c7392-de54-4cee-8e3f-31c520019b3a expunge Nexus zone 77e9e878-6cee-4cd2-82b6-0c9af7be4f79 for update
2026-08-25T06:00:17.751Z 3af5a425-307e-44e0-8c4c-9e38244d89be
2026-08-25T06:00:21.099Z 80993263-0308-4e26-b095-7b750301ffaa
2026-08-25T16:35:41.164Z ec1d0d53-c4e0-44a5-b365-ef234c91d333

〉blueprint-plan ec1d0d53-c4e0-44a5-b365-ef234c91d333 latest
INFO performed noop zone image source checks on sled, sled_id: 68cfed7e-fdb2-4c3b-beef-f2663032cf5c, num_total: 14, num_already_artifact: 14, num_eligible: 0, num_ineligible: 0
INFO performed noop zone image source checks on sled, sled_id: bbe0267d-b97e-45db-8f60-347fecccebea, num_total: 16, num_already_artifact: 16, num_eligible: 0, num_ineligible: 0
INFO performed noop zone image source checks on sled, sled_id: d2358ee4-041d-4b21-a303-1d5751faa113, num_total: 15, num_already_artifact: 15, num_eligible: 0, num_ineligible: 0
INFO performed noop zone image source checks on sled, sled_id: f1ea60d4-48db-406a-8b6e-56d19d1b7f6e, num_total: 16, num_already_artifact: 16, num_eligible: 0, num_ineligible: 0
INFO skipping board for MGS-driven update (no update necessary), serial_number: BRM11230018, part_number: 913-0000003
INFO skipping board for MGS-driven update (no update necessary), serial_number: BRM23230002, part_number: 913-0000006
INFO skipping board for MGS-driven update (no update necessary), serial_number: BRM31230002, part_number: 913-0000006
INFO skipping board for MGS-driven update (no update necessary), serial_number: BRM23230010, part_number: 913-0000019
INFO skipping board for MGS-driven update (no update necessary), serial_number: BRM23230018, part_number: 913-0000019
INFO skipping board for MGS-driven update (no update necessary), serial_number: BRM27230037, part_number: 913-0000019
INFO skipping board for MGS-driven update (no update necessary), serial_number: 2F8JEXDK, part_number: 913-0000023
INFO ran out of boards for MGS-driven update
generated blueprint 556fb55d-8c08-4e0f-bc7f-46d297e3a1c8 based on parent blueprint ec1d0d53-c4e0-44a5-b365-ef234c91d333
blueprint source: planner with report:
planning report:
* will ensure cockroachdb setting: "22.1"


〉blueprint-save 556fb55d-8c08-4e0f-bc7f-46d297e3a1c8 blueprint-556.json
saved blueprint 556fb55d-8c08-4e0f-bc7f-46d297e3a1c8 to "blueprint-556.json"
[dublin]root@oxz_switch1:~# omdb -w nexus blueprints import blueprint-556.json
note: Nexus URL not specified.  Will pick one from DNS.
note: using DNS from system config (typically /etc/resolv.conf)
note: (if this is not right, use --dns-server to specify an alternate DNS server)
note: using Nexus URL http://[fd94:3d68:8dce:104::17]:12232
uploaded new blueprint 556fb55d-8c08-4e0f-bc7f-46d297e3a1c8
[dublin]root@oxz_switch1:~# omdb -w nexus blueprints target set 556fb55d-8c08-4e0f-bc7f-46d297e3a1c8 enabled
note: Nexus URL not specified.  Will pick one from DNS.
note: using DNS from system config (typically /etc/resolv.conf)
note: (if this is not right, use --dns-server to specify an alternate DNS server)
note: using Nexus URL http://[fd94:3d68:8dce:101::19]:12232
set target blueprint to 556fb55d-8c08-4e0f-bc7f-46d297e3a1c8

Full Reconfigurator history at the end:

Details
[dublin]root@oxz_switch1:~# omdb reconfigurator history --limit 200
note: database URL not specified.  Will search DNS.
note: (override with --db-url or OMDB_DB_URL)
note: using DNS from system config (typically /etc/resolv.conf)
note: (if this is not right, use --dns-server to specify an alternate DNS server)
note: using database URL postgresql://root@[fd94:3d68:8dce:104::4]:32221,[fd94:3d68:8dce:103::3]:32221,[fd94:3d68:8dce:102::3]:32221,[fd94:3d68:8dce:104::3]:32221,[fd94:3d68:8dce:101::3]:32221/omicron?sslmode=disable
note: database schema version matches expected (294.0.0)
VERSN TIME                     BLUEPRINT                           
    1 2026-08-25T02:59:45.719Z 4eb8fb94-cd73-4943-a6fb-4d01a71900d1  enabled: initial blueprint from rack setup
    2 2026-08-25T02:59:47.335Z 5af33bd7-dd0e-4617-b2d1-45588724db84  enabled: updated target release minimum generation from 1 to 2
    3 2026-08-25T03:00:01.029Z 79e0b6e0-693b-454b-bc7e-b22ee6302aff  enabled: 
    4 2026-08-25T03:00:02.454Z fab79c2f-3706-41d6-b20a-ca5ff6d447ac  enabled: 
    5 2026-08-25T03:00:04.867Z 325574a9-0393-40b1-b2d8-9723a581eba9  enabled: 
    6 2026-08-25T03:37:38.094Z 73e67746-87c3-4095-9d3b-8302202eecd7  enabled: sled 68cfed7e-fdb2-4c3b-beef-f2663032cf5c: performed all noop measurements updates, sled 68cfed7e-fdb2-4c3b-beef-f2663032cf5c: performed 15 noop zone image source updates, sled 68cfed7e-fdb2-4c3b-beef-f2663032cf5c: noop updated host phase 2 to Artifact: both slot A and slot B, sled bbe0267d-b97e-45db-8f60-347fecccebea: performed all noop measurements updates, sled bbe0267d-b97e-45db-8f60-347fecccebea: performed 16 noop zone image source updates, sled bbe0267d-b97e-45db-8f60-347fecccebea: noop updated host phase 2 to Artifact: both slot A and slot B, sled d2358ee4-041d-4b21-a303-1d5751faa113: performed all noop measurements updates, sled d2358ee4-041d-4b21-a303-1d5751faa113: performed 16 noop zone image source updates, sled d2358ee4-041d-4b21-a303-1d5751faa113: noop updated host phase 2 to Artifact: both slot A and slot B, sled f1ea60d4-48db-406a-8b6e-56d19d1b7f6e: performed all noop measurements updates, sled f1ea60d4-48db-406a-8b6e-56d19d1b7f6e: performed 14 noop zone image source updates, sled f1ea60d4-48db-406a-8b6e-56d19d1b7f6e: noop updated host phase 2 to Artifact: both slot A and slot B
    7 2026-08-25T03:40:08.204Z a322c668-8449-459c-be04-e5707f9452c1  enabled: update Sled 17 (BRM23230010) host OS to 23.0.0-0.ci+git9e93a2e5336
    8 2026-08-25T03:46:24.470Z 6015ef55-df09-44b9-9a09-04e6182f4c17  enabled: 
    9 2026-08-25T03:49:10.966Z a6b9afb3-3838-4458-8b34-fceada10383f  enabled: update Sled 16 (BRM23230018) host OS to 23.0.0-0.ci+git9e93a2e5336
   10 2026-08-25T03:57:05.396Z 68b7f74c-81df-470b-a12e-cbfa2e0361ac  enabled: 
   11 2026-08-25T03:59:24.103Z 6568e4d8-7d24-40bf-877a-cfa0be4f32ea  enabled: update Sled 15 (BRM27230037) host OS to 23.0.0-0.ci+git9e93a2e5336
   12 2026-08-25T04:07:11.776Z 1c86f40d-0bb2-4132-bdb7-3645a29b6c7b  enabled: 
   13 2026-08-25T04:09:34.117Z 24c8287c-add0-44bf-b832-7539ab2a520f  enabled: update Sled 14 (2F8JEXDK) host OS to 23.0.0-0.ci+git9e93a2e5336
   14 2026-08-25T04:19:51.868Z 8b1898d7-9929-479b-a0ea-b4c73f78ca3e  enabled: 
   15 2026-08-25T04:22:41.399Z c2471fea-b0c2-4c10-9707-fed052ee376e  enabled: updating Crucible zone 15973675-e5db-45de-b658-d63493cd6051 in-place
   16 2026-08-25T04:23:00.487Z 73033d29-a98b-4ff1-8dd2-b7b4bb3c5885  enabled: updating Crucible zone 367cc8de-969d-4943-8838-4143e0d2c7ea in-place
   17 2026-08-25T04:23:12.914Z 8ccbcb11-c835-4df6-9391-66b8c76beb0a  enabled: updating Crucible zone 417c0b3d-77ac-4b9f-99df-c24dd27c7bf9 in-place
   18 2026-08-25T04:23:25.403Z 42bba8f6-ae17-44c1-af8a-a113e96c9a5d  enabled: updating Crucible zone 46a626d4-1c21-4960-aed7-d6aef0567826 in-place
   19 2026-08-25T04:23:42.056Z 6b15c45d-04df-41f5-9e21-e8d61b432109  enabled: updating Crucible zone 573969f5-edab-4837-a1dc-aea94128d4ce in-place
   20 2026-08-25T04:23:55.438Z 77cf88ab-e9e9-418f-8ae5-5bc69db97639  enabled: updating Crucible zone 5fd6fd28-f708-446a-a706-bf7fb1ca1840 in-place
   21 2026-08-25T04:24:08.148Z 15322c8c-fa98-4dda-b291-9fa874957404  enabled: expunge BoundaryNtp zone 765ea39f-fc23-4c8b-a53c-f4f98a2b7b2b for update
   22 2026-08-25T04:24:08.736Z 3e93458e-4fd5-4d60-af86-7b32934cbbd0  enabled: sled 68cfed7e-fdb2-4c3b-beef-f2663032cf5c: added zone: internal_ntp
   23 2026-08-25T04:24:44.255Z d42db72c-1301-4a73-b7e3-52a5a2aef34b  enabled: 
   24 2026-08-25T04:24:55.338Z 37a346da-774c-4e35-baca-66fce2b45aaf  enabled: updating Crucible zone 7a9a7958-2548-4220-9d34-2b642ceaaef4 in-place
   25 2026-08-25T04:25:09.077Z 93abb2d6-bc3d-4c83-880b-9e10cfabdbf2  enabled: expunge ExternalDns zone 878919ca-599c-448a-a176-f2c6fbc3587e for update
   26 2026-08-25T04:25:09.669Z 960ed8a4-ab98-4fcc-a5e1-c52bba1ecbe9  enabled: 
   27 2026-08-25T04:25:20.591Z 1f406f84-6d84-4da2-9e3a-f1e1ed04320a  enabled: 
   28 2026-08-25T04:25:24.931Z 01eb7f0d-6b6b-471f-b937-c7e4cc9c22a7  enabled: updating CockroachDb zone 9511429c-7382-442c-9882-3760d0469fbf in-place
   29 2026-08-25T04:26:03.228Z 1ddaaae9-99af-4a38-adc2-84d5f8030a07  enabled: expunge InternalDns zone 8fa3ad83-20c5-438e-a4b6-934e9bd4441a for update
   30 2026-08-25T04:26:03.650Z 2ccb23a9-2030-4c3a-b3bc-ff652720067c  enabled: updating Crucible zone 9ba228cd-2ebe-4f84-8e89-601e80e1c2d2 in-place
   31 2026-08-25T04:26:08.113Z 8d42d962-1b43-4a69-b743-ba9226f591f7  enabled: 
   32 2026-08-25T04:26:36.314Z dd8f45e6-c150-4de3-8fcc-b4678e8a554f  enabled: expunge CruciblePantry zone a55d7682-513b-4bc4-8c7e-5bb63d7564ed for update
   33 2026-08-25T04:26:36.692Z 13b63ff9-df38-4084-8dcc-99db6544a2e2  enabled: 
   34 2026-08-25T04:26:42.756Z a0164618-52b9-428a-93a3-799f4a292d15  enabled: 
   35 2026-08-25T04:26:50.468Z 247d16ae-3e57-4d07-b096-bba645ee3dac  enabled: updating Crucible zone bcb3c062-137f-46b6-9cbc-6f4098cf92fe in-place
   36 2026-08-25T04:27:05.415Z a69694b3-725f-464a-8314-321e01ddc1df  enabled: updating Crucible zone 012fd864-53a3-4201-bdfd-bbddc1a7c059 in-place
   37 2026-08-25T04:27:23.784Z d25f27d1-c7b7-4981-a894-250729644151  enabled: expunge BoundaryNtp zone 12ab8a21-81bd-4df9-af36-ed3d1e143470 for update
   38 2026-08-25T04:27:24.127Z 3fd64d0f-5931-4b95-805c-27871ae28b5d  enabled: sled bbe0267d-b97e-45db-8f60-347fecccebea: added zone: internal_ntp
   39 2026-08-25T04:27:37.761Z 806513ac-ed89-40ae-aaa7-d6ab40a6e4fd  enabled: updating Crucible zone 33182dbf-6177-4e0c-aa83-67b3ac7d99ab in-place
   40 2026-08-25T04:27:49.880Z 2fc8583a-467c-473f-b278-eaa74a25d834  enabled: expunge ExternalDns zone 3e138574-fa94-47fb-801a-f6bcb0236004 for update
   41 2026-08-25T04:27:50.224Z 1af1a7a1-9c14-4788-8ddf-f414214fe32c  enabled: 
   42 2026-08-25T04:27:58.870Z e7553e0d-352c-4bd6-a6f0-a56bd6b75fb1  enabled: 
   43 2026-08-25T04:28:01.880Z 4421abe1-dc21-46fc-b9f6-01b37362aedf  enabled: updating Crucible zone 4010df97-cd0c-4f17-abaa-18790e47ef27 in-place
   44 2026-08-25T04:28:18.033Z cdcb5ed8-ee46-4cfb-9e12-b3289e402a78  enabled: updating Crucible zone 441b0e98-d763-47fe-8cd0-2ca10557cffb in-place
   45 2026-08-25T04:28:33.828Z 4b06476b-fc9c-4ee0-a912-76630d72fb9d  enabled: updating Crucible zone 7a21bffb-044e-4061-ab1a-70711086fb1e in-place
   46 2026-08-25T04:28:46.117Z 4d05b075-0b98-4a10-bd00-55dd158d8638  enabled: expunge CruciblePantry zone 953c5579-f312-42c5-aafc-9f8c5af25936 for update
   47 2026-08-25T04:28:46.560Z 91be2991-ef55-499f-8248-8ecf376e3c64  enabled: 
   48 2026-08-25T04:28:54.255Z 85fbbd29-1459-4613-8ca4-af60fa99f415  enabled: 
   49 2026-08-25T04:29:01.336Z d89c5eb5-c36d-4c47-8e1e-cce4d4e23864  enabled: updating Crucible zone 9aa75fa1-b2bc-4959-a9be-2ab335359cb3 in-place
   50 2026-08-25T04:29:16.174Z 54413ad0-e918-41ad-8002-08733db26790  enabled: updating Crucible zone a1bdee4e-670b-4de3-a669-9fb974463e73 in-place
   51 2026-08-25T04:29:30.658Z ecef230b-6c74-433f-af17-206540a7502b  enabled: expunge InternalDns zone b58b98fb-ac8e-4a18-9e4e-b01c494d0216 for update
   52 2026-08-25T04:29:31.459Z 62741118-f418-4787-999b-2cad16b2b38a  enabled: updating Crucible zone bd6515a1-4f8e-45f9-ae76-05bed9f2005b in-place
   53 2026-08-25T04:29:38.679Z 14893140-72f0-4534-9da2-0370d3ba6b43  enabled: 
   54 2026-08-25T04:29:53.868Z bee398c7-b83f-4e11-bfb2-bf372acf1911  enabled: updating Crucible zone cd5da597-9a63-41aa-85d9-a57755858365 in-place
   55 2026-08-25T04:30:05.734Z caf054b2-5e61-4979-88e2-82456c1565dc  enabled: updating CockroachDb zone d7ec46a9-ed5a-4d4e-b1a0-75b3f7459eb2 in-place
   56 2026-08-25T04:30:19.039Z 7eea0c45-c2fe-43c4-adff-c8dff552e47c  enabled: updating Crucible zone e0fbaefd-a1f4-47a0-ae86-bd716ee39d4a in-place
   57 2026-08-25T04:30:31.163Z 7ac24b4f-e40d-4c71-a998-b2fb837b5cfc  enabled: expunge Oximeter zone 2dfe0cdd-282c-44e0-a89a-3721335a808c for update
   58 2026-08-25T04:30:31.616Z 3390212e-a86b-4b27-80b5-1b64ce67e602  enabled: 
   59 2026-08-25T04:30:40.173Z 88c4c1ef-d790-48f4-9d53-78e2c42d4b06  enabled: updating Crucible zone 4247b180-d28a-466b-ab5e-1d141559d411 in-place
   60 2026-08-25T04:30:52.989Z 851cba80-3b25-4b99-b3bb-84eab0fdd16c  enabled: updating CockroachDb zone 4f852e7d-d869-4263-bf2d-ee3b2583e850 in-place
   61 2026-08-25T04:31:16.482Z 9028feaa-a022-4345-8f30-bbfc292bca2b  enabled: updating Crucible zone 51ea4e1e-f6d4-4ec3-ad3e-0cd771763d4f in-place
   62 2026-08-25T04:31:29.303Z 238ff65b-a1fd-4994-b981-58cca07c4899  enabled: updating Crucible zone 5841cd93-f9fa-44b4-bbb2-53e372efa695 in-place
   63 2026-08-25T04:31:43.233Z 872e57ec-3c57-4017-9d30-38e375424f3d  enabled: updating Crucible zone 5a8df32a-7292-45e1-9097-bcf410e09758 in-place
   64 2026-08-25T04:32:00.398Z a32c4a39-5658-40f3-a53c-d61c0aa80bac  enabled: updating Crucible zone 77a0feaf-a23e-4033-a8d1-2851da344ebd in-place
   65 2026-08-25T04:32:12.815Z d6a2bdc3-63db-4123-98a3-cb4d838ca0a2  enabled: updating Crucible zone 9d4d7ae5-36c4-44d7-8616-2294d90f4941 in-place
   66 2026-08-25T04:32:24.609Z 6cb9e7c7-ed3a-4ee9-b3c5-48be5c7b688f  enabled: expunge InternalDns zone afcb65cf-f175-4cce-b4d7-1f77e5088ca6 for update
   67 2026-08-25T04:32:25.091Z 7c8a29b4-c715-4dad-a079-8c55500b0775  enabled: expunge CruciblePantry zone b2d67554-e3f1-4858-a55e-7428fecc5ae9 for update
   68 2026-08-25T04:32:25.368Z b22f66d7-b5de-4837-9287-99f8ff1cc960  enabled: 
   69 2026-08-25T04:32:31.378Z 3b84bb3e-490e-4627-be25-0f85bf36a9ae  enabled: 
   70 2026-08-25T04:32:50.106Z 28b9f385-77ee-448a-89a8-f329aadd7aa7  enabled: 
   71 2026-08-25T04:33:00.830Z e841748a-23c5-4573-a684-89b58e7f33ab  enabled: expunge ExternalDns zone c3ca238b-678b-4334-8508-7deb1c117e59 for update
   72 2026-08-25T04:33:01.606Z 8dba0976-7316-4d39-8789-9bb42dd9d6f3  enabled: 
   73 2026-08-25T04:33:07.882Z 8eef8dd2-4b61-4a62-ba3c-2240ca4791e5  enabled: 
   74 2026-08-25T04:33:15.009Z 0d30ae0b-2bae-4538-a95b-9491d31552a9  enabled: updating Crucible zone cba18b0c-bc7d-41eb-8c31-13a3fd189ecf in-place
   75 2026-08-25T04:33:28.295Z 91fb6708-5b35-4aec-9f3c-c65a2377005f  enabled: updating Crucible zone d6c56c03-2597-4b6a-8e8d-0e34f0efd4b3 in-place
   76 2026-08-25T04:33:42.838Z 1a5d0adc-2396-4c02-91a6-a7d9a4a61ee6  enabled: updating Crucible zone f2d56791-410b-48e6-8ca9-dfc2f984135c in-place
   77 2026-08-25T04:33:54.222Z 0b2437b8-7a1c-4146-849d-7a95d0a99248  enabled: updating Crucible zone f99386ed-7ae4-4ae4-8821-4bb751536c2a in-place
   78 2026-08-25T04:34:07.932Z e7614960-ba8a-4115-9917-864dc967a8b8  enabled: updating Crucible zone 0d6e258a-0422-451d-ba4f-63b58ca5b64f in-place
   79 2026-08-25T04:34:17.832Z 58e9fcae-3aa0-4321-88ad-7bbd4d717275  enabled: updating Crucible zone 25dcd782-af37-4d9d-93c7-abb14ee70fcd in-place
   80 2026-08-25T04:34:29.113Z 3b0d5f8a-2ab7-46c9-b0bf-025549e9007f  enabled: updating CockroachDb zone 2fcb1c6b-c5c5-402f-990f-e1a1d8a9dd56 in-place
   81 2026-08-25T04:35:04.254Z c2f3b6ef-62f4-4f78-88cc-fad42f9e2cb3  enabled: updating Crucible zone 4e8f19cf-7083-410e-94fa-8eeea3937493 in-place
   82 2026-08-25T04:35:17.934Z 79a60891-f36c-4e22-bdb4-ffaa805e340b  enabled: updating Crucible zone 513105b2-ad72-444f-8dc0-8e0b25b19105 in-place
   83 2026-08-25T04:35:30.272Z 52bbde01-9abf-487d-a8b4-02de9fb0c215  enabled: updating Crucible zone 5d6b0bf0-5779-4ac7-9056-d226d1148b89 in-place
   84 2026-08-25T04:35:42.366Z b37e3e6a-441f-4d06-b533-b940aaa3c4f4  enabled: updating Crucible zone 84035fa3-6478-4d11-8b2f-dcf9baac016f in-place
   85 2026-08-25T04:35:51.241Z fa4b5e13-ee26-424d-b44f-604e0977b750  enabled: updating Crucible zone 88888080-5595-4984-91a5-81b03a887126 in-place
   86 2026-08-25T04:36:00.391Z be1243c1-52b1-436d-871d-7ec5ba8d1398  enabled: updating Crucible zone b27301a9-9890-4ab7-88ae-0b32bda16a54 in-place
   87 2026-08-25T04:36:10.785Z f10a20a0-f791-40d8-87b9-5ec6ef88f96a  enabled: updating Clickhouse zone b411ffaa-2427-4adf-99c2-be028f3ef5fa in-place
   88 2026-08-25T04:36:33.518Z a1ae04b8-7053-4efa-b4bc-0e68761b54df  enabled: updating CockroachDb zone cd27903a-98a2-45d7-923e-a6f250e39fec in-place
   89 2026-08-25T04:37:14.867Z a0b1dd11-303c-496b-a216-4aa94359d5ca  enabled: updating Crucible zone d8e35d69-4d10-48f6-aa27-c0ff770d6e20 in-place
   90 2026-08-25T04:37:15.461Z 91fd92c5-a907-47d4-9f4f-201eddc80acc  enabled: 
   91 2026-08-25T04:37:34.949Z 44e73634-cb11-4a9e-881c-6c5b8e651296  enabled: updated nexus generation from 1 to 2
   92 2026-08-25T04:37:48.905Z 9fc29715-056f-48f0-8116-d43da6fc5001  enabled: expunge Nexus zone 05a25a6b-ec74-42b9-a61f-5e7245c46250 for update
   93 2026-08-25T04:37:50.271Z 7a227090-d388-48d4-9b9c-5d6c77748589  enabled: expunge Nexus zone 342a781f-a4be-4014-a392-985d7d07e53d for update
   94 2026-08-25T04:37:51.015Z e5fa77ff-5bdf-440c-9bfb-00eb3ecc8029  enabled: expunge Nexus zone 7b70889b-33d0-4851-9a6f-326d80827f17 for update
   95 2026-08-25T04:37:58.094Z b032637e-634a-44a7-b764-b583fbd90baa  enabled: 
   96 2026-08-25T05:04:25.603Z a0e6c19f-0ac9-482d-9021-9d905def725c  enabled: update Sled 17 (BRM23230010) host OS to 23.0.0-0.ci+gitaa0e33451bd
   97 2026-08-25T05:11:05.340Z 9d23e71a-a381-4beb-88ec-17247e4c41e1  enabled: 
   98 2026-08-25T05:13:33.078Z e628b0f4-9f48-4d73-aee9-e1f5d4617962  enabled: update Sled 16 (BRM23230018) host OS to 23.0.0-0.ci+gitaa0e33451bd
   99 2026-08-25T05:20:23.254Z 881880e4-e539-4d5c-a44f-4baee8a79fe9  enabled: 
  100 2026-08-25T05:22:53.787Z 17281ed1-6e4b-4db4-acfc-83c4fc707f00  enabled: update Sled 15 (BRM27230037) host OS to 23.0.0-0.ci+gitaa0e33451bd
  101 2026-08-25T05:30:18.787Z d6b9532b-5550-4246-a7ee-6a3421911c4f  enabled: 
  102 2026-08-25T05:31:01.733Z b8e0d2dc-4dc2-4867-80d3-80d8ce0e2238  enabled: update Sled 14 (2F8JEXDK) host OS to 23.0.0-0.ci+gitaa0e33451bd
  103 2026-08-25T05:42:40.764Z 3732ad5a-c7ff-4826-aebe-8fade8512805  enabled: 
  104 2026-08-25T05:44:52.130Z 0a82a35e-3e18-4848-89a8-b707fb2ffcd3  enabled: updating Crucible zone 15973675-e5db-45de-b658-d63493cd6051 in-place
  105 2026-08-25T05:45:05.164Z 3e7e2303-190b-4d6e-82d3-967ef8a7cad9  enabled: updating Crucible zone 367cc8de-969d-4943-8838-4143e0d2c7ea in-place
  106 2026-08-25T05:45:17.672Z f70c9551-df0f-45e6-98ad-277b76110d44  enabled: expunge CruciblePantry zone 3dfff007-9173-45e9-a75f-25165f362ab6 for update
  107 2026-08-25T05:45:18.765Z 89dd2764-ebae-4de0-a900-6129bbcc8387  enabled: 
  108 2026-08-25T05:45:23.057Z 9b0b0aff-e665-4421-abee-4b3f596c3ec0  enabled: 
  109 2026-08-25T05:45:32.075Z 0f7b3d0a-00b2-4a31-9e04-8cdb0df2afae  enabled: updating Crucible zone 417c0b3d-77ac-4b9f-99df-c24dd27c7bf9 in-place
  110 2026-08-25T05:45:45.517Z 46c2a12e-d98c-4720-9f15-e1dea66115a2  enabled: updating Crucible zone 46a626d4-1c21-4960-aed7-d6aef0567826 in-place
  111 2026-08-25T05:45:57.790Z e60f9767-0b1f-459a-956a-3eda2c318d73  enabled: updating Crucible zone 573969f5-edab-4837-a1dc-aea94128d4ce in-place
  112 2026-08-25T05:46:14.992Z bca381c0-b7f1-4cac-84f4-89c7b52b544d  enabled: updating Crucible zone 5fd6fd28-f708-446a-a706-bf7fb1ca1840 in-place
  113 2026-08-25T05:46:28.058Z b54ec609-7266-4f78-96bc-92815f868a84  enabled: updating Crucible zone 7a9a7958-2548-4220-9d34-2b642ceaaef4 in-place
  114 2026-08-25T05:46:42.030Z 6097e4b9-4d2c-40ce-8b18-43d2ce307ac2  enabled: expunge InternalDns zone 824de372-9eeb-4e50-bf6e-7aa6c4b0b81d for update
  115 2026-08-25T05:46:42.514Z 25f1eadd-db93-4592-9b71-1730fe05d5fb  enabled: updating CockroachDb zone 9511429c-7382-442c-9882-3760d0469fbf in-place
  116 2026-08-25T05:46:57.697Z 994a1c10-b4cf-412d-b1c9-58a8b6bd6101  enabled: 
  117 2026-08-25T05:47:12.187Z 4128f41c-0640-428f-8102-eb7a8f07e053  enabled: updating Crucible zone 9ba228cd-2ebe-4f84-8e89-601e80e1c2d2 in-place
  118 2026-08-25T05:47:26.132Z 1b36fdf3-f830-4706-a737-23e6e8284f6e  enabled: expunge InternalNtp zone b19aa0f5-27c2-4ec7-9f5f-c191f97a08ce for update
  119 2026-08-25T05:47:26.950Z 971b9dc9-3ed6-4d3e-a246-1a1e37bf94db  enabled: sled 68cfed7e-fdb2-4c3b-beef-f2663032cf5c: added zone: internal_ntp
  120 2026-08-25T05:47:38.602Z 279f2dc7-72ef-46bd-a087-fddcddebaab7  enabled: 
  121 2026-08-25T05:47:46.294Z d433d013-9432-4a00-8510-ad342339389b  enabled: updating Crucible zone bcb3c062-137f-46b6-9cbc-6f4098cf92fe in-place
  122 2026-08-25T05:47:58.769Z ddd24e7f-8e15-43fd-9d03-041127dad04d  enabled: expunge ExternalDns zone cf2ef94d-c9a5-4f7d-b89e-18bb3d459b9b for update
  123 2026-08-25T05:47:59.335Z d12c9bef-1ce4-4ae8-a2a9-a8428863d414  enabled: 
  124 2026-08-25T05:48:08.254Z 90659e33-86b1-45ff-adbc-68150253257a  enabled: 
  125 2026-08-25T05:48:11.616Z 5acf3ff8-a0b1-46bb-afef-6d0ee31e8051  enabled: updating Crucible zone 012fd864-53a3-4201-bdfd-bbddc1a7c059 in-place
  126 2026-08-25T05:48:23.843Z deffea70-aec6-40f0-aab0-d6ba2cc3f5e2  enabled: expunge InternalNtp zone 248b1fea-d2c8-4211-8b3d-aa50809edcdf for update
  127 2026-08-25T05:48:24.232Z ec5599ea-f21e-4c0d-9409-85a6c91a5e3a  enabled: sled bbe0267d-b97e-45db-8f60-347fecccebea: added zone: internal_ntp
  128 2026-08-25T05:48:36.233Z 66e593af-6931-4963-878c-a306c6ec1240  enabled: expunge CruciblePantry zone 2619718b-51ed-4703-819e-cf7fb18a4640 for update
  129 2026-08-25T05:48:36.837Z 47da793c-f39c-4702-854f-e13edd3d8f99  enabled: 
  130 2026-08-25T05:48:48.191Z 38d5e415-c133-442a-9173-13d62d2bf050  enabled: updating Crucible zone 33182dbf-6177-4e0c-aa83-67b3ac7d99ab in-place
  131 2026-08-25T05:49:02.031Z 08ae55ca-74fa-49aa-bf43-b408012715f8  enabled: updating Crucible zone 4010df97-cd0c-4f17-abaa-18790e47ef27 in-place
  132 2026-08-25T05:49:17.848Z 9cb9f888-784b-46c0-b179-20aad70a9fe2  enabled: updating Crucible zone 441b0e98-d763-47fe-8cd0-2ca10557cffb in-place
  133 2026-08-25T05:49:35.050Z 10928cf2-b359-4a23-a5e1-a1bce91a16d3  enabled: updating Crucible zone 7a21bffb-044e-4061-ab1a-70711086fb1e in-place
  134 2026-08-25T05:49:49.421Z 0a09d44e-48a9-444a-b864-2233ec3e58d9  enabled: updating Crucible zone 9aa75fa1-b2bc-4959-a9be-2ab335359cb3 in-place
  135 2026-08-25T05:50:01.467Z 2fc876cc-5d20-4929-86d2-3cfb99e95ce2  enabled: updating Crucible zone a1bdee4e-670b-4de3-a669-9fb974463e73 in-place
  136 2026-08-25T05:50:13.195Z 7d1be74b-1cfd-4b6d-9fa7-4d6cee8524f5  enabled: updating Crucible zone bd6515a1-4f8e-45f9-ae76-05bed9f2005b in-place
  137 2026-08-25T05:50:24.890Z 992af1c8-9616-4f3c-9fe3-09359828613d  enabled: updating Crucible zone cd5da597-9a63-41aa-85d9-a57755858365 in-place
  138 2026-08-25T05:50:38.910Z 0f0a0de7-ae85-4565-916e-654976b46fb0  enabled: updating CockroachDb zone d7ec46a9-ed5a-4d4e-b1a0-75b3f7459eb2 in-place
  139 2026-08-25T05:51:22.186Z fec3a027-1fc0-4a4e-b1f9-b3b6e49c62dc  enabled: updating Crucible zone e0fbaefd-a1f4-47a0-ae86-bd716ee39d4a in-place
  140 2026-08-25T05:51:35.153Z 9c781172-6ac4-4d95-82be-776b4495ecc8  enabled: expunge ExternalDns zone eefd5edd-99d4-40c9-be45-0c676128f54b for update
  141 2026-08-25T05:51:35.835Z 24a766cb-a18e-41c5-bdc1-34fdff9c525d  enabled: 
  142 2026-08-25T05:51:42.659Z a082cbbf-8d59-4d3c-a21d-b04bc41477ca  enabled: 
  143 2026-08-25T05:51:52.358Z ec8e8149-e986-4b64-a0b3-51c36a602af4  enabled: expunge ExternalDns zone 00f8a3d2-0043-4c26-b4b0-45d2decfa324 for update
  144 2026-08-25T05:51:53.197Z e6cf3cc1-754c-4837-96de-49e9fc4ea4d4  enabled: 
  145 2026-08-25T05:51:59.105Z c1434752-d83f-46b3-8644-c96161b5f025  enabled: 
  146 2026-08-25T05:52:02.417Z 0d78f1a1-2e60-44c3-90c1-11d8601ac9a2  enabled: expunge CruciblePantry zone 1b2bcdd4-64c4-4489-b47c-1924379c0d32 for update
  147 2026-08-25T05:52:03.075Z 16feaafa-2369-4e6c-bed4-1d21823bd3e4  enabled: 
  148 2026-08-25T05:52:12.027Z d4e830b0-2116-4810-bbd8-24943d960561  enabled: 
  149 2026-08-25T05:52:16.215Z 5560782c-1e6b-4cba-96b0-7e8c7dc8c5cd  enabled: updating Crucible zone 4247b180-d28a-466b-ab5e-1d141559d411 in-place
  150 2026-08-25T05:52:34.308Z 88ed3b48-e588-4b93-bee2-63e96788e57e  enabled: expunge InternalDns zone fcb4800f-e091-4baf-8699-d2417d447c4f for update
  151 2026-08-25T05:52:34.874Z 7b1b348b-d177-40c9-9edc-de47df3c11f7  enabled: updating Crucible zone 51ea4e1e-f6d4-4ec3-ad3e-0cd771763d4f in-place
  152 2026-08-25T05:52:38.646Z 6e082bdf-9cf8-4b1b-a892-266a54a7ce88  enabled: 
  153 2026-08-25T05:52:55.037Z 56ce10cb-e663-4bea-918a-f32d73ee146c  enabled: updating Crucible zone 5841cd93-f9fa-44b4-bbb2-53e372efa695 in-place
  154 2026-08-25T05:53:12.265Z d4a16e3d-0187-4c0b-97e4-96be09011817  enabled: updating Crucible zone 5a8df32a-7292-45e1-9097-bcf410e09758 in-place
  155 2026-08-25T05:53:31.997Z 0f1e2755-03b8-4225-803f-66093d738051  enabled: expunge InternalDns zone 66432531-37a7-49ab-9385-2d1239b42860 for update
  156 2026-08-25T05:53:32.959Z 1cb245f8-6593-450d-b9f2-a06cb8fe7ae0  enabled: updating Crucible zone 77a0feaf-a23e-4033-a8d1-2851da344ebd in-place
  157 2026-08-25T05:53:42.041Z 9f3d57e9-9793-4d09-bc88-1589b7117146  enabled: 
  158 2026-08-25T05:53:58.204Z 7130857d-e5d2-441c-9e78-add6f2ac2e05  enabled: expunge BoundaryNtp zone 87cddafb-1a01-4233-9b34-0bc3c462c453 for update
  159 2026-08-25T05:53:59.358Z 1c298c36-7505-4b83-a976-9a19ccc4cd97  enabled: sled d2358ee4-041d-4b21-a303-1d5751faa113: added zone: internal_ntp
  160 2026-08-25T05:54:10.612Z 6154f757-332b-43dc-8071-c1712c43c16e  enabled: 
  161 2026-08-25T05:54:17.000Z 6d63730c-b98b-4773-befc-f2be5a1054f5  enabled: updating Crucible zone 9d4d7ae5-36c4-44d7-8616-2294d90f4941 in-place
  162 2026-08-25T05:54:29.045Z bcd18f5c-978a-40f3-92c0-d2f686331b84  enabled: updating Crucible zone cba18b0c-bc7d-41eb-8c31-13a3fd189ecf in-place
  163 2026-08-25T05:54:40.623Z abdffe1b-ba9a-4f44-9227-776e1d377716  enabled: updating Crucible zone d6c56c03-2597-4b6a-8e8d-0e34f0efd4b3 in-place
  164 2026-08-25T05:54:54.070Z be742d6a-6638-4ddd-aecc-70f42d93e25f  enabled: updating Crucible zone f2d56791-410b-48e6-8ca9-dfc2f984135c in-place
  165 2026-08-25T05:55:12.187Z 2a930d11-e042-4c0c-a4e8-c674713aa6f6  enabled: updating Crucible zone f99386ed-7ae4-4ae4-8821-4bb751536c2a in-place
  166 2026-08-25T05:55:24.973Z 30a33b35-bcc5-4c2b-b3cb-275396b9662f  enabled: updating Crucible zone 0d6e258a-0422-451d-ba4f-63b58ca5b64f in-place
  167 2026-08-25T05:55:35.052Z a4cac71f-0e96-4ba7-878f-4e98f0d49b29  enabled: updating Crucible zone 25dcd782-af37-4d9d-93c7-abb14ee70fcd in-place
  168 2026-08-25T05:55:44.968Z e894cc2d-74ea-4f55-9283-65ee06f58df2  enabled: expunge BoundaryNtp zone 3e337744-ad29-4e5d-87a1-504773bc1617 for update
  169 2026-08-25T05:55:45.523Z be553998-8a90-4e92-9d2b-9cea6923561c  enabled: sled f1ea60d4-48db-406a-8b6e-56d19d1b7f6e: added zone: internal_ntp
  170 2026-08-25T05:56:05.869Z afb73193-5f44-4a62-ab80-565575be1004  enabled: 
  171 2026-08-25T05:56:17.846Z 88c938c7-4e19-43b9-a44b-c333a449bc3d  enabled: updating Crucible zone 4e8f19cf-7083-410e-94fa-8eeea3937493 in-place
  172 2026-08-25T05:56:27.689Z 4a043990-87c3-4be0-9bdc-557dfa92a48a  enabled: updating Crucible zone 513105b2-ad72-444f-8dc0-8e0b25b19105 in-place
  173 2026-08-25T05:56:38.698Z 7bf30df4-ff0b-4de2-a8fd-2ef13bafbb58  enabled: updating Crucible zone 5d6b0bf0-5779-4ac7-9056-d226d1148b89 in-place
  174 2026-08-25T05:56:48.184Z 3f3ab8cf-76bc-448d-a2e8-90075c8ecf4b  enabled: expunge Oximeter zone 5e304d47-5aa8-4926-9bd5-e751ed9faa9f for update
  175 2026-08-25T05:56:48.674Z baecb16a-fa72-4aa3-86e5-0a44b0456c08  enabled: 
  176 2026-08-25T05:56:56.299Z 59aea7d0-3f67-4f4c-b78b-e8ac519a6c33  enabled: 
  177 2026-08-25T05:57:02.228Z 6bf964ec-db6e-4b7b-bd5a-cc67e666c885  enabled: updating CockroachDb zone 4f852e7d-d869-4263-bf2d-ee3b2583e850 in-place
  178 2026-08-25T05:57:40.575Z 7214e711-ae8e-4910-8f58-aa2e7640466f  enabled: updating CockroachDb zone 2fcb1c6b-c5c5-402f-990f-e1a1d8a9dd56 in-place
  179 2026-08-25T05:58:07.080Z d2548d6a-ebfe-4aea-a197-20a97222304d  enabled: updating Crucible zone 84035fa3-6478-4d11-8b2f-dcf9baac016f in-place
  180 2026-08-25T05:58:18.257Z 95881a4b-b73d-4f60-843a-090885524dac  enabled: updating Crucible zone 88888080-5595-4984-91a5-81b03a887126 in-place
  181 2026-08-25T05:58:28.837Z 3b3242dc-bed5-4b96-808c-90610cc04e8d  enabled: updating Crucible zone b27301a9-9890-4ab7-88ae-0b32bda16a54 in-place
  182 2026-08-25T05:58:38.200Z 77b25d96-9f2f-4ba1-9ec2-b66d043f3484  enabled: updating Clickhouse zone b411ffaa-2427-4adf-99c2-be028f3ef5fa in-place
  183 2026-08-25T05:59:08.293Z d071fe78-e015-4539-a07c-9ac2f775c2df  enabled: updating CockroachDb zone cd27903a-98a2-45d7-923e-a6f250e39fec in-place
  184 2026-08-25T05:59:28.934Z 28c00543-b081-4387-a2c0-0f5cfe8b84a2  enabled: updating Crucible zone d8e35d69-4d10-48f6-aa27-c0ff770d6e20 in-place
  185 2026-08-25T05:59:29.752Z 4c40a7b3-02c1-402a-b04e-afbd50564970  enabled: 
  186 2026-08-25T05:59:55.355Z 690985a5-d2f8-46f1-a49f-7c732b8db2e6  enabled: updated nexus generation from 2 to 3
  187 2026-08-25T06:00:07.064Z df6aa33d-4f87-4393-b236-6f6edf95b9bc  enabled: expunge Nexus zone 4c38fe86-afb9-48c9-b28b-6b6d13efb916 for update
  188 2026-08-25T06:00:08.245Z 1f687953-b859-4d9c-a98e-72fc4feb82c9  enabled: expunge Nexus zone f7198589-ce8c-4709-81c3-312d1fe2dca9 for update
  189 2026-08-25T06:00:08.994Z 9d3c7392-de54-4cee-8e3f-31c520019b3a  enabled: expunge Nexus zone 77e9e878-6cee-4cd2-82b6-0c9af7be4f79 for update
  190 2026-08-25T06:00:17.893Z 3af5a425-307e-44e0-8c4c-9e38244d89be  enabled: 
  191 2026-08-25T06:00:21.283Z 80993263-0308-4e26-b095-7b750301ffaa  enabled: 
  192 2026-08-25T16:36:24.897Z ec1d0d53-c4e0-44a5-b365-ef234c91d333  enabled: 
  193 2026-08-25T16:40:57.110Z 556fb55d-8c08-4e0f-bc7f-46d297e3a1c8  enabled: 

Checking the files produced

Details

First, collect them:

[dublin]root@oxz_switch1:~# pilot host exec -c 'find /pool/ext/*/crypt/debug/*/debug_dropbox -type f > /var/tmp/dap-reconfigurator-files.txt' 14-17
14  2F8JEXDK           ok:
15  BRM27230037        ok:
16  BRM23230018        ok:
17  BRM23230010        ok:
[dublin]root@oxz_switch1:~# pilot host exec -c 'tar czf /var/tmp/dap-reconfigurator.tgz -I /var/tmp/dap-reconfigurator-files.txt' 14-17
14  2F8JEXDK           ok: 
15  BRM27230037        ok: 
16  BRM23230018        ok: 
17  BRM23230010        ok: 
[dublin]root@oxz_switch1:~# for sled in 14 15 16 17; do echo "sled $sled"; pilot host copy from -i /var/tmp/dap-reconfigurator.tgz -o $PWD/sled$sled.tgz $sled; done
sled 14
14  2F8JEXDK           ok
sled 15
15  BRM27230037        ok
sled 16
16  BRM23230018        ok
sled 17
17  BRM23230010        ok
[dublin]root@oxz_switch1:~# du -sh sled*.tgz
139K    sled14.tgz
3.94M   sled15.tgz
4.83M   sled16.tgz
4.39M   sled17.tgz

I copied these over to my dev system and extracted them.

Total file counts:

[dublin]root@oxz_switch1:~# pilot host exec -c 'find /pool/ext/*/crypt/debug/*/debug_dropbox -type f | wc -l' 14-17
14  2F8JEXDK           ok: 1
15  BRM27230037        ok: 31
16  BRM23230018        ok: 38
17  BRM23230010        ok: 34

That's 104 files, which matches what I extracted. For convenience, I linked them all into one spot:

dap@ivanova extracted $ find pool/ -type f | while read x; do ln -fs $PWD/$x "all/$(basename $x)"; done

Now, loading it up into reconfigurator-cli:

dap@ivanova omicron-fix $ ./target/debug/reconfigurator-cli
generated RNG seed: guardedly-premier-ermine
〉load dublin-data/extracted/all/*
latest of 104 files: dublin-data/extracted/all/20260825T1639Z-target-556fb55d-8c08-4e0f-bc7f-46d297e3a1c8.json.1787676057.0
loaded data from 104 files
result:
  system:
    using collection 617f045d-66b3-4f7d-8573-22c4d85fb900 as source of sled inventory data
    loaded sleds: 68cfed7e-fdb2-4c3b-beef-f2663032cf5c, bbe0267d-b97e-45db-8f60-347fecccebea, d2358ee4-041d-4b21-a303-1d5751faa113, f1ea60d4-48db-406a-8b6e-56d19d1b7f6e
    loaded collections: 0a826815-9b5c-42d5-bf36-35c7f71f2d15, 0b09fc78-8ab4-47a8-9a4b-75362ff9003c, 0b5755bc-f07c-4bdc-b54e-7a397d5b5a8b, 0cf558e2-3ea7-4d70-8b67-071ac9eac78a, 0db91160-c27b-4be1-9839-358ab01de22e, 0f233820-acb1-47de-8dae-362ed73277b5, 11a3c5fe-6711-4a05-8f9e-7ac88a660d63, 12cad890-9bf0-4187-8e55-00f3a5a0aabf, 137ba536-5463-48eb-998a-070dfc834ed2, 180e1bea-c39c-4f36-8e44-18e10c6a3dfd, 199411ae-3a55-4ca8-92c4-773437c83c26, 19f199ce-6bc9-4679-ad29-e45f102633f9, 1adcaf13-6fe6-410d-9ac0-c1b50a679c56, 1b20c7a4-be3f-4eaa-9442-53539ec497cd, 216552d9-aa0c-4ec4-a234-7968324e52a5, 21e0d66b-d772-487e-8dcb-795009f62082, 235fe703-f286-459d-9e3f-e3d0d54b2ec9, 280f52a3-cdf4-47e7-b000-18624374f3e5, 29595192-ec4a-4340-8bed-e306ca069268, 35c626b0-931a-46ec-b275-44d8f145f646, 38692012-96d3-4bd5-ac07-b5090026dcb5, 388b3e9d-ef04-47bc-9723-aa0fb7e051bb, 3a91a3eb-258d-4cdb-bca9-43b419f73b9c, 406af038-469e-4da5-8046-d37677e9fdb6, 46638807-fec3-4a65-8cc6-912030eec594, 49772824-c480-4240-b49a-3a3d0093a419, 4bf7dcd7-0080-437b-b305-4d7d16a645a8, 4c83130d-1d39-472a-951e-8fd831953162, 4ca60b86-2b2f-4dc3-b59e-70fce79a7eeb, 4e886175-a990-4caa-b23b-ef731cdbbd96, 53d4402b-a2f5-439b-8449-58991afdce0e, 53edd5c3-f83e-4660-a4b5-e85c3d02b746, 5de7ad9c-5ef4-4fb6-9ace-9e319028c9c1, 617f045d-66b3-4f7d-8573-22c4d85fb900, 62ec1a60-e88f-4fb4-ad66-a24fab60af71, 6456c153-e75f-44fa-b301-a686f79d854c, 66540d1c-4908-491f-96d0-edb2f848132e, 68d6d67f-73e1-4e6b-9577-15940be5040d, 6bfbceec-b60a-48f8-bbbc-cdd3ec2e8298, 6e25cf0a-c5d3-4be8-b510-2d9ddf7058be, 701f7819-8bad-4d37-8329-c19ca0edab47, 709c8995-5553-412c-9ac9-85e1ac74a6dd, 763b04e6-5166-4065-8d5e-056893902efc, 7695e462-3dbb-45e5-abdc-62c6ce7b1794, 7a046e5e-4c89-44de-9343-03412d48d35c, 7b1fed22-006d-4389-81fa-dd06caf55a53, 7b5c28c8-f0db-4319-8cbd-9d7fcc10def8, 8662e6b3-fe2d-4358-b5c5-c40e9271171f, 8df25f7c-0ddc-4f0c-89b5-81d7d798313f, 957ed205-9ee3-498f-a7b1-8aa22a0fdd02, 95d7e49c-d16c-4438-8547-8fb08d8b7ead, 981bded3-3aac-4a71-9184-5d9c7ef6325a, 9e9a91fa-7b3d-42c2-9af4-b500085d6ac9, a4ca5c93-3ed1-4113-b7b8-a16efd8782ef, a5aeacd3-dc4e-4071-a083-eb288ba717f4, a632853c-daa3-4497-a1d3-d8da7c3b2495, a8c959e4-6a4a-4cb3-85b7-e2876ef706a2, ac50b628-d22c-43d5-9436-94f4a93020ad, ace3ace3-e236-4e9c-b019-03989df52992, adef37a5-fbb9-439f-ad97-94be0f539d93, b59211b3-4579-4e58-a040-b4bf2f308318, bbc898df-5f9d-4ca8-bb64-f37b7dcbfa61, c5a60d13-f70a-4d31-9bdf-6f0ffded49f8, ca11707c-d20f-4dd6-b824-b9e06da9db03, ca865655-6985-4f07-9845-e2f26f043686, cdb5f739-66d6-4a88-9065-cc78d973fced, ce2463fd-099a-4a44-8b8f-e9513a968d50, d2b509f3-bab7-4360-b2d8-99934e1ba917, d603d074-a813-4358-a235-d19d5e0bd09d, d8d742b9-3ee3-46f2-8a75-7a0d23576fb3, d9609773-1bc6-4f7e-bfbc-dc3a85c2b262, db7621b3-762a-45e7-a872-42b62ae2dd50, e2cf6511-191d-45d0-a7da-419e4fd2b2a0, e323e524-bf2e-4c93-8d97-516ca47d10fb, e3748413-82e9-4a34-915b-e707dec07f0e, e89ae097-f806-4fca-b3a1-60d6a411c6e4, e8f0d03f-d621-43ff-90f2-08a328c0079f, ea440ca9-1165-40f3-81cb-31117d70fe8f, f2df26ff-9b70-41cb-8ca4-e99d6e4f44f1, f3abd2f8-333e-4c2d-aebc-a52f15153ff9, f42e6933-90ce-4eb9-8bbc-5b1e054b452f, f68966c8-db25-45d0-a8d4-26ddb3ec4202, fbf532e6-aa12-45ad-a7b8-a974a9a14534, fc60f096-9c73-4178-99f7-2138c17176bf
    loaded blueprints: 08ae55ca-74fa-49aa-bf43-b408012715f8, 0a09d44e-48a9-444a-b864-2233ec3e58d9, 0a82a35e-3e18-4848-89a8-b707fb2ffcd3, 0d78f1a1-2e60-44c3-90c1-11d8601ac9a2, 0f0a0de7-ae85-4565-916e-654976b46fb0, 0f1e2755-03b8-4225-803f-66093d738051, 0f7b3d0a-00b2-4a31-9e04-8cdb0df2afae, 10928cf2-b359-4a23-a5e1-a1bce91a16d3, 16feaafa-2369-4e6c-bed4-1d21823bd3e4, 17281ed1-6e4b-4db4-acfc-83c4fc707f00, 1b36fdf3-f830-4706-a737-23e6e8284f6e, 1c298c36-7505-4b83-a976-9a19ccc4cd97, 1cb245f8-6593-450d-b9f2-a06cb8fe7ae0, 1f687953-b859-4d9c-a98e-72fc4feb82c9, 24a766cb-a18e-41c5-bdc1-34fdff9c525d, 25f1eadd-db93-4592-9b71-1730fe05d5fb, 279f2dc7-72ef-46bd-a087-fddcddebaab7, 28c00543-b081-4387-a2c0-0f5cfe8b84a2, 2a930d11-e042-4c0c-a4e8-c674713aa6f6, 2fc876cc-5d20-4929-86d2-3cfb99e95ce2, 30a33b35-bcc5-4c2b-b3cb-275396b9662f, 3732ad5a-c7ff-4826-aebe-8fade8512805, 38d5e415-c133-442a-9173-13d62d2bf050, 3af5a425-307e-44e0-8c4c-9e38244d89be, 3b3242dc-bed5-4b96-808c-90610cc04e8d, 3e7e2303-190b-4d6e-82d3-967ef8a7cad9, 3f3ab8cf-76bc-448d-a2e8-90075c8ecf4b, 4128f41c-0640-428f-8102-eb7a8f07e053, 44e73634-cb11-4a9e-881c-6c5b8e651296, 46c2a12e-d98c-4720-9f15-e1dea66115a2, 47da793c-f39c-4702-854f-e13edd3d8f99, 4a043990-87c3-4be0-9bdc-557dfa92a48a, 4c40a7b3-02c1-402a-b04e-afbd50564970, 5560782c-1e6b-4cba-96b0-7e8c7dc8c5cd, 556fb55d-8c08-4e0f-bc7f-46d297e3a1c8, 56ce10cb-e663-4bea-918a-f32d73ee146c, 59aea7d0-3f67-4f4c-b78b-e8ac519a6c33, 5acf3ff8-a0b1-46bb-afef-6d0ee31e8051, 6097e4b9-4d2c-40ce-8b18-43d2ce307ac2, 6154f757-332b-43dc-8071-c1712c43c16e, 66e593af-6931-4963-878c-a306c6ec1240, 690985a5-d2f8-46f1-a49f-7c732b8db2e6, 6bf964ec-db6e-4b7b-bd5a-cc67e666c885, 6d63730c-b98b-4773-befc-f2be5a1054f5, 6e082bdf-9cf8-4b1b-a892-266a54a7ce88, 7130857d-e5d2-441c-9e78-add6f2ac2e05, 7214e711-ae8e-4910-8f58-aa2e7640466f, 77b25d96-9f2f-4ba1-9ec2-b66d043f3484, 7a227090-d388-48d4-9b9c-5d6c77748589, 7b1b348b-d177-40c9-9edc-de47df3c11f7, 7bf30df4-ff0b-4de2-a8fd-2ef13bafbb58, 7d1be74b-1cfd-4b6d-9fa7-4d6cee8524f5, 80993263-0308-4e26-b095-7b750301ffaa, 881880e4-e539-4d5c-a44f-4baee8a79fe9, 88c938c7-4e19-43b9-a44b-c333a449bc3d, 88ed3b48-e588-4b93-bee2-63e96788e57e, 89dd2764-ebae-4de0-a900-6129bbcc8387, 90659e33-86b1-45ff-adbc-68150253257a, 95881a4b-b73d-4f60-843a-090885524dac, 971b9dc9-3ed6-4d3e-a246-1a1e37bf94db, 992af1c8-9616-4f3c-9fe3-09359828613d, 994a1c10-b4cf-412d-b1c9-58a8b6bd6101, 9b0b0aff-e665-4421-abee-4b3f596c3ec0, 9c781172-6ac4-4d95-82be-776b4495ecc8, 9cb9f888-784b-46c0-b179-20aad70a9fe2, 9d23e71a-a381-4beb-88ec-17247e4c41e1, 9d3c7392-de54-4cee-8e3f-31c520019b3a, 9f3d57e9-9793-4d09-bc88-1589b7117146, 9fc29715-056f-48f0-8116-d43da6fc5001, a082cbbf-8d59-4d3c-a21d-b04bc41477ca, a0e6c19f-0ac9-482d-9021-9d905def725c, a4cac71f-0e96-4ba7-878f-4e98f0d49b29, abdffe1b-ba9a-4f44-9227-776e1d377716, afb73193-5f44-4a62-ab80-565575be1004, b032637e-634a-44a7-b764-b583fbd90baa, b54ec609-7266-4f78-96bc-92815f868a84, b8e0d2dc-4dc2-4867-80d3-80d8ce0e2238, baecb16a-fa72-4aa3-86e5-0a44b0456c08, bca381c0-b7f1-4cac-84f4-89c7b52b544d, bcd18f5c-978a-40f3-92c0-d2f686331b84, be553998-8a90-4e92-9d2b-9cea6923561c, be742d6a-6638-4ddd-aecc-70f42d93e25f, c1434752-d83f-46b3-8644-c96161b5f025, d071fe78-e015-4539-a07c-9ac2f775c2df, d12c9bef-1ce4-4ae8-a2a9-a8428863d414, d2548d6a-ebfe-4aea-a197-20a97222304d, d433d013-9432-4a00-8510-ad342339389b, d4a16e3d-0187-4c0b-97e4-96be09011817, d4e830b0-2116-4810-bbd8-24943d960561, d6b9532b-5550-4246-a7ee-6a3421911c4f, ddd24e7f-8e15-43fd-9d03-041127dad04d, deffea70-aec6-40f0-aab0-d6ba2cc3f5e2, df6aa33d-4f87-4393-b236-6f6edf95b9bc, e5fa77ff-5bdf-440c-9bfb-00eb3ecc8029, e60f9767-0b1f-459a-956a-3eda2c318d73, e628b0f4-9f48-4d73-aee9-e1f5d4617962, e6cf3cc1-754c-4837-96de-49e9fc4ea4d4, e894cc2d-74ea-4f55-9283-65ee06f58df2, ec1d0d53-c4e0-44a5-b365-ef234c91d333, ec5599ea-f21e-4c0d-9409-85a6c91a5e3a, ec8e8149-e986-4b64-a0b3-51c36a602af4, f70c9551-df0f-45e6-98ad-277b76110d44, fec3a027-1fc0-4a4e-b1f9-b3b6e49c62dc
    loaded external IP policy: ExternalIpPolicy { service_pool_ipv4_ranges: [Ipv4Range { first: 172.20.36.1, last: 172.20.36.16 }], service_pool_ipv6_ranges: [], external_dns_ips: {172.20.36.1, 172.20.36.2, 172.20.36.3} }
    loaded cockroachdb settings: fingerprint = d4d87aa2ad877a4cc2fddd0573952362739110de, version = 22.1, preserve downgrade = 22.1
    loaded internal DNS generations: (none)
    loaded external DNS generations: (none)
  config:
    configured external DNS zone name: dublin.eng.oxide.computer
    configured silo names: default-silo, recovery
    active Nexus generation: 3

〉

〉blueprint-history
TIME                     BLUEPRINT
2026-08-25T04:37:34.812Z 44e73634-cb11-4a9e-881c-6c5b8e651296 updated nexus generation from 1 to 2
error walking back from blueprint 44e73634-cb11-4a9e-881c-6c5b8e651296 to parent 91fd92c5-a907-47d4-9f4f-201eddc80acc: no such key: blueprint 91fd92c5-a907-47d4-9f4f-201eddc80acc
2026-08-25T04:37:48.471Z 9fc29715-056f-48f0-8116-d43da6fc5001 expunge Nexus zone 05a25a6b-ec74-42b9-a61f-5e7245c46250 for update
2026-08-25T04:37:49.898Z 7a227090-d388-48d4-9b9c-5d6c77748589 expunge Nexus zone 342a781f-a4be-4014-a392-985d7d07e53d for update
2026-08-25T04:37:50.801Z e5fa77ff-5bdf-440c-9bfb-00eb3ecc8029 expunge Nexus zone 7b70889b-33d0-4851-9a6f-326d80827f17 for update
2026-08-25T04:37:57.860Z b032637e-634a-44a7-b764-b583fbd90baa
2026-08-25T05:04:25.215Z a0e6c19f-0ac9-482d-9021-9d905def725c update Sled 17 (BRM23230010) host OS to 23.0.0-0.ci+gitaa0e33451bd
2026-08-25T05:11:05.070Z 9d23e71a-a381-4beb-88ec-17247e4c41e1
2026-08-25T05:13:32.839Z e628b0f4-9f48-4d73-aee9-e1f5d4617962 update Sled 16 (BRM23230018) host OS to 23.0.0-0.ci+gitaa0e33451bd
2026-08-25T05:20:22.985Z 881880e4-e539-4d5c-a44f-4baee8a79fe9
2026-08-25T05:22:53.489Z 17281ed1-6e4b-4db4-acfc-83c4fc707f00 update Sled 15 (BRM27230037) host OS to 23.0.0-0.ci+gitaa0e33451bd
2026-08-25T05:30:18.525Z d6b9532b-5550-4246-a7ee-6a3421911c4f
2026-08-25T05:31:01.405Z b8e0d2dc-4dc2-4867-80d3-80d8ce0e2238 update Sled 14 (2F8JEXDK) host OS to 23.0.0-0.ci+gitaa0e33451bd
2026-08-25T05:42:40.516Z 3732ad5a-c7ff-4826-aebe-8fade8512805
2026-08-25T05:44:51.874Z 0a82a35e-3e18-4848-89a8-b707fb2ffcd3 updating Crucible zone 15973675-e5db-45de-b658-d63493cd6051 in-place
2026-08-25T05:45:04.815Z 3e7e2303-190b-4d6e-82d3-967ef8a7cad9 updating Crucible zone 367cc8de-969d-4943-8838-4143e0d2c7ea in-place
2026-08-25T05:45:17.420Z f70c9551-df0f-45e6-98ad-277b76110d44 expunge CruciblePantry zone 3dfff007-9173-45e9-a75f-25165f362ab6 for update
2026-08-25T05:45:18.368Z 89dd2764-ebae-4de0-a900-6129bbcc8387
2026-08-25T05:45:22.530Z 9b0b0aff-e665-4421-abee-4b3f596c3ec0
2026-08-25T05:45:31.838Z 0f7b3d0a-00b2-4a31-9e04-8cdb0df2afae updating Crucible zone 417c0b3d-77ac-4b9f-99df-c24dd27c7bf9 in-place
2026-08-25T05:45:45.203Z 46c2a12e-d98c-4720-9f15-e1dea66115a2 updating Crucible zone 46a626d4-1c21-4960-aed7-d6aef0567826 in-place
2026-08-25T05:45:57.516Z e60f9767-0b1f-459a-956a-3eda2c318d73 updating Crucible zone 573969f5-edab-4837-a1dc-aea94128d4ce in-place
2026-08-25T05:46:14.744Z bca381c0-b7f1-4cac-84f4-89c7b52b544d updating Crucible zone 5fd6fd28-f708-446a-a706-bf7fb1ca1840 in-place
2026-08-25T05:46:27.790Z b54ec609-7266-4f78-96bc-92815f868a84 updating Crucible zone 7a9a7958-2548-4220-9d34-2b642ceaaef4 in-place
2026-08-25T05:46:41.898Z 6097e4b9-4d2c-40ce-8b18-43d2ce307ac2 expunge InternalDns zone 824de372-9eeb-4e50-bf6e-7aa6c4b0b81d for update
2026-08-25T05:46:42.380Z 25f1eadd-db93-4592-9b71-1730fe05d5fb updating CockroachDb zone 9511429c-7382-442c-9882-3760d0469fbf in-place
2026-08-25T05:46:57.323Z 994a1c10-b4cf-412d-b1c9-58a8b6bd6101
2026-08-25T05:47:11.799Z 4128f41c-0640-428f-8102-eb7a8f07e053 updating Crucible zone 9ba228cd-2ebe-4f84-8e89-601e80e1c2d2 in-place
2026-08-25T05:47:25.862Z 1b36fdf3-f830-4706-a737-23e6e8284f6e expunge InternalNtp zone b19aa0f5-27c2-4ec7-9f5f-c191f97a08ce for update
2026-08-25T05:47:26.654Z 971b9dc9-3ed6-4d3e-a246-1a1e37bf94db sled 68cfed7e-fdb2-4c3b-beef-f2663032cf5c: added zone: internal_ntp
2026-08-25T05:47:38.277Z 279f2dc7-72ef-46bd-a087-fddcddebaab7
2026-08-25T05:47:46.121Z d433d013-9432-4a00-8510-ad342339389b updating Crucible zone bcb3c062-137f-46b6-9cbc-6f4098cf92fe in-place
2026-08-25T05:47:58.525Z ddd24e7f-8e15-43fd-9d03-041127dad04d expunge ExternalDns zone cf2ef94d-c9a5-4f7d-b89e-18bb3d459b9b for update
2026-08-25T05:47:59.129Z d12c9bef-1ce4-4ae8-a2a9-a8428863d414
2026-08-25T05:48:07.821Z 90659e33-86b1-45ff-adbc-68150253257a
2026-08-25T05:48:11.285Z 5acf3ff8-a0b1-46bb-afef-6d0ee31e8051 updating Crucible zone 012fd864-53a3-4201-bdfd-bbddc1a7c059 in-place
2026-08-25T05:48:23.609Z deffea70-aec6-40f0-aab0-d6ba2cc3f5e2 expunge InternalNtp zone 248b1fea-d2c8-4211-8b3d-aa50809edcdf for update
2026-08-25T05:48:24.097Z ec5599ea-f21e-4c0d-9409-85a6c91a5e3a sled bbe0267d-b97e-45db-8f60-347fecccebea: added zone: internal_ntp
2026-08-25T05:48:36.074Z 66e593af-6931-4963-878c-a306c6ec1240 expunge CruciblePantry zone 2619718b-51ed-4703-819e-cf7fb18a4640 for update
2026-08-25T05:48:36.526Z 47da793c-f39c-4702-854f-e13edd3d8f99
2026-08-25T05:48:48.035Z 38d5e415-c133-442a-9173-13d62d2bf050 updating Crucible zone 33182dbf-6177-4e0c-aa83-67b3ac7d99ab in-place
2026-08-25T05:49:01.808Z 08ae55ca-74fa-49aa-bf43-b408012715f8 updating Crucible zone 4010df97-cd0c-4f17-abaa-18790e47ef27 in-place
2026-08-25T05:49:17.575Z 9cb9f888-784b-46c0-b179-20aad70a9fe2 updating Crucible zone 441b0e98-d763-47fe-8cd0-2ca10557cffb in-place
2026-08-25T05:49:34.657Z 10928cf2-b359-4a23-a5e1-a1bce91a16d3 updating Crucible zone 7a21bffb-044e-4061-ab1a-70711086fb1e in-place
2026-08-25T05:49:49.229Z 0a09d44e-48a9-444a-b864-2233ec3e58d9 updating Crucible zone 9aa75fa1-b2bc-4959-a9be-2ab335359cb3 in-place
2026-08-25T05:50:01.205Z 2fc876cc-5d20-4929-86d2-3cfb99e95ce2 updating Crucible zone a1bdee4e-670b-4de3-a669-9fb974463e73 in-place
2026-08-25T05:50:13.051Z 7d1be74b-1cfd-4b6d-9fa7-4d6cee8524f5 updating Crucible zone bd6515a1-4f8e-45f9-ae76-05bed9f2005b in-place
2026-08-25T05:50:24.635Z 992af1c8-9616-4f3c-9fe3-09359828613d updating Crucible zone cd5da597-9a63-41aa-85d9-a57755858365 in-place
2026-08-25T05:50:38.645Z 0f0a0de7-ae85-4565-916e-654976b46fb0 updating CockroachDb zone d7ec46a9-ed5a-4d4e-b1a0-75b3f7459eb2 in-place
2026-08-25T05:51:21.796Z fec3a027-1fc0-4a4e-b1f9-b3b6e49c62dc updating Crucible zone e0fbaefd-a1f4-47a0-ae86-bd716ee39d4a in-place
2026-08-25T05:51:34.882Z 9c781172-6ac4-4d95-82be-776b4495ecc8 expunge ExternalDns zone eefd5edd-99d4-40c9-be45-0c676128f54b for update
2026-08-25T05:51:35.561Z 24a766cb-a18e-41c5-bdc1-34fdff9c525d
2026-08-25T05:51:42.306Z a082cbbf-8d59-4d3c-a21d-b04bc41477ca
2026-08-25T05:51:52.086Z ec8e8149-e986-4b64-a0b3-51c36a602af4 expunge ExternalDns zone 00f8a3d2-0043-4c26-b4b0-45d2decfa324 for update
2026-08-25T05:51:52.748Z e6cf3cc1-754c-4837-96de-49e9fc4ea4d4
2026-08-25T05:51:58.781Z c1434752-d83f-46b3-8644-c96161b5f025
2026-08-25T05:52:02.122Z 0d78f1a1-2e60-44c3-90c1-11d8601ac9a2 expunge CruciblePantry zone 1b2bcdd4-64c4-4489-b47c-1924379c0d32 for update
2026-08-25T05:52:02.885Z 16feaafa-2369-4e6c-bed4-1d21823bd3e4
2026-08-25T05:52:11.777Z d4e830b0-2116-4810-bbd8-24943d960561
2026-08-25T05:52:16.063Z 5560782c-1e6b-4cba-96b0-7e8c7dc8c5cd updating Crucible zone 4247b180-d28a-466b-ab5e-1d141559d411 in-place
2026-08-25T05:52:33.953Z 88ed3b48-e588-4b93-bee2-63e96788e57e expunge InternalDns zone fcb4800f-e091-4baf-8699-d2417d447c4f for update
2026-08-25T05:52:34.629Z 7b1b348b-d177-40c9-9edc-de47df3c11f7 updating Crucible zone 51ea4e1e-f6d4-4ec3-ad3e-0cd771763d4f in-place
2026-08-25T05:52:38.227Z 6e082bdf-9cf8-4b1b-a892-266a54a7ce88
2026-08-25T05:52:54.714Z 56ce10cb-e663-4bea-918a-f32d73ee146c updating Crucible zone 5841cd93-f9fa-44b4-bbb2-53e372efa695 in-place
2026-08-25T05:53:11.945Z d4a16e3d-0187-4c0b-97e4-96be09011817 updating Crucible zone 5a8df32a-7292-45e1-9097-bcf410e09758 in-place
2026-08-25T05:53:31.716Z 0f1e2755-03b8-4225-803f-66093d738051 expunge InternalDns zone 66432531-37a7-49ab-9385-2d1239b42860 for update
2026-08-25T05:53:32.642Z 1cb245f8-6593-450d-b9f2-a06cb8fe7ae0 updating Crucible zone 77a0feaf-a23e-4033-a8d1-2851da344ebd in-place
2026-08-25T05:53:41.853Z 9f3d57e9-9793-4d09-bc88-1589b7117146
2026-08-25T05:53:57.923Z 7130857d-e5d2-441c-9e78-add6f2ac2e05 expunge BoundaryNtp zone 87cddafb-1a01-4233-9b34-0bc3c462c453 for update
2026-08-25T05:53:58.955Z 1c298c36-7505-4b83-a976-9a19ccc4cd97 sled d2358ee4-041d-4b21-a303-1d5751faa113: added zone: internal_ntp
2026-08-25T05:54:10.346Z 6154f757-332b-43dc-8071-c1712c43c16e
2026-08-25T05:54:16.679Z 6d63730c-b98b-4773-befc-f2be5a1054f5 updating Crucible zone 9d4d7ae5-36c4-44d7-8616-2294d90f4941 in-place
2026-08-25T05:54:28.750Z bcd18f5c-978a-40f3-92c0-d2f686331b84 updating Crucible zone cba18b0c-bc7d-41eb-8c31-13a3fd189ecf in-place
2026-08-25T05:54:40.355Z abdffe1b-ba9a-4f44-9227-776e1d377716 updating Crucible zone d6c56c03-2597-4b6a-8e8d-0e34f0efd4b3 in-place
2026-08-25T05:54:53.697Z be742d6a-6638-4ddd-aecc-70f42d93e25f updating Crucible zone f2d56791-410b-48e6-8ca9-dfc2f984135c in-place
2026-08-25T05:55:11.906Z 2a930d11-e042-4c0c-a4e8-c674713aa6f6 updating Crucible zone f99386ed-7ae4-4ae4-8821-4bb751536c2a in-place
2026-08-25T05:55:24.685Z 30a33b35-bcc5-4c2b-b3cb-275396b9662f updating Crucible zone 0d6e258a-0422-451d-ba4f-63b58ca5b64f in-place
2026-08-25T05:55:34.806Z a4cac71f-0e96-4ba7-878f-4e98f0d49b29 updating Crucible zone 25dcd782-af37-4d9d-93c7-abb14ee70fcd in-place
2026-08-25T05:55:44.712Z e894cc2d-74ea-4f55-9283-65ee06f58df2 expunge BoundaryNtp zone 3e337744-ad29-4e5d-87a1-504773bc1617 for update
2026-08-25T05:55:45.334Z be553998-8a90-4e92-9d2b-9cea6923561c sled f1ea60d4-48db-406a-8b6e-56d19d1b7f6e: added zone: internal_ntp
2026-08-25T05:56:05.625Z afb73193-5f44-4a62-ab80-565575be1004
2026-08-25T05:56:17.568Z 88c938c7-4e19-43b9-a44b-c333a449bc3d updating Crucible zone 4e8f19cf-7083-410e-94fa-8eeea3937493 in-place
2026-08-25T05:56:27.516Z 4a043990-87c3-4be0-9bdc-557dfa92a48a updating Crucible zone 513105b2-ad72-444f-8dc0-8e0b25b19105 in-place
2026-08-25T05:56:38.382Z 7bf30df4-ff0b-4de2-a8fd-2ef13bafbb58 updating Crucible zone 5d6b0bf0-5779-4ac7-9056-d226d1148b89 in-place
2026-08-25T05:56:48.036Z 3f3ab8cf-76bc-448d-a2e8-90075c8ecf4b expunge Oximeter zone 5e304d47-5aa8-4926-9bd5-e751ed9faa9f for update
2026-08-25T05:56:48.472Z baecb16a-fa72-4aa3-86e5-0a44b0456c08
2026-08-25T05:56:56.127Z 59aea7d0-3f67-4f4c-b78b-e8ac519a6c33
2026-08-25T05:57:01.785Z 6bf964ec-db6e-4b7b-bd5a-cc67e666c885 updating CockroachDb zone 4f852e7d-d869-4263-bf2d-ee3b2583e850 in-place
2026-08-25T05:57:40.120Z 7214e711-ae8e-4910-8f58-aa2e7640466f updating CockroachDb zone 2fcb1c6b-c5c5-402f-990f-e1a1d8a9dd56 in-place
2026-08-25T05:58:06.830Z d2548d6a-ebfe-4aea-a197-20a97222304d updating Crucible zone 84035fa3-6478-4d11-8b2f-dcf9baac016f in-place
2026-08-25T05:58:17.899Z 95881a4b-b73d-4f60-843a-090885524dac updating Crucible zone 88888080-5595-4984-91a5-81b03a887126 in-place
2026-08-25T05:58:28.477Z 3b3242dc-bed5-4b96-808c-90610cc04e8d updating Crucible zone b27301a9-9890-4ab7-88ae-0b32bda16a54 in-place
2026-08-25T05:58:37.941Z 77b25d96-9f2f-4ba1-9ec2-b66d043f3484 updating Clickhouse zone b411ffaa-2427-4adf-99c2-be028f3ef5fa in-place
2026-08-25T05:59:07.958Z d071fe78-e015-4539-a07c-9ac2f775c2df updating CockroachDb zone cd27903a-98a2-45d7-923e-a6f250e39fec in-place
2026-08-25T05:59:28.634Z 28c00543-b081-4387-a2c0-0f5cfe8b84a2 updating Crucible zone d8e35d69-4d10-48f6-aa27-c0ff770d6e20 in-place
2026-08-25T05:59:29.367Z 4c40a7b3-02c1-402a-b04e-afbd50564970
2026-08-25T05:59:55.000Z 690985a5-d2f8-46f1-a49f-7c732b8db2e6 updated nexus generation from 2 to 3
2026-08-25T06:00:06.573Z df6aa33d-4f87-4393-b236-6f6edf95b9bc expunge Nexus zone 4c38fe86-afb9-48c9-b28b-6b6d13efb916 for update
2026-08-25T06:00:07.903Z 1f687953-b859-4d9c-a98e-72fc4feb82c9 expunge Nexus zone f7198589-ce8c-4709-81c3-312d1fe2dca9 for update
2026-08-25T06:00:08.828Z 9d3c7392-de54-4cee-8e3f-31c520019b3a expunge Nexus zone 77e9e878-6cee-4cd2-82b6-0c9af7be4f79 for update
2026-08-25T06:00:17.751Z 3af5a425-307e-44e0-8c4c-9e38244d89be
2026-08-25T06:00:21.099Z 80993263-0308-4e26-b095-7b750301ffaa
2026-08-25T16:35:41.164Z ec1d0d53-c4e0-44a5-b365-ef234c91d333
2026-08-25T16:39:56.767Z 556fb55d-8c08-4e0f-bc7f-46d297e3a1c8

〉

That all looks good! I was initially worried about the error around blueprint 91fd92c5-a907-47d4-9f4f-201eddc80acc before I realized: this is the last one that was created by the Nexus zones that predate my changes. So that's expected -- that's what happens when one of these files is missing.

Now, based on omdb reconfigurator history, we should have about 102 files (that's the count of lines after these changes were deployed). We have 104 files. There is one "intent" file! And a "plan" file (that didn't immediately become a target).

dap@ivanova omicron-fix $ ls -l dublin-data/extracted/all/ | grep -i intent
lrwxrwxrwx   1 dap      staff        263 Aug 25 09:55 20260825T0548Z-autoplan-intent-47da793c-f39c-4702-854f-e13edd3d8f99.json.1787636916.0 -> /home/dap/omicron-fix/dublin-data/extracted/pool/ext/312fb0ae-236b-4929-9b0e-90a3acc66151/crypt/debug/oxz_nexus_f7198589-ce8c-4709-81c3-312d1fe2dca9/debug_dropbox/reconfigurator/20260825T0548Z-autoplan-intent-47da793c-f39c-4702-854f-e13edd3d8f99.json.1787636916.0
dap@ivanova omicron-fix $ ls -l dublin-data/extracted/all/ | tail -n 4
lrwxrwxrwx   1 dap      staff        256 Aug 25 09:55 20260825T0600Z-autoplan-df6aa33d-4f87-4393-b236-6f6edf95b9bc.json.1787637607.0 -> /home/dap/omicron-fix/dublin-data/extracted/pool/ext/26af5541-1494-40df-a0bd-912ce32fb65e/crypt/debug/oxz_nexus_47be9163-a45e-4d68-a80a-6da945359e1e/debug_dropbox/reconfigurator/20260825T0600Z-autoplan-df6aa33d-4f87-4393-b236-6f6edf95b9bc.json.1787637607.0
lrwxrwxrwx   1 dap      staff        252 Aug 25 09:55 20260825T1635Z-plan-ec1d0d53-c4e0-44a5-b365-ef234c91d333.json.1787675741.0 -> /home/dap/omicron-fix/dublin-data/extracted/pool/ext/82ea9a63-188a-4a57-91ec-d2903c136c8d/crypt/debug/oxz_nexus_e399c27f-0cfb-4296-9c86-743171da24ee/debug_dropbox/reconfigurator/20260825T1635Z-plan-ec1d0d53-c4e0-44a5-b365-ef234c91d333.json.1787675741.0
lrwxrwxrwx   1 dap      staff        254 Aug 25 09:55 20260825T1635Z-target-ec1d0d53-c4e0-44a5-b365-ef234c91d333.json.1787675785.0 -> /home/dap/omicron-fix/dublin-data/extracted/pool/ext/312fb0ae-236b-4929-9b0e-90a3acc66151/crypt/debug/oxz_nexus_3e9899b8-9d58-4135-b668-4b3f13ab84ea/debug_dropbox/reconfigurator/20260825T1635Z-target-ec1d0d53-c4e0-44a5-b365-ef234c91d333.json.1787675785.0
lrwxrwxrwx   1 dap      staff        254 Aug 25 09:55 20260825T1639Z-target-556fb55d-8c08-4e0f-bc7f-46d297e3a1c8.json.1787676057.0 -> /home/dap/omicron-fix/dublin-data/extracted/pool/ext/312fb0ae-236b-4929-9b0e-90a3acc66151/crypt/debug/oxz_nexus_3e9899b8-9d58-4135-b668-4b3f13ab84ea/debug_dropbox/reconfigurator/20260825T1639Z-target-556fb55d-8c08-4e0f-bc7f-46d297e3a1c8.json.1787676057.0

Checking other behavior

Details

I did these checks after the first update, not the second. At this point we only had a few archived files.

[dublin]root@oxz_switch0:~# pilot host exec -c 'find /pool/ext/*/crypt/debug/*/debug_dropbox -type f' 14-17
14  2F8JEXDK           ok:
15  BRM27230037        ok: /pool/ext/019b6352-c23d-4aac-b936-25902aa179f2/crypt/debug/oxz_nexus_f7198589-ce8c-4709-81c3-312d1fe2dca9/debug_dropbox/reconfigurator/20260825T0437Z-autoplan-b032637e-634a-44a7-b764-b583fbd90baa.json.1787632678.0
/pool/ext/019b6352-c23d-4aac-b936-25902aa179f2/crypt/debug/oxz_nexus_f7198589-ce8c-4709-81c3-312d1fe2dca9/debug_dropbox/reconfigurator/20260825T0437Z-autoplan-e5fa77ff-5bdf-440c-9bfb-00eb3ecc8029.json.1787632671.0
/pool/ext/019b6352-c23d-4aac-b936-25902aa179f2/crypt/debug/oxz_nexus_f7198589-ce8c-4709-81c3-312d1fe2dca9/debug_dropbox/reconfigurator/20260825T0437Z-autoplan-7a227090-d388-48d4-9b9c-5d6c77748589.json.1787632670.0
/pool/ext/019b6352-c23d-4aac-b936-25902aa179f2/crypt/debug/oxz_nexus_f7198589-ce8c-4709-81c3-312d1fe2dca9/debug_dropbox/reconfigurator/20260825T0437Z-autoplan-9fc29715-056f-48f0-8116-d43da6fc5001.json.1787632668.0
16  BRM23230018        ok:
17  BRM23230010        ok:

Excellent. Any issues reported by sled agent?

[dublin]root@oxz_switch0:~# pilot host exec -c 'grep -v "failed to sample kstat target, requeueing" $(svcs -L sled-agent) | looker -o long -lerror' 14-17
14  2F8JEXDK           ok: [ Dec 28 00:00:04 Enabled. ]
[ Dec 28 00:00:45 Executing start method ("ctrun -l child -o noorphan,regent /opt/oxide/sled-agent/sled-agent run /opt/oxide/sled-agent/pkg/config.toml &"). ]
[ Dec 28 00:00:45 Method "start" exited with status 0. ]
note: configured to log to "/dev/stdout"
Dec 28 00:00:48.324 INFO tofino monitor online, unit: tofino-monitor
Dec 28 00:00:48.374 INFO tofino device found, unit: tofino-monitor
Dec 28 00:00:48.377 DEBG entering contract ioctl, unit: tofino-monitor
1986-12-28 00:00:49.347Z ERRO SledAgent/673 (DebugCollector-worker) on 2F8JEXDK: Archiving skipped: no archival destination available
    file = sled-agent/config-reconciler/src/debug_collector/worker.rs:893
1986-12-28 00:01:09.284Z ERRO SledAgent/673 (ServiceManager) on 2F8JEXDK: slog-async: logger dropped messages due to channel overflow
    count = 911
    file = /home/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slog-async-2.8.0/lib.rs:752
2026-08-25 04:19:28.550Z ERRO SledAgent/673 on 2F8JEXDK: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 7579818008980104299
    reason = Duration(60s)
    sled_id = f1ea60d4-48db-406a-8b6e-56d19d1b7f6e
2026-08-25 04:19:28.551Z ERRO SledAgent/673 on 2F8JEXDK: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 15909544628999283132
    reason = Duration(60s)
    sled_id = f1ea60d4-48db-406a-8b6e-56d19d1b7f6e
2026-08-25 04:19:35.588Z ERRO SledAgent/673 on 2F8JEXDK: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 5573230847004054541
    reason = Duration(60s)
    sled_id = f1ea60d4-48db-406a-8b6e-56d19d1b7f6e
15  BRM27230037        ok: [ Dec 28 00:00:02 Enabled. ]
[ Dec 28 00:00:48 Executing start method ("ctrun -l child -o noorphan,regent /opt/oxide/sled-agent/sled-agent run /opt/oxide/sled-agent/pkg/config.toml &"). ]
[ Dec 28 00:00:48 Method "start" exited with status 0. ]
note: configured to log to "/dev/stdout"
Dec 28 00:00:51.750 INFO tofino monitor online, unit: tofino-monitor
1986-12-28 00:00:53.172Z ERRO SledAgent/666 (DebugCollector-worker) on BRM27230037: Archiving skipped: no archival destination available
    file = sled-agent/config-reconciler/src/debug_collector/worker.rs:893
2026-08-25 04:06:53.806Z ERRO SledAgent/666 on BRM27230037: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 386762076114143417
    reason = Duration(60s)
    sled_id = bbe0267d-b97e-45db-8f60-347fecccebea
2026-08-25 04:06:53.807Z ERRO SledAgent/666 on BRM27230037: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 1680030155983348784
    reason = Duration(60s)
    sled_id = bbe0267d-b97e-45db-8f60-347fecccebea
2026-08-25 04:06:53.809Z ERRO SledAgent/666 on BRM27230037: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 5671559723504264495
    reason = Duration(60s)
    sled_id = bbe0267d-b97e-45db-8f60-347fecccebea
2026-08-25 04:06:54.176Z ERRO SledAgent/666 on BRM27230037: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 8261738483126396518
    reason = Duration(60s)
    sled_id = bbe0267d-b97e-45db-8f60-347fecccebea
16  BRM23230018        ok: [ Dec 28 00:00:04 Enabled. ]
[ Dec 28 00:00:45 Executing start method ("ctrun -l child -o noorphan,regent /opt/oxide/sled-agent/sled-agent run /opt/oxide/sled-agent/pkg/config.toml &"). ]
[ Dec 28 00:00:45 Method "start" exited with status 0. ]
note: configured to log to "/dev/stdout"
Dec 28 00:00:48.136 INFO tofino monitor online, unit: tofino-monitor
Dec 28 00:00:48.164 INFO tofino device found, unit: tofino-monitor
Dec 28 00:00:48.169 DEBG entering contract ioctl, unit: tofino-monitor
1986-12-28 00:00:49.275Z ERRO SledAgent/673 (DebugCollector-worker) on BRM23230018: Archiving skipped: no archival destination available
    file = sled-agent/config-reconciler/src/debug_collector/worker.rs:893
1986-12-28 00:01:15.669Z ERRO SledAgent/673 (HardwareManager) on BRM23230018: slog-async: logger dropped messages due to channel overflow
    count = 1587
    file = /home/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slog-async-2.8.0/lib.rs:752
1986-12-28 00:01:18.295Z ERRO SledAgent/673 (ConfigReconcilerTask) on BRM23230018: slog-async: logger dropped messages due to channel overflow
    count = 1921
    file = /home/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slog-async-2.8.0/lib.rs:752
1986-12-28 00:01:21.166Z ERRO SledAgent/673 (ServiceManager) on BRM23230018: slog-async: logger dropped messages due to channel overflow
    count = 1657
    file = /home/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/slog-async-2.8.0/lib.rs:752
1986-12-28 00:02:31.560Z ERRO SledAgent/673 on BRM23230018: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 1032854572900924159
    reason = Duration(60s)
    sled_id = 68cfed7e-fdb2-4c3b-beef-f2663032cf5c
1986-12-28 00:02:46.776Z ERRO SledAgent/673 on BRM23230018: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 14779954593996818829
    reason = Duration(60s)
    sled_id = 68cfed7e-fdb2-4c3b-beef-f2663032cf5c
1986-12-28 00:02:46.776Z ERRO SledAgent/673 on BRM23230018: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 10820696838695430901
    reason = Duration(60s)
    sled_id = 68cfed7e-fdb2-4c3b-beef-f2663032cf5c
2026-08-25 03:56:35.092Z ERRO SledAgent/673 on BRM23230018: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 11276700608331700939
    reason = Duration(60s)
    sled_id = 68cfed7e-fdb2-4c3b-beef-f2663032cf5c
2026-08-25 03:56:35.093Z ERRO SledAgent/673 on BRM23230018: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 1703421715365696418
    reason = Duration(60s)
    sled_id = 68cfed7e-fdb2-4c3b-beef-f2663032cf5c
2026-08-25 03:56:35.094Z ERRO SledAgent/673 on BRM23230018: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 7872295187955838289
    reason = Duration(60s)
    sled_id = 68cfed7e-fdb2-4c3b-beef-f2663032cf5c
17  BRM23230010        ok: [ Dec 28 00:00:02 Enabled. ]
[ Dec 28 00:00:43 Executing start method ("ctrun -l child -o noorphan,regent /opt/oxide/sled-agent/sled-agent run /opt/oxide/sled-agent/pkg/config.toml &"). ]
[ Dec 28 00:00:43 Method "start" exited with status 0. ]
note: configured to log to "/dev/stdout"
Dec 28 00:00:46.218 INFO tofino monitor online, unit: tofino-monitor
1986-12-28 00:00:47.332Z ERRO SledAgent/666 (DebugCollector-worker) on BRM23230010: Archiving skipped: no archival destination available
    file = sled-agent/config-reconciler/src/debug_collector/worker.rs:893
2026-08-25 03:46:16.244Z ERRO SledAgent/666 on BRM23230010: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 14164527454948375614
    reason = Duration(60s)
    sled_id = d2358ee4-041d-4b21-a303-1d5751faa113
2026-08-25 03:46:16.572Z ERRO SledAgent/666 on BRM23230010: expiring kstat after too many failures
    error = Could not find kstat with the expected name
    file = oximeter/instruments/src/kstat/sampler.rs:758
    id = 7710622957553970402
    reason = Duration(60s)
    sled_id = d2358ee4-041d-4b21-a303-1d5751faa113
Os { code: 146, kind: ConnectionRefused, message: "Connection refused" }
Os { code: 146, kind: ConnectionRefused, message: "Connection refused" }

Reviewing the above:

  • all sleds accounted-for
  • no archive-related errors (just the intro messages saying there's no place to archive, but that's 1986 time)
  • no panic messages, word "core", or anything exited besides sled-agent start method

Any other worrying messages related to archival?

[dublin]root@oxz_switch0:~# pilot host exec -O -c 'grep archiv $(svcs -L sled-agent)' 14-17 | grep ^{ | jq -r .msg | sort | uniq -c
   4 Archiving skipped: no archival destination available
   1 Automatically archiving/wipe of dataset: oxp_00f76aa7-9bef-40f6-b9a1-27377a3fe347/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_019b6352-c23d-4aac-b936-25902aa179f2/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_025a10ff-6a65-4710-96da-09a5269f916f/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_10f291f1-8df3-404d-9595-7c9b31cd9178/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_117058a1-8537-4662-93c0-b8508db3da80/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_12d89c7a-872b-40ef-b3f4-e51b5e20a09e/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_26af5541-1494-40df-a0bd-912ce32fb65e/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_2e3fb4ba-6592-4192-93e4-4a51cba2a467/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_312fb0ae-236b-4929-9b0e-90a3acc66151/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_32cf56da-50a7-486e-9e18-e4f0efd9155c/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_3d9cac51-e4f2-4014-b61f-5ea3dbc3c977/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_4b930cef-0bd5-4178-875f-39583e796c60/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_5a640eb1-85a2-4783-ae01-590235abdbef/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_5e30f253-746b-4f39-a5a3-db165bccaf52/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_60adb483-c97d-4dff-b35d-5fe9fa89786c/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_67886c45-4644-4bfa-ae44-2de9765ec67b/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_6898e04e-4635-4e3a-856f-37331198ac51/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_6e8bab85-994b-4c6d-885a-f20c391210ec/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_74bdf624-6dea-4d48-ac11-4cbdb9aa6a42/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_82ea9a63-188a-4a57-91ec-d2903c136c8d/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_985348ab-12b1-428f-aaee-771ce8eeee75/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_9da7f26d-9b77-4809-a1dd-13be594264c4/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_aafbe4dc-5419-4cf9-97be-b7752dc36bd3/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_ae11c361-6e01-4283-b3c8-c83f9be146cf/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_ae26f8af-6b58-4907-a6ae-0df3663f0024/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_b0250091-69b1-4f48-83ba-5c40525f9865/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_b5b140ab-2add-4767-882b-473833ebd48f/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_ba48be80-6950-43f7-8633-499af8aafcb3/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_cceb0092-1103-4028-b2ae-ec6a5cca2c55/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_cf6dd8d4-5ded-4473-97db-89e50648a900/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_df358c98-9e9b-4507-b87c-1c85b6249388/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_df91d539-0797-452f-bfaf-134ba0ca2010/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_dfb017ef-47fe-42c3-82b3-06aa573db232/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_e978f5c2-c7d9-40f4-9d9c-1d182fcb061d/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_eb73b454-86e0-4f79-a631-ac7d585cb0c7/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_f027335d-f6aa-469f-9d14-2ec6927fd2b8/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_f6ea5e37-a039-4aac-bd30-c991077208f8/crypt/zone
   1 Automatically archiving/wipe of dataset: oxp_ff30d320-839c-4d6e-badd-c5dfa0f38a11/crypt/zone
 306 archiving debug data from cores directory
1734 archiving debug data from zone
  59 archiving logs from former zone root
 120 requesting archive of former zone root

That all looks okay to me. In terms of the period we care about, it's these blueprints:

91 2026-08-25T04:37:34.949Z 44e73634-cb11-4a9e-881c-6c5b8e651296  enabled: updated nexus generation from 1 to 2
92 2026-08-25T04:37:48.905Z 9fc29715-056f-48f0-8116-d43da6fc5001  enabled: expunge Nexus zone 05a25a6b-ec74-42b9-a61f-5e7245c46250 for update
93 2026-08-25T04:37:50.271Z 7a227090-d388-48d4-9b9c-5d6c77748589  enabled: expunge Nexus zone 342a781f-a4be-4014-a392-985d7d07e53d for update
94 2026-08-25T04:37:51.015Z e5fa77ff-5bdf-440c-9bfb-00eb3ecc8029  enabled: expunge Nexus zone 7b70889b-33d0-4851-9a6f-326d80827f17 for update
95 2026-08-25T04:37:58.094Z b032637e-634a-44a7-b764-b583fbd90baa  enabled:

There's only one rotated log file so far. It covers our period:

BRM27230037 # looker -o long < oxide-nexus\:default.log.1787633100 | head
[ Aug 25 04:37:27 Enabled. ]
[ Aug 25 04:37:27 Rereading configuration. ]
[ Aug 25 04:37:27 Rereading configuration. ]
[ Aug 25 04:37:34 Executing start method ("ctrun -l child -o noorphan,regent /opt/oxide/omicron-nexus/bin/nexus /var/svc/manifest/site/nexus/config.toml &"). ]
[ Aug 25 04:37:34 Method "start" exited with status 0. ]
note: configured to log to "/dev/stdout"
2026-08-25 04:37:34.424Z DEBG nexus/11318 on oxz_nexus_f7198589-ce8c-4709-81c3-312d1fe2dca9: registered DTrace probes
2026-08-25 04:37:34.424Z INFO nexus/11318 (DebugDropbox) on oxz_nexus_f7198589-ce8c-4709-81c3-312d1fe2dca9: initializing debug dropbox
    file = /home/build/.cargo/git/checkouts/omicron-debug-dropbox-70fea570d4f944f9/eb13fc7/src/lib.rs:265
    path = /var/debug_dropbox
BRM27230037 # looker -o long < oxide-nexus\:default.log.1787633100 | tail
    usage_percent = 1
2026-08-25 04:45:00.049Z INFO f7198589-ce8c-4709-81c3-312d1fe2dca9/11318 (ServerContext) on oxz_nexus_f7198589-ce8c-4709-81c3-312d1fe2dca9: blueprint unchanged from current target
    background_task = blueprint_planner
    file = nexus/src/app/background/tasks/blueprint_planner.rs:268
    parent_blueprint_id = b032637e-634a-44a7-b764-b583fbd90baa
2026-08-25 04:45:00.049Z DEBG f7198589-ce8c-4709-81c3-312d1fe2dca9/11318 (ServerContext) on oxz_nexus_f7198589-ce8c-4709-81c3-312d1fe2dca9: activation complete
    background_task = blueprint_planner
    elapsed = 271.969112ms
    iteration = 40
    status = {"Unchanged":{"blueprint_count":95,"limit":5000,"parent_blueprint_id":"b032637e-634a-44a7-b764-b583fbd90baa","report":{"add":{"add_update_blocked_reasons":[],"discretionary_zones_placed":{},"out_of_eligible_sleds":{},"sleds_getting_ntp_and_discretionary_zones":[],"sleds_missing_crucible_zone":{},"sleds_missing_ntp_zone":[],"sleds_waiting_for_ntp_zone":[],"sleds_without_ntp_zones_in_inventory":[],"sleds_without_zpools_for_ntp_zones":[],"sufficient_zones_exist":{"boundary_ntp":{"num_existing":2,"target_count":2},"clickhouse":{"num_existing":1,"target_count":1},"clickhouse_keeper":{"num_existing":0,"target_count":0},"clickhouse_server":{"num_existing":0,"target_count":0},"cockroach_db":{"num_existing":5,"target_count":5},"crucible_pantry":{"num_existing":3,"target_count":3},"external_dns":{"num_existing":3,"target_count":3},"internal_dns":{"num_existing":3,"target_count":3},"nexus":{"num_existing":3,"target_count":3},"oximeter":{"num_existing":1,"target_count":1}},"target_release_generation_is_one":false,"waiting_on":null},"cockroachdb_settings":{"preserve_downgrade":{"action":"set","data":"V22_1"}},"decommission":{"zombie_sleds":[]},"expunge":{"orphan_disks":{}},"measurement_updates":{"type":"matches_inventory"},"mgs_updates":{"blocked_mgs_updates":[],"pending_mgs_updates":{"by_baseboard":[]}},"nexus_generation_bump":{"component":"nothing_to_report"},"noop_image_source":{"converted":{},"no_target_release":false,"skipped_sled_host_phase_2":{},"skipped_sled_measurements":{},"skipped_sled_zones":{},"skipped_zones":{},"sled_host_phase_2_both_already_artifact":["68cfed7e-fdb2-4c3b-beef-f2663032cf5c","bbe0267d-b97e-45db-8f60-347fecccebea","d2358ee4-041d-4b21-a303-1d5751faa113","f1ea60d4-48db-406a-8b6e-56d19d1b7f6e"],"sled_measurements_already_artifact":["68cfed7e-fdb2-4c3b-beef-f2663032cf5c","bbe0267d-b97e-45db-8f60-347fecccebea","d2358ee4-041d-4b21-a303-1d5751faa113","f1ea60d4-48db-406a-8b6e-56d19d1b7f6e"],"sled_zones_all_already_artifact":["68cfed7e-fdb2-4c3b-beef-f2663032cf5c","bbe0267d-b97e-45db-8f60-347fecccebea","d2358ee4-041d-4b21-a303-1d5751faa113","f1ea60d4-48db-406a-8b6e-56d19d1b7f6e"]},"planner_config":{},"zone_updates":{"expunged_zones":{},"out_of_date_zones":{},"unsafe_zones":{},"updated_zones":{},"waiting_on":null,"waiting_zones":{}}}}}

The last warning-level messages were from right after startup:

BRM27230037 # cat oxide-nexus\:default.log.1787633100 | looker -lwarn | tail
    dns_server_url = http://[fd94:3d68:8dce:103::14]:5353
    file = nexus/src/app/background/tasks/dns_propagation.rs:165
    generation = 8
    servers = DnsServersList { addresses: [[fd94:3d68:8dce:103::14]:5353, [fd94:3d68:8dce:102::12]:5353, [fd94:3d68:8dce:101::13]:5353] }
04:38:47.433Z WARN f7198589-ce8c-4709-81c3-312d1fe2dca9 (ServerContext): DNS propagation: failed
    background_task = dns_propagation_external
    dns_group = external
    file = nexus/src/app/background/tasks/dns_propagation.rs:104
    generation = 8
    servers = DnsServersList { addresses: [[fd94:3d68:8dce:103::14]:5353, [fd94:3d68:8dce:102::12]:5353, [fd94:3d68:8dce:101::13]:5353] }

Looking at distinct warning-level messages:

BRM27230037 # cat oxide-nexus\:default.log.1787633100 | grep ^{ | jq -r 'select(.level >= 40) | .msg' | sort | uniq -c | sort -n
   1 Physical Disk Adoption: skipped
   1 blueprint not yet loaded - skipping sync
   1 failed to propagate DNS generation 23 to server [fd94:3d68:8dce:1::1]:5353: Error Response: status: 409 Conflict; headers: {"content-type": "application/json", "x-request-id": "aa30771c-878d-4982-addd-6e2914c6546a", "content-length": "183", "date": "Tue, 25 Aug 2026 04:38:47 GMT"}; value: Error { error_code: Some("BadUpdateGeneration"), message: "unsupported attempt to update to generation 23 while at generation 24", request_id: "aa30771c-878d-4982-addd-6e2914c6546a" }
   1 failed to propagate DNS generation 23 to server [fd94:3d68:8dce:2::1]:5353: Error Response: status: 409 Conflict; headers: {"content-type": "application/json", "x-request-id": "4f405eb0-d322-47a2-a6bb-a46f72da947c", "content-length": "183", "date": "Tue, 25 Aug 2026 04:38:47 GMT"}; value: Error { error_code: Some("BadUpdateGeneration"), message: "unsupported attempt to update to generation 23 while at generation 24", request_id: "4f405eb0-d322-47a2-a6bb-a46f72da947c" }
   1 failed to propagate DNS generation 23 to server [fd94:3d68:8dce:3::1]:5353: Error Response: status: 409 Conflict; headers: {"content-type": "application/json", "x-request-id": "c66ef9e3-f6a1-4f40-920d-90d757621eda", "content-length": "183", "date": "Tue, 25 Aug 2026 04:38:47 GMT"}; value: Error { error_code: Some("BadUpdateGeneration"), message: "unsupported attempt to update to generation 23 while at generation 24", request_id: "c66ef9e3-f6a1-4f40-920d-90d757621eda" }
   1 failed to propagate DNS generation 8 to server [fd94:3d68:8dce:101::13]:5353: Error Response: status: 409 Conflict; headers: {"content-type": "application/json", "x-request-id": "73b908e3-c3a6-4a22-9c11-7e32a53b8b05", "content-length": "181", "date": "Tue, 25 Aug 2026 04:38:47 GMT"}; value: Error { error_code: Some("BadUpdateGeneration"), message: "unsupported attempt to update to generation 8 while at generation 9", request_id: "73b908e3-c3a6-4a22-9c11-7e32a53b8b05" }
   1 failed to propagate DNS generation 8 to server [fd94:3d68:8dce:102::12]:5353: Error Response: status: 409 Conflict; headers: {"content-type": "application/json", "x-request-id": "bd67821a-ebc0-4296-9fe2-57d655ee245b", "content-length": "181", "date": "Tue, 25 Aug 2026 04:38:47 GMT"}; value: Error { error_code: Some("BadUpdateGeneration"), message: "unsupported attempt to update to generation 8 while at generation 9", request_id: "bd67821a-ebc0-4296-9fe2-57d655ee245b" }
   1 failed to propagate DNS generation 8 to server [fd94:3d68:8dce:103::14]:5353: Error Response: status: 409 Conflict; headers: {"content-type": "application/json", "x-request-id": "0e2a838d-e846-4966-bde8-9e24d024f1e0", "content-length": "181", "date": "Tue, 25 Aug 2026 04:38:47 GMT"}; value: Error { error_code: Some("BadUpdateGeneration"), message: "unsupported attempt to update to generation 8 while at generation 9", request_id: "0e2a838d-e846-4966-bde8-9e24d024f1e0" }
   2 Blueprint execution: skipped
   2 Blueprint rendezvous: skipped
   2 DNS propagation: failed
   2 blueprint planning skipped
   4 DNS propagation: skipped
   6 Could not handoff to new nexus: Service Unavailable: Cannot perform handoff: 3 Nexus instance(s) are still active. All instances must be quiesced or not_yet before handoff can proceed.

Looks fine.

Some example messages from the planner:

grep blueprint_planner < oxide-nexus\:default.log.1787633100 | grep -v '"roles"' | grep -v '"authorize result"' | looker -linfo
...
04:37:48.480Z INFO f7198589-ce8c-4709-81c3-312d1fe2dca9 (ServerContext): planning produced new blueprint
    background_task = blueprint_planner
    blueprint_id = 9fc29715-056f-48f0-8116-d43da6fc5001
    file = nexus/src/app/background/tasks/blueprint_planner.rs:284
    parent_blueprint_id = 44e73634-cb11-4a9e-881c-6c5b8e651296
04:37:48.642Z INFO f7198589-ce8c-4709-81c3-312d1fe2dca9 (ServerContext): inserted blueprint
    background_task = blueprint_planner
    blueprint_id = 9fc29715-056f-48f0-8116-d43da6fc5001
    file = nexus/db-queries/src/db/datastore/deployment.rs:613
04:37:48.905Z INFO f7198589-ce8c-4709-81c3-312d1fe2dca9 (ServerContext): saved intent debug file
    background_task = blueprint_planner
    file = nexus/src/app/deployment.rs:1234
    filename = 20260825T0437Z-autoplan-intent-9fc29715-056f-48f0-8116-d43da6fc5001.json
04:37:48.930Z INFO f7198589-ce8c-4709-81c3-312d1fe2dca9 (ServerContext): saved committed debug state
    background_task = blueprint_planner
    file = nexus/src/app/deployment.rs:1369
    filename = 20260825T0437Z-autoplan-9fc29715-056f-48f0-8116-d43da6fc5001.json

oxlog doesn't look confused by the presence of the new dropbox directory:

BRM27230037 # oxlog logs --archived oxz_nexus_f7198589-ce8c-4709-81c3-312d1fe2dca9
/pool/ext/019b6352-c23d-4aac-b936-25902aa179f2/crypt/debug/oxz_nexus_f7198589-ce8c-4709-81c3-312d1fe2dca9/oxide-nexus:default.log.1787633100
/pool/ext/019b6352-c23d-4aac-b936-25902aa179f2/crypt/debug/oxz_nexus_f7198589-ce8c-4709-81c3-312d1fe2dca9/oxide-opte-interface-setup:default.log.1787632654
/pool/ext/019b6352-c23d-4aac-b936-25902aa179f2/crypt/debug/oxz_nexus_f7198589-ce8c-4709-81c3-312d1fe2dca9/oxide-zone-network-setup:default.log.1787632649

This is all looking pretty good.

@davepacheco
davepacheco marked this pull request as ready for review August 25, 2026 19:09
@davepacheco
davepacheco merged commit 24bf33f into main Aug 25, 2026
20 checks passed
@davepacheco
davepacheco deleted the dap/blueprint-archive-nexus branch August 25, 2026 20:28
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