Skip to content
Merged
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
2c66c7e
Blippy: Fix checks now that blueprints have sled subnets
jgallagher Dec 19, 2025
8907245
clippy
jgallagher Dec 19, 2025
82cf685
initial: add last_allocated_ip_subnet_offset to blueprint
jgallagher Dec 17, 2025
ce625ff
use last_allocated_ip_subnet_offset when constructing SledUnderlayIpA…
jgallagher Dec 17, 2025
5b9dd05
schema migration
jgallagher Dec 19, 2025
9450b58
openapi
jgallagher Dec 19, 2025
96e1936
add blippy check for IP above last allocated
jgallagher Dec 19, 2025
8d55a7d
Dave saves ~~Christmas~~ data migrations
jgallagher Dec 19, 2025
61502ee
add check constraint for u16 column
jgallagher Dec 19, 2025
27a7e0d
add LastAllocatedSubnetIpOffset newtype
jgallagher Dec 19, 2025
c6ffc0d
Merge branch 'main' into john/blueprint-sled-next-ip
jgallagher Jan 5, 2026
e8f1b7a
Merge branch 'main' into john/blueprint-sled-next-ip
jgallagher Jan 7, 2026
e300bd0
fix data migration version number after merging main
jgallagher Jan 7, 2026
a1da443
api doc comment
jgallagher Jan 7, 2026
32acbd6
rename the module too...
jgallagher Jan 7, 2026
178e7d3
Merge remote-tracking branch 'origin/main' into john/blueprint-sled-n…
jgallagher Jan 7, 2026
c35d2c8
planner API rework: first pass
jgallagher Dec 16, 2025
21fb0a1
second pass: rework sled editor
jgallagher Dec 17, 2025
c2fbece
update usage in other tests
jgallagher Jan 7, 2026
e02250e
comments
jgallagher Jan 7, 2026
0ffa4a3
Merge branch 'main' into john/planner-expunged-reason
jgallagher Jan 8, 2026
e77eee4
Merge branch 'main' into john/planner-expunged-reason
jgallagher Jan 9, 2026
a762e8a
minor fixups from bad merge
jgallagher Jan 9, 2026
f65fbab
Merge remote-tracking branch 'origin/main' into john/planner-expunged…
jgallagher Jan 12, 2026
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
3 changes: 3 additions & 0 deletions Cargo.lock

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

1 change: 1 addition & 0 deletions common/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ serde_json.workspace = true
serde_with.workspace = true
slog.workspace = true
slog-error-chain.workspace = true
static_assertions.workspace = true
strum.workspace = true
test-strategy = { workspace = true, optional = true }
thiserror.workspace = true
Expand Down
4 changes: 4 additions & 0 deletions dev-tools/omdb/tests/successes.out
Original file line number Diff line number Diff line change
Expand Up @@ -1556,6 +1556,7 @@ parent: <none>
state::::::::::::: active
config generation: 2
subnet:::::::::::: ::/64
last allocated IP: ::20

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1598,6 +1599,7 @@ parent: <none>
state::::::::::::: active
config generation: 2
subnet:::::::::::: ::/64
last allocated IP: ::20

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1686,6 +1688,7 @@ parent: <none>
state::::::::::::: active
config generation: 2
subnet:::::::::::: ::/64
last allocated IP: ::20

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1728,6 +1731,7 @@ parent: <none>
state::::::::::::: active
config generation: 2
subnet:::::::::::: ::/64
last allocated IP: ::20

