Skip to content

Commit

Permalink
[reconfigurator] BlueprintBuilder cleanup 4/5 - when choosing a zpo…
Browse files Browse the repository at this point in the history
…ol, it must be from a disk present in the blueprint (#7106)

Builds and is staged on top of #7105.

The intended change here is in the first commit
(8274174): In
`BlueprintBuilder::sled_select_zpool()`, instead of only looking at the
`PlanningInput`, we also look at the disks present in the blueprint, and
only select a zpool that the planning input says is in service and that
we have in the blueprint.

This had a surprisingly-large blast radius in terms of tests - we had
_many_ tests which were adding zones (which implicitly selects a zpool)
from a `BlueprintBuilder` where there were no disks configured at all,
causing them to emit invalid blueprints. These should all be fixed as of
this PR, but I'm a little worried about test fragility in general,
particularly with an eye toward larger changes like #7078. Nothing to do
about that at the moment, but something to keep an eye on.

Fixes #7079.
  • Loading branch information
jgallagher authored Nov 22, 2024
1 parent a5b2a55 commit 75e4448
Show file tree
Hide file tree
Showing 31 changed files with 2,048 additions and 1,720 deletions.
136 changes: 130 additions & 6 deletions dev-tools/omdb/tests/successes.out
Original file line number Diff line number Diff line change
Expand Up @@ -1220,8 +1220,49 @@ stdout:
blueprint ......<REDACTED_BLUEPRINT_ID>.......
parent: <none>

!..........<REDACTED_UUID>...........
WARNING: Zones exist without physical disks!
sled: ..........<REDACTED_UUID>........... (active)

physical disks at generation 2:
---------------------------------------------------
vendor model serial
---------------------------------------------------
nexus-tests nexus-test-model nexus-test-disk-10
nexus-tests nexus-test-model nexus-test-disk-11
nexus-tests nexus-test-model nexus-test-disk-12
nexus-tests nexus-test-model nexus-test-disk-13
nexus-tests nexus-test-model nexus-test-disk-14
nexus-tests nexus-test-model nexus-test-disk-15
nexus-tests nexus-test-model nexus-test-disk-16
nexus-tests nexus-test-model nexus-test-disk-17
nexus-tests nexus-test-model nexus-test-disk-18
nexus-tests nexus-test-model nexus-test-disk-19


omicron zones at generation 2:
-----------------------------------------------
zone type zone id disposition underlay IP
-----------------------------------------------



sled: ..........<REDACTED_UUID>........... (active)

physical disks at generation 2:
--------------------------------------------------
vendor model serial
--------------------------------------------------
nexus-tests nexus-test-model nexus-test-disk-0
nexus-tests nexus-test-model nexus-test-disk-1
nexus-tests nexus-test-model nexus-test-disk-2
nexus-tests nexus-test-model nexus-test-disk-3
nexus-tests nexus-test-model nexus-test-disk-4
nexus-tests nexus-test-model nexus-test-disk-5
nexus-tests nexus-test-model nexus-test-disk-6
nexus-tests nexus-test-model nexus-test-disk-7
nexus-tests nexus-test-model nexus-test-disk-8
nexus-tests nexus-test-model nexus-test-disk-9


omicron zones at generation 2:
---------------------------------------------------------------------------------------
zone type zone id disposition underlay IP
Expand All @@ -1234,7 +1275,6 @@ WARNING: Zones exist without physical disks!
nexus ..........<REDACTED_UUID>........... in service ::ffff:127.0.0.1



COCKROACHDB SETTINGS:
state fingerprint::::::::::::::::: <COCKROACHDB_FINGERPRINT_REDACTED>
cluster.preserve_downgrade_option: <COCKROACHDB_VERSION_REDACTED>
Expand All @@ -1258,8 +1298,49 @@ stdout:
blueprint ......<REDACTED_BLUEPRINT_ID>.......
parent: <none>

!..........<REDACTED_UUID>...........
WARNING: Zones exist without physical disks!
sled: ..........<REDACTED_UUID>........... (active)

physical disks at generation 2:
---------------------------------------------------
vendor model serial
---------------------------------------------------
nexus-tests nexus-test-model nexus-test-disk-10
nexus-tests nexus-test-model nexus-test-disk-11
nexus-tests nexus-test-model nexus-test-disk-12
nexus-tests nexus-test-model nexus-test-disk-13
nexus-tests nexus-test-model nexus-test-disk-14
nexus-tests nexus-test-model nexus-test-disk-15
nexus-tests nexus-test-model nexus-test-disk-16
nexus-tests nexus-test-model nexus-test-disk-17
nexus-tests nexus-test-model nexus-test-disk-18
nexus-tests nexus-test-model nexus-test-disk-19


omicron zones at generation 2:
-----------------------------------------------
zone type zone id disposition underlay IP
-----------------------------------------------



sled: ..........<REDACTED_UUID>........... (active)

physical disks at generation 2:
--------------------------------------------------
vendor model serial
--------------------------------------------------
nexus-tests nexus-test-model nexus-test-disk-0
nexus-tests nexus-test-model nexus-test-disk-1
nexus-tests nexus-test-model nexus-test-disk-2
nexus-tests nexus-test-model nexus-test-disk-3
nexus-tests nexus-test-model nexus-test-disk-4
nexus-tests nexus-test-model nexus-test-disk-5
nexus-tests nexus-test-model nexus-test-disk-6
nexus-tests nexus-test-model nexus-test-disk-7
nexus-tests nexus-test-model nexus-test-disk-8
nexus-tests nexus-test-model nexus-test-disk-9


omicron zones at generation 2:
---------------------------------------------------------------------------------------
zone type zone id disposition underlay IP
Expand All @@ -1272,7 +1353,6 @@ WARNING: Zones exist without physical disks!
nexus ..........<REDACTED_UUID>........... in service ::ffff:127.0.0.1



COCKROACHDB SETTINGS:
state fingerprint::::::::::::::::: <COCKROACHDB_FINGERPRINT_REDACTED>
cluster.preserve_downgrade_option: <COCKROACHDB_VERSION_REDACTED>
Expand Down Expand Up @@ -1300,8 +1380,52 @@ to: blueprint ......<REDACTED_BLUEPRINT_ID>.......

sled ..........<REDACTED_UUID>........... (active):

physical disks at generation 2:
---------------------------------------------------
vendor model serial
---------------------------------------------------
nexus-tests nexus-test-model nexus-test-disk-10
nexus-tests nexus-test-model nexus-test-disk-11
nexus-tests nexus-test-model nexus-test-disk-12
nexus-tests nexus-test-model nexus-test-disk-13
nexus-tests nexus-test-model nexus-test-disk-14
nexus-tests nexus-test-model nexus-test-disk-15
nexus-tests nexus-test-model nexus-test-disk-16
nexus-tests nexus-test-model nexus-test-disk-17
nexus-tests nexus-test-model nexus-test-disk-18
nexus-tests nexus-test-model nexus-test-disk-19


sled ..........<REDACTED_UUID>........... (active):

physical disks at generation 2:
--------------------------------------------------
vendor model serial
--------------------------------------------------
nexus-tests nexus-test-model nexus-test-disk-0
nexus-tests nexus-test-model nexus-test-disk-1
nexus-tests nexus-test-model nexus-test-disk-2
nexus-tests nexus-test-model nexus-test-disk-3
nexus-tests nexus-test-model nexus-test-disk-4
nexus-tests nexus-test-model nexus-test-disk-5
nexus-tests nexus-test-model nexus-test-disk-6
nexus-tests nexus-test-model nexus-test-disk-7
nexus-tests nexus-test-model nexus-test-disk-8
nexus-tests nexus-test-model nexus-test-disk-9


datasets at generation 2:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dataset name dataset uuid quota reservation compression
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
oxp_..........<REDACTED_UUID>.........../crypt/zone/oxz_clickhouse_..........<REDACTED_UUID>........... ..........<REDACTED_UUID>........... none none off
oxp_..........<REDACTED_UUID>.........../crypt/zone/oxz_cockroachdb_..........<REDACTED_UUID>........... ..........<REDACTED_UUID>........... none none off
oxp_..........<REDACTED_UUID>.........../crypt/zone/oxz_crucible_pantry_..........<REDACTED_UUID>........... ..........<REDACTED_UUID>........... none none off
oxp_..........<REDACTED_UUID>.........../crypt/zone/oxz_external_dns_..........<REDACTED_UUID>........... ..........<REDACTED_UUID>........... none none off
oxp_..........<REDACTED_UUID>.........../crypt/zone/oxz_internal_dns_..........<REDACTED_UUID>........... ..........<REDACTED_UUID>........... none none off
oxp_..........<REDACTED_UUID>.........../crypt/zone/oxz_nexus_..........<REDACTED_UUID>........... ..........<REDACTED_UUID>........... none none off


omicron zones at generation 2:
---------------------------------------------------------------------------------------
zone type zone id disposition underlay IP
Expand Down
Loading

0 comments on commit 75e4448

Please sign in to comment.