Skip to content
Merged
Show file tree
Hide file tree
Changes from 57 commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
5b0d884
scaffolding
karencfv Aug 29, 2025
477cb9b
Some thoughts
karencfv Aug 30, 2025
9f4968d
Implement functionality for RoT bootloader
karencfv Sep 3, 2025
b8766df
Plumb skipped updates through
karencfv Sep 3, 2025
0e5bd57
populate SkippedMgsUpdates
karencfv Sep 3, 2025
0c5197a
remove unnecessary checks
karencfv Sep 3, 2025
5a1a74f
do the todos
karencfv Sep 3, 2025
60240f2
expectorate
karencfv Sep 3, 2025
ad2e83e
Make SkippedMgsUpdates a vec because we need all records
karencfv Sep 4, 2025
36c788e
fix no pending updates bug
karencfv Sep 4, 2025
ed81591
Clean up
karencfv Sep 4, 2025
4efa776
error type clean up
karencfv Sep 4, 2025
14a43ac
clean up tuple mess
karencfv Sep 4, 2025
b040913
clean up
karencfv Sep 4, 2025
70f8495
fully working sample
karencfv Sep 5, 2025
e1ea3d2
refactor try_make_update
karencfv Sep 5, 2025
f2c7c2a
use builder pattern
karencfv Sep 5, 2025
3293c4f
remove unnecessary struct
karencfv Sep 5, 2025
6d866d6
improve error messages
karencfv Sep 5, 2025
e8f027b
clippy
karencfv Sep 5, 2025
1da94b0
Make the tests pass
karencfv Sep 5, 2025
d0d37e6
Fix openapi generation
karencfv Sep 5, 2025
03b7432
Mull over tests
karencfv Sep 5, 2025
4f15d18
at least the error is different now 😑
karencfv Sep 15, 2025
dd8f911
Fix test_update_boundary_ntp and test_update_crucible_pantry
karencfv Sep 16, 2025
23e8f54
fix test_update_cockroach
karencfv Sep 16, 2025
f47e1cd
finally all the tests pass
karencfv Sep 16, 2025
4fb55c4
merge main
karencfv Sep 16, 2025
34a3906
fix after merge
karencfv Sep 16, 2025
0781a21
clean up
karencfv Sep 17, 2025
5c04f22
add test
karencfv Sep 17, 2025
dc2f232
Clean up
karencfv Sep 17, 2025
b070a69
merge main
karencfv Sep 17, 2025
fcdaa5b
Fix after merge
karencfv Sep 17, 2025
1c6a46c
moar cleanup
karencfv Sep 17, 2025
eecfe7c
remove debugging println
karencfv Sep 17, 2025
f6f2c1e
merge main
karencfv Sep 22, 2025
8c3d064
extract target release testing into it's own test
karencfv Sep 22, 2025
05d2043
wasn't a typo
karencfv Sep 22, 2025
957ac0f
test clean up logfiles
karencfv Sep 22, 2025
e3a47fd
remove unncessesary logging
karencfv Sep 23, 2025
9f5ca2f
Address comments
karencfv Sep 23, 2025
e863155
Remove unnecessary test
karencfv Sep 23, 2025
cc8e07a
Bail on failed update and improve testing
karencfv Sep 23, 2025
2444040
address style comments
karencfv Sep 23, 2025
19e8e26
Get rid of SkippedMgsUpdates
karencfv Sep 23, 2025
a78d9b1
use blocked instead of skipped
karencfv Sep 23, 2025
1298942
address comments
karencfv Sep 24, 2025
b29203f
Merge main
karencfv Sep 24, 2025
45f9dbd
expectorate
karencfv Sep 24, 2025
7d9d1a0
tests are passing 🎉
karencfv Sep 24, 2025
0e367a9
remove unnecessary blueprint updates
karencfv Sep 24, 2025
4d18593
jfc merge again
karencfv Sep 24, 2025
7e4e36e
generate openapi spec
karencfv Sep 24, 2025
f921c50
fmt
karencfv Sep 24, 2025
cb197db
add the todos
karencfv Sep 24, 2025
01391ed
fmt
karencfv Sep 24, 2025
52d399f
Address comments
karencfv Sep 24, 2025
46ef2b2
merge main
karencfv Sep 24, 2025
4ca45ba
fixes, expectorations, and openapi doc gen after merge with main
karencfv Sep 24, 2025
536996d
fmt 😑
karencfv Sep 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -1813,7 +1813,7 @@ planning report:
* 1 pending MGS update:
* model0:serial0: RotBootloader(PendingMgsUpdateRotBootloaderDetails { expected_stage0_version: ArtifactVersion("0.0.1"), expected_stage0_next_version: NoValidVersion })
* only placed 0/1 desired nexus zones
* zone updates waiting on pending MGS updates (RoT / SP / Host OS / etc.)
* zone updates waiting on pending MGS updates (RoT bootloader / RoT / SP / Host OS)
* waiting to update top-level nexus_generation: some non-Nexus zone are not yet updated