host phase 2 contents:
------------------------
Expand Down
11 changes: 7 additions & 4 deletions dev-tools/reconfigurator-cli/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,16 @@ use nexus_reconfigurator_simulation::{
};
use nexus_reconfigurator_simulation::{SimStateBuilder, SimTufRepoSource};
use nexus_reconfigurator_simulation::{SimTufRepoDescription, Simulator};
use nexus_types::deployment::execution;
use nexus_types::deployment::ExpectedVersion;
use nexus_types::deployment::execution::blueprint_external_dns_config;
use nexus_types::deployment::execution::blueprint_internal_dns_config;
use nexus_types::deployment::{Blueprint, UnstableReconfiguratorState};
use nexus_types::deployment::{BlueprintArtifactVersion, PendingMgsUpdate};
use nexus_types::deployment::{BlueprintExpungedZoneAccessReason, execution};
use nexus_types::deployment::{
BlueprintHostPhase2DesiredContents, PlannerConfig,
};
use nexus_types::deployment::{BlueprintSource, SledFilter};
use nexus_types::deployment::{BlueprintZoneDisposition, ExpectedVersion};
use nexus_types::deployment::{
BlueprintZoneImageSource, PendingMgsUpdateDetails,
};
Expand Down Expand Up @@ -2766,9 +2766,12 @@ fn sled_with_zone(
) -> anyhow::Result<SledUuid> {
let mut parent_sled_id = None;

for sled_id in builder.sled_ids_with_zones() {
for sled_id in builder.current_commissioned_sleds() {
if builder
.current_sled_zones(sled_id, BlueprintZoneDisposition::any)
.current_in_service_and_expunged_sled_zones(
sled_id,
BlueprintExpungedZoneAccessReason::ReconfiguratorCli,
)
.any(|z| z.id == *zone_id)
{
parent_sled_id = Some(sled_id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ parent: dbcbd3d6-41ff-48ae-ac0b-1becc9b2fd21
state::::::::::::: active
config generation: 1
subnet:::::::::::: fd00:1122:3344:104::/64
last allocated IP: fd00:1122:3344:104::20

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -93,6 +94,7 @@ parent: dbcbd3d6-41ff-48ae-ac0b-1becc9b2fd21
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:102::/64
last allocated IP: fd00:1122:3344:102::28

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -161,6 +163,7 @@ parent: dbcbd3d6-41ff-48ae-ac0b-1becc9b2fd21
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:101::/64
last allocated IP: fd00:1122:3344:101::27

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -226,6 +229,7 @@ parent: dbcbd3d6-41ff-48ae-ac0b-1becc9b2fd21
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:103::/64
last allocated IP: fd00:1122:3344:103::27

host phase 2 contents:
------------------------
Expand Down
7 changes: 7 additions & 0 deletions dev-tools/reconfigurator-cli/tests/output/cmds-example-stdout
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ parent: 02697f74-b14a-4418-90f0-c28b2a3a6aa9
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:102::/64
last allocated IP: fd00:1122:3344:102::2f

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -203,6 +204,7 @@ parent: 02697f74-b14a-4418-90f0-c28b2a3a6aa9
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:103::/64
last allocated IP: fd00:1122:3344:103::2e

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -317,6 +319,7 @@ parent: 02697f74-b14a-4418-90f0-c28b2a3a6aa9
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:101::/64
last allocated IP: fd00:1122:3344:101::2e

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -510,6 +513,7 @@ parent: 02697f74-b14a-4418-90f0-c28b2a3a6aa9
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:101::/64
last allocated IP: fd00:1122:3344:101::2f

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1165,6 +1169,7 @@ parent: 02697f74-b14a-4418-90f0-c28b2a3a6aa9
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:102::/64
last allocated IP: fd00:1122:3344:102::24

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1220,6 +1225,7 @@ parent: 02697f74-b14a-4418-90f0-c28b2a3a6aa9
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:103::/64
last allocated IP: fd00:1122:3344:103::24

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1275,6 +1281,7 @@ parent: 02697f74-b14a-4418-90f0-c28b2a3a6aa9
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:101::/64
last allocated IP: fd00:1122:3344:101::2e

host phase 2 contents:
------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ parent: 06c88262-f435-410e-ba98-101bed41ec27
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:103::/64
last allocated IP: fd00:1122:3344:103::2f

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -132,6 +133,7 @@ parent: 06c88262-f435-410e-ba98-101bed41ec27
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:102::/64
last allocated IP: fd00:1122:3344:102::2e

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -246,6 +248,7 @@ parent: 06c88262-f435-410e-ba98-101bed41ec27
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:101::/64
last allocated IP: fd00:1122:3344:101::2e

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -562,6 +565,7 @@ parent: 3f00b694-1b16-4aaa-8f78-e6b3a527b434
state::::::::::::: active
config generation: 3
subnet:::::::::::: fd00:1122:3344:103::/64
last allocated IP: fd00:1122:3344:103::2f

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -679,6 +683,7 @@ parent: 3f00b694-1b16-4aaa-8f78-e6b3a527b434
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:102::/64
last allocated IP: fd00:1122:3344:102::2e

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -793,6 +798,7 @@ parent: 3f00b694-1b16-4aaa-8f78-e6b3a527b434
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:101::/64
last allocated IP: fd00:1122:3344:101::2e

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1134,6 +1140,7 @@ parent: 366b0b68-d80e-4bc1-abd3-dc69837847e0
state::::::::::::: active
config generation: 4
subnet:::::::::::: fd00:1122:3344:103::/64
last allocated IP: fd00:1122:3344:103::30

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1254,6 +1261,7 @@ parent: 366b0b68-d80e-4bc1-abd3-dc69837847e0
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:102::/64
last allocated IP: fd00:1122:3344:102::2e

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1368,6 +1376,7 @@ parent: 366b0b68-d80e-4bc1-abd3-dc69837847e0
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:101::/64
last allocated IP: fd00:1122:3344:101::2e

host phase 2 contents:
------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ parent: 184f10b3-61cb-41ef-9b93-3489b2bac559
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:102::/64
last allocated IP: fd00:1122:3344:102::2f

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -130,6 +131,7 @@ parent: 184f10b3-61cb-41ef-9b93-3489b2bac559
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:101::/64
last allocated IP: fd00:1122:3344:101::2e

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -244,6 +246,7 @@ parent: 184f10b3-61cb-41ef-9b93-3489b2bac559
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:103::/64
last allocated IP: fd00:1122:3344:103::2e

host phase 2 contents:
------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ parent: 184f10b3-61cb-41ef-9b93-3489b2bac559
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:102::/64
last allocated IP: fd00:1122:3344:102::28

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -86,6 +87,7 @@ parent: 184f10b3-61cb-41ef-9b93-3489b2bac559
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:101::/64
last allocated IP: fd00:1122:3344:101::27

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -151,6 +153,7 @@ parent: 184f10b3-61cb-41ef-9b93-3489b2bac559
state::::::::::::: active
config generation: 2
subnet:::::::::::: fd00:1122:3344:103::/64
last allocated IP: fd00:1122:3344:103::27

host phase 2 contents:
------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,7 @@ parent: 8da82a8e-bf97-4fbd-8ddd-9f6462732cf1
state::::::::::::: active
config generation: 4
subnet:::::::::::: fd00:1122:3344:101::/64
last allocated IP: fd00:1122:3344:101::35

host phase 2 contents:
------------------------------
Expand Down Expand Up @@ -863,6 +864,7 @@ parent: af934083-59b5-4bf6-8966-6fb5292c29e1
state::::::::::::: active
config generation: 6
subnet:::::::::::: fd00:1122:3344:101::/64
last allocated IP: fd00:1122:3344:101::35

host phase 2 contents:
------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1225,6 +1225,7 @@ parent: c1a0d242-9160-40f4-96ae-61f8f40a0b1b
state::::::::::::: active
config generation: 5
subnet:::::::::::: fd00:1122:3344:102::/64
last allocated IP: fd00:1122:3344:102::26

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1279,6 +1280,7 @@ parent: c1a0d242-9160-40f4-96ae-61f8f40a0b1b
state::::::::::::: active
config generation: 7
subnet:::::::::::: fd00:1122:3344:101::/64
last allocated IP: fd00:1122:3344:101::25

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1330,6 +1332,7 @@ parent: c1a0d242-9160-40f4-96ae-61f8f40a0b1b
state::::::::::::: active
config generation: 5
subnet:::::::::::: fd00:1122:3344:103::/64
last allocated IP: fd00:1122:3344:103::25

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1565,6 +1568,7 @@ parent: afb09faf-a586-4483-9289-04d4f1d8ba23
state::::::::::::: active
config generation: 5
subnet:::::::::::: fd00:1122:3344:102::/64
last allocated IP: fd00:1122:3344:102::26

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1619,6 +1623,7 @@ parent: afb09faf-a586-4483-9289-04d4f1d8ba23
state::::::::::::: active
config generation: 7
subnet:::::::::::: fd00:1122:3344:101::/64
last allocated IP: fd00:1122:3344:101::25

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1670,6 +1675,7 @@ parent: afb09faf-a586-4483-9289-04d4f1d8ba23
state::::::::::::: active
config generation: 6
subnet:::::::::::: fd00:1122:3344:103::/64
last allocated IP: fd00:1122:3344:103::25

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1940,6 +1946,7 @@ parent: 8f2d1f39-7c88-4701-aa43-56bf281b28c1
state::::::::::::: active
config generation: 6
subnet:::::::::::: fd00:1122:3344:102::/64
last allocated IP: fd00:1122:3344:102::26

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -1994,6 +2001,7 @@ parent: 8f2d1f39-7c88-4701-aa43-56bf281b28c1
state::::::::::::: active
config generation: 7
subnet:::::::::::: fd00:1122:3344:101::/64
last allocated IP: fd00:1122:3344:101::25

host phase 2 contents:
------------------------
Expand Down Expand Up @@ -2045,6 +2053,7 @@ parent: 8f2d1f39-7c88-4701-aa43-56bf281b28c1
state::::::::::::: active
config generation: 6
subnet:::::::::::: fd00:1122:3344:103::/64
last allocated IP: fd00:1122:3344:103::25

host phase 2 contents:
------------------------
Expand Down
Loading
Loading