Expand Down Expand Up @@ -1998,7 +1998,7 @@ planning report:
* 1 pending MGS update:
* model0:serial0: RotBootloader(PendingMgsUpdateRotBootloaderDetails { expected_stage0_version: ArtifactVersion("0.0.1"), expected_stage0_next_version: NoValidVersion })
* only placed 0/1 desired nexus zones
* zone updates waiting on pending MGS updates (RoT / SP / Host OS / etc.)
* zone updates waiting on pending MGS updates (RoT bootloader / RoT / SP / Host OS)
* waiting to update top-level nexus_generation: some non-Nexus zone are not yet updated


Expand Down Expand Up @@ -2171,9 +2171,9 @@ INFO BootPartitionDetails inventory hash not found in TUF repo, ignoring for noo
INFO performed noop zone image source checks on sled, sled_id: d81c6a84-79b8-4958-ae41-ea46c9b19763, num_total: 6, num_already_artifact: 6, num_eligible: 0, num_ineligible: 0
INFO BootPartitionDetails inventory hash not found in TUF repo, ignoring for noop checks, sled_id: d81c6a84-79b8-4958-ae41-ea46c9b19763, slot: a, expected_hash: 0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a
INFO MGS-driven update completed (will remove it and re-evaluate board), artifact_version: 2.0.0, artifact_hash: 8f89bf8bc5f3271650ad72a26fc0d116c910161ca143731473a2b20fb82653cc, expected_stage0_next_version: NoValidVersion, expected_stage0_version: 0.0.1, component: rot_bootloader, sp_slot: 0, sp_type: Sled, serial_number: serial0, part_number: model0
INFO skipping board for MGS-driven update, serial_number: serial0, part_number: model0
INFO skipping board for MGS-driven update, serial_number: serial1, part_number: model1
INFO skipping board for MGS-driven update, serial_number: serial2, part_number: model2
INFO skipping board for MGS-driven update (no update necessary), serial_number: serial0, part_number: model0
INFO skipping board for MGS-driven update (no update necessary), serial_number: serial1, part_number: model1
INFO skipping board for MGS-driven update (no update necessary), serial_number: serial2, part_number: model2
INFO ran out of boards for MGS-driven update
INFO some zones not yet up-to-date, zones_currently_updating: [ZonePropagationIncomplete { zone_id: 353b3b65-20f7-48c3-88f7-495bd5d31545 (service), zone_kind: Clickhouse, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("2.0.0") }, hash: ArtifactHash("bb2d1ff02d11f72bc9049ae57f27536207519a1859d29f8d7a90ab3b44d56b08") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: 466a9f29-62bf-4e63-924a-b9efdb86afec (service), zone_kind: Nexus, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("2.0.0") }, hash: ArtifactHash("e9b7035f41848a987a798c15ac424cc91dd662b1af0920d58d8aa1ebad7467b6") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: 62620961-fc4a-481e-968b-f5acbac0dc63 (service), zone_kind: InternalNtp, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("2.0.0") }, hash: ArtifactHash("d76e26198daed69cdae04490d7477f8c842e0dbe37d463eac0d0a8d3fb803095") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: 6c3ae381-04f7-41ea-b0ac-74db387dbc3a (service), zone_kind: ExternalDns, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("2.0.0") }, hash: ArtifactHash("f282c45771429f7bebf71f0cc668521066db57c6bb07fcfccdfb44825d3d930f") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: 99e2f30b-3174-40bf-a78a-90da8abba8ca (service), zone_kind: InternalDns, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("2.0.0") }, hash: ArtifactHash("de30657a72b066b8ef1f56351a0a5d4d7000da0a62c4be9b2e949a107ca8a389") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: ad6a3a03-8d0f-4504-99a4-cbf73d69b973 (service), zone_kind: CruciblePantry, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("2.0.0") }, hash: ArtifactHash("3ff26dad96faa8f67251f5de40458b4f809d536bfe8572134da0e42c2fa12674") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: bd354eef-d8a6-4165-9124-283fb5e46d77 (service), zone_kind: Crucible, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("2.0.0") }, hash: ArtifactHash("866f6a7c2e51c056fb722b5113e80181cc9cd8b712a0d3dbf1edc4ce29e5229e") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: 0c71b3b2-6ceb-4e8f-b020-b08675e83038 (service), zone_kind: Nexus, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("1.0.0") }, hash: ArtifactHash("0e32b4a3e5d3668bb1d6a16fb06b74dc60b973fa479dcee0aae3adbb52bf1388") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: 427ec88f-f467-42fa-9bbb-66a91a36103c (service), zone_kind: InternalDns, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("1.0.0") }, hash: ArtifactHash("ffbf1373f7ee08dddd74c53ed2a94e7c4c572a982d3a9bc94000c6956b700c6a") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: 5199c033-4cf9-4ab6-8ae7-566bd7606363 (service), zone_kind: Crucible, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("1.0.0") }, hash: ArtifactHash("6f17cf65fb5a5bec5542dd07c03cd0acc01e59130f02c532c8d848ecae810047") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: 6444f8a5-6465-4f0b-a549-1993c113569c (service), zone_kind: InternalNtp, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("1.0.0") }, hash: ArtifactHash("67593d686ed04a1709f93972b71f4ebc148a9362120f65d239943e814a9a7439") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: 803bfb63-c246-41db-b0da-d3b87ddfc63d (service), zone_kind: ExternalDns, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("1.0.0") }, hash: ArtifactHash("ccca13ed19b8731f9adaf0d6203b02ea3b9ede4fa426b9fac0a07ce95440046d") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: ba4994a8-23f9-4b1a-a84f-a08d74591389 (service), zone_kind: CruciblePantry, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("1.0.0") }, hash: ArtifactHash("21f0ada306859c23917361f2e0b9235806c32607ec689c7e8cf16bb898bc5a02") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: 3eeb8d49-eb1a-43f8-bb64-c2338421c2c6 (service), zone_kind: Nexus, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("2.0.0") }, hash: ArtifactHash("e9b7035f41848a987a798c15ac424cc91dd662b1af0920d58d8aa1ebad7467b6") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: 75b220ba-a0f4-4872-8202-dc7c87f062d0 (service), zone_kind: CruciblePantry, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("2.0.0") }, hash: ArtifactHash("3ff26dad96faa8f67251f5de40458b4f809d536bfe8572134da0e42c2fa12674") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: ea5b4030-b52f-44b2-8d70-45f15f987d01 (service), zone_kind: InternalDns, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("2.0.0") }, hash: ArtifactHash("de30657a72b066b8ef1f56351a0a5d4d7000da0a62c4be9b2e949a107ca8a389") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: f10a4fb9-759f-4a65-b25e-5794ad2d07d8 (service), zone_kind: InternalNtp, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("2.0.0") }, hash: ArtifactHash("d76e26198daed69cdae04490d7477f8c842e0dbe37d463eac0d0a8d3fb803095") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: f55647d4-5500-4ad3-893a-df45bd50d622 (service), zone_kind: Crucible, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("2.0.0") }, hash: ArtifactHash("866f6a7c2e51c056fb722b5113e80181cc9cd8b712a0d3dbf1edc4ce29e5229e") }, inv_image_source: InstallDataset } }, ZonePropagationIncomplete { zone_id: f6ec9c67-946a-4da3-98d5-581f72ce8bf0 (service), zone_kind: ExternalDns, reason: ImageSourceMismatch { bp_image_source: Artifact { version: Available { version: ArtifactVersion("2.0.0") }, hash: ArtifactHash("f282c45771429f7bebf71f0cc668521066db57c6bb07fcfccdfb44825d3d930f") }, inv_image_source: InstallDataset } }]
generated blueprint 61a93ea3-c872-48e0-aace-e86b0c52b839 based on parent blueprint 12d602a6-5ab4-487a-b94e-eb30cdf30300
Expand Down
Loading
Loading