diff --git a/Cargo.lock b/Cargo.lock index 459efe13cc0..2f99b2a276a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2340,9 +2340,9 @@ dependencies = [ [[package]] name = "daft" -version = "0.1.5" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a26f1f0a7934549bf8d8448d9da072c31f14e1e407b6cbacfdc07b3777988e" +checksum = "49921a57f45e3bf2cc8a0c4e3a10aa342b95a481d7dd89d844c1225496957296" dependencies = [ "daft-derive", "newtype-uuid", @@ -2353,9 +2353,9 @@ dependencies = [ [[package]] name = "daft-derive" -version = "0.1.5" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27c6a4a4003df965e441d13b2a7044efa44334b567c984701f8a2773f815c5e2" +checksum = "91850c0efee1e6dffcea4e5841ff3a71db80575a79f933d0c77e41c6fe0973d1" dependencies = [ "proc-macro2", "quote", @@ -14190,7 +14190,7 @@ version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1c97747dbf44bb1ca44a561ece23508e99cb592e862f22222dcf42f51d1e451" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", "syn 2.0.117", diff --git a/Cargo.toml b/Cargo.toml index a8cc82cd97b..99525fd20af 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -484,7 +484,7 @@ crucible-common = { git = "https://github.com/oxidecomputer/crucible", rev = "71 # NOTE: See above! csv = "1.3.1" curve25519-dalek = "4" -daft = { version = "0.1.4", features = ["derive", "newtype-uuid1", "oxnet01", "uuid1"] } +daft = { version = "0.1.7", features = ["derive", "newtype-uuid1", "oxnet01", "uuid1"] } display-error-chain = "0.2.2" omicron-ddm-admin-client = { path = "clients/ddm-admin-client" } datatest-stable = "0.3.2" diff --git a/dev-tools/omdb/src/bin/omdb/nexus/reconfigurator_config.rs b/dev-tools/omdb/src/bin/omdb/nexus/reconfigurator_config.rs index b293250baf8..ebd3cb65512 100644 --- a/dev-tools/omdb/src/bin/omdb/nexus/reconfigurator_config.rs +++ b/dev-tools/omdb/src/bin/omdb/nexus/reconfigurator_config.rs @@ -50,9 +50,6 @@ pub struct ReconfiguratorConfigOpts { #[clap(long, action = ArgAction::Set)] planner_enabled: Option, - #[clap(long, action = ArgAction::Set)] - add_zones_with_mupdate_override: Option, - #[clap(long, action = ArgAction::Set)] tuf_repo_pruner_enabled: Option, } @@ -65,13 +62,7 @@ impl ReconfiguratorConfigOpts { planner_enabled: self .planner_enabled .unwrap_or(current.planner_enabled), - planner_config: PlannerConfig { - add_zones_with_mupdate_override: self - .add_zones_with_mupdate_override - .unwrap_or( - current.planner_config.add_zones_with_mupdate_override, - ), - }, + planner_config: PlannerConfig::default(), tuf_repo_pruner_enabled: self .tuf_repo_pruner_enabled .unwrap_or(current.tuf_repo_pruner_enabled), diff --git a/dev-tools/omdb/src/bin/omdb/reconfigurator.rs b/dev-tools/omdb/src/bin/omdb/reconfigurator.rs index cc2b267d1ad..2b08aae4b6d 100644 --- a/dev-tools/omdb/src/bin/omdb/reconfigurator.rs +++ b/dev-tools/omdb/src/bin/omdb/reconfigurator.rs @@ -420,7 +420,6 @@ async fn cmd_reconfigurator_config_history( struct SwitchesRow { version: String, planner_enabled: String, - add_zones_with_mupdate_override: String, tuf_repo_pruner_enabled: String, time_modified: String, } @@ -433,8 +432,7 @@ async fn cmd_reconfigurator_config_history( config: ReconfiguratorConfig { planner_enabled, - planner_config: - PlannerConfig { add_zones_with_mupdate_override }, + planner_config: PlannerConfig {}, tuf_repo_pruner_enabled, }, time_modified, @@ -442,8 +440,6 @@ async fn cmd_reconfigurator_config_history( SwitchesRow { version: version.to_string(), planner_enabled: planner_enabled.to_string(), - add_zones_with_mupdate_override: - add_zones_with_mupdate_override.to_string(), tuf_repo_pruner_enabled: tuf_repo_pruner_enabled.to_string(), time_modified: time_modified.to_string(), } diff --git a/dev-tools/omdb/tests/successes.out b/dev-tools/omdb/tests/successes.out index daa911498d3..d6d6f89b40b 100644 --- a/dev-tools/omdb/tests/successes.out +++ b/dev-tools/omdb/tests/successes.out @@ -2164,8 +2164,6 @@ Reconfigurator config: modified time: tuf repo pruner enabled: true planner enabled: false - planner config: - add zones with mupdate override: false --------------------------------------------- stderr: note: using Nexus URL http://127.0.0.1:REDACTED_PORT/ @@ -2245,21 +2243,6 @@ stdout: reconfigurator config updated to version 2: tuf repo pruner enabled: true (unchanged) * planner enabled::::::::: false -> true - planner config: - add zones with mupdate override: false (unchanged) ---------------------------------------------- -stderr: -note: using Nexus URL http://127.0.0.1:REDACTED_PORT/ -============================================= -EXECUTING COMMAND: omdb ["-w", "nexus", "reconfigurator-config", "set", "--add-zones-with-mupdate-override", "true"] -termination: Exited(0) ---------------------------------------------- -stdout: -reconfigurator config updated to version 3: - tuf repo pruner enabled: true (unchanged) - planner enabled::::::::: true (unchanged) - planner config: - * add zones with mupdate override: false -> true --------------------------------------------- stderr: note: using Nexus URL http://127.0.0.1:REDACTED_PORT/ @@ -2269,12 +2252,10 @@ termination: Exited(0) --------------------------------------------- stdout: Reconfigurator config: - version: 3 + version: 2 modified time: tuf repo pruner enabled: true planner enabled: true - planner config: - add zones with mupdate override: true --------------------------------------------- stderr: note: using Nexus URL http://127.0.0.1:REDACTED_PORT/ diff --git a/dev-tools/omdb/tests/test_all_output.rs b/dev-tools/omdb/tests/test_all_output.rs index b787dceefd9..92c6e4e186d 100644 --- a/dev-tools/omdb/tests/test_all_output.rs +++ b/dev-tools/omdb/tests/test_all_output.rs @@ -290,14 +290,6 @@ async fn test_omdb_success_cases() { "--planner-enabled", "true", ], - &[ - "-w", - "nexus", - "reconfigurator-config", - "set", - "--add-zones-with-mupdate-override", - "true", - ], &["nexus", "reconfigurator-config", "show", "current"], &["reconfigurator", "export", tmppath.as_str()], // We can't easily test the sled agent output because that's only diff --git a/dev-tools/reconfigurator-cli/src/lib.rs b/dev-tools/reconfigurator-cli/src/lib.rs index d09bf3358b0..064a7b95596 100644 --- a/dev-tools/reconfigurator-cli/src/lib.rs +++ b/dev-tools/reconfigurator-cli/src/lib.rs @@ -7,7 +7,7 @@ use anyhow::{Context, anyhow, bail, ensure}; use camino::Utf8PathBuf; use chrono::{DateTime, Utc}; -use clap::{ArgAction, ValueEnum}; +use clap::ValueEnum; use clap::{Args, Parser, Subcommand}; use daft::Diffable; use gateway_types::rot::RotSlot; @@ -34,6 +34,7 @@ use nexus_reconfigurator_simulation::{ }; use nexus_reconfigurator_simulation::{SimStateBuilder, SimTufRepoSource}; use nexus_reconfigurator_simulation::{SimTufRepoDescription, Simulator}; +use nexus_types::deployment::BlueprintHostPhase2DesiredContents; use nexus_types::deployment::BlueprintMeasurements; use nexus_types::deployment::CockroachDbSettings; use nexus_types::deployment::ExpectedVersion; @@ -42,9 +43,6 @@ 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::{ BlueprintZoneImageSource, PendingMgsUpdateDetails, @@ -1554,8 +1552,6 @@ enum SetArgs { /// TUF repo containing release artifacts filename: Utf8PathBuf, }, - /// planner config - PlannerConfig(SetPlannerConfigArgs), /// timestamp for ignoring impossible MGS updates IgnoreImpossibleMgsUpdatesSince { since: SetIgnoreImpossibleMgsUpdatesSinceArgs, @@ -1581,35 +1577,6 @@ impl FromStr for SetIgnoreImpossibleMgsUpdatesSinceArgs { } } -#[derive(Debug, Args)] -struct SetPlannerConfigArgs { - #[clap(flatten)] - planner_config: PlannerConfigOpts, -} - -// Define the config fields separately so we can use `group(required = true, -// multiple = true).` -#[derive(Debug, Clone, Args)] -#[group(required = true, multiple = true)] -pub struct PlannerConfigOpts { - #[clap(long, action = ArgAction::Set)] - add_zones_with_mupdate_override: Option, -} - -impl PlannerConfigOpts { - fn update_if_modified( - &self, - current: &PlannerConfig, - ) -> Option { - let new = PlannerConfig { - add_zones_with_mupdate_override: self - .add_zones_with_mupdate_override - .unwrap_or(current.add_zones_with_mupdate_override), - }; - (new != *current).then_some(new) - } -} - #[derive(Debug, Args)] struct SetCockroachdbSettingsArgs { #[clap(flatten)] @@ -3542,17 +3509,6 @@ fn cmd_set( ); format!("set target release based on {}", filename) } - SetArgs::PlannerConfig(args) => { - let current = state.system_mut().description().get_planner_config(); - if let Some(new) = args.planner_config.update_if_modified(¤t) - { - state.system_mut().description_mut().set_planner_config(new); - let diff = current.diff(&new); - format!("planner config updated:\n{}", diff.display()) - } else { - format!("no changes to planner config:\n{}", current.display()) - } - } SetArgs::IgnoreImpossibleMgsUpdatesSince { since } => { state .system_mut() diff --git a/dev-tools/reconfigurator-cli/tests/input/cmds-add-zones-with-mupdate-override.txt b/dev-tools/reconfigurator-cli/tests/input/cmds-add-zones-with-mupdate-override.txt deleted file mode 100644 index 9db31e8b2aa..00000000000 --- a/dev-tools/reconfigurator-cli/tests/input/cmds-add-zones-with-mupdate-override.txt +++ /dev/null @@ -1,48 +0,0 @@ -# This script tests the add-zones-with-mupdate-override -# planner config. - -# Load example system -load-example --nsleds 3 --ndisks-per-sled 3 - -# Create a TUF repository from a fake manifest. We're going to use this -# repository to test out the minimum release generation flow. -tuf-assemble ../../update-common/manifests/fake.toml -set target-release repo-1.0.0.zip - -# Update the install dataset on this sled to the target release. -# (This populates the zone manifest, used for no-op conversions from -# install dataset to artifact down the road.) -sled-update-install-dataset serial0 --to-target-release - -# Simulate a mupdate on sled 0 by setting the mupdate override field to a -# new UUID (generated using uuidgen). -sled-set serial0 mupdate-override 2d0f6cbc-addc-47a2-962a-6a01e13376bf - -# Generate a new inventory and plan against that. -inventory-generate -blueprint-plan latest latest - -# Diff the blueprints. This diff should show "will remove mupdate override" -# and the target release minimum generation being set. -blueprint-diff latest - -# Apply the blueprint to serial0 so that inventory's reported sled-agent -# generation matches the blueprint. (The mupdate override remains visible in -# inventory because we don't call `sled-set ... mupdate-override unset`.) This -# keeps the next plan's noop check from firing the inventory-stale path, -# letting it exercise the mupdate-override-set-in-blueprint path instead. -sled-set serial0 omicron-config latest -inventory-generate - -# Set Nexus redundancy to 4. -set num-nexus 4 - -# Plan with the new Nexus. This will not add any Nexus zones. -blueprint-plan latest latest -blueprint-diff latest - -# Set the add-zones-with-mupdate-override config, then do a planning run. -# This *will* add a new Nexus zone. -set planner-config --add-zones-with-mupdate-override true -blueprint-plan latest latest -blueprint-diff latest diff --git a/dev-tools/reconfigurator-cli/tests/input/cmds-example.txt b/dev-tools/reconfigurator-cli/tests/input/cmds-example.txt index b60c5c6833b..7b806e6a34c 100644 --- a/dev-tools/reconfigurator-cli/tests/input/cmds-example.txt +++ b/dev-tools/reconfigurator-cli/tests/input/cmds-example.txt @@ -59,11 +59,6 @@ inventory-show latest all blueprint-plan latest blueprint-diff ade5749d-bdf3-4fab-a8ae-00bea01b3a5a latest -# Set planner config. -set planner-config --add-zones-with-mupdate-override false -set planner-config --add-zones-with-mupdate-override true -set planner-config --add-zones-with-mupdate-override true - # Sled index out of bounds, will error out. wipe all load-example --seed test-basic --nsleds 3 --sled-policy 3:non-provisionable @@ -72,15 +67,15 @@ log log --verbose # Switch states with a full UUID. -switch 4d8d6725-1ae3-4f88-b9cb-a34db82d7439 +switch 4a3b153b-fc8a-485a-baee-badaad53d2fc log # Switch states with a unique prefix. -switch 860f +switch 0a3 log # Switch states with an ambiguous prefix (should fail). -switch 4 +switch 2 # Switch states with a non-existent prefix (should fail). switch zzzz @@ -90,11 +85,11 @@ sled-add sled-add # Make an additional branch based on the previous branch. -switch 4d8d6725 +switch 860f sled-add # Go back to the previous branch. -switch 5c53cf4b +switch 4d8d6725 log log --verbose diff --git a/dev-tools/reconfigurator-cli/tests/input/cmds-expunge-newly-added-external-dns.txt b/dev-tools/reconfigurator-cli/tests/input/cmds-expunge-newly-added-external-dns.txt index 744538ab910..2f6f7e05535 100644 --- a/dev-tools/reconfigurator-cli/tests/input/cmds-expunge-newly-added-external-dns.txt +++ b/dev-tools/reconfigurator-cli/tests/input/cmds-expunge-newly-added-external-dns.txt @@ -10,10 +10,6 @@ blueprint-diff 3f00b694-1b16-4aaa-8f78-e6b3a527b434 366b0b68-d80e-4bc1-abd3-dc69 blueprint-show 366b0b68-d80e-4bc1-abd3-dc69837847e0 -# Set the add_zones_with_mupdate_override planner config to ensure that zone -# adds happen despite zone image sources not being Artifact. -set planner-config --add-zones-with-mupdate-override true - # blueprint-plan will place a new external DNS zone, diff DNS to see the new zone has `ns` and NS records. blueprint-plan 366b0b68-d80e-4bc1-abd3-dc69837847e0 blueprint-diff 366b0b68-d80e-4bc1-abd3-dc69837847e0 9c998c1d-1a7b-440a-ae0c-40f781dea6e2 diff --git a/dev-tools/reconfigurator-cli/tests/input/cmds-mupdate-update-flow.txt b/dev-tools/reconfigurator-cli/tests/input/cmds-mupdate-update-flow.txt index 12833ca0862..2e6b0bdd101 100644 --- a/dev-tools/reconfigurator-cli/tests/input/cmds-mupdate-update-flow.txt +++ b/dev-tools/reconfigurator-cli/tests/input/cmds-mupdate-update-flow.txt @@ -220,14 +220,13 @@ inventory-generate blueprint-plan latest latest blueprint-diff latest -# Test that the add-zones-with-mupdate-override planner config works as -# expected. We do this by: +# Test that adding a new sled while a mupdate override is active does not +# cause the planner to add new zones to it. We do this by: # * setting the mupdate override on a sled # * adding a new sled # -# With the option disabled (the current state), the planner will -# not proceed with adding new zones. But with the option enabled, -# new zones will be added. +# The planner will not proceed with adding new zones while any sled has an +# active mupdate override. # Apply the blueprint edits to sled 0. This also lets the planner see # that the internal_dns zone is expunged, setting up a replacement @@ -238,20 +237,10 @@ sled-add c3bc4c6d-fdde-4fc4-8493-89d2a1e5ee6b inventory-generate # This will *not* generate the datasets and internal NTP zone on the new -# sled. +# sled, because zone adds are blocked while a mupdate override is present. blueprint-plan latest latest blueprint-diff latest -# This *will* generate the datasets and internal NTP zone on the new sled. -set planner-config --add-zones-with-mupdate-override true -blueprint-plan latest latest -# TODO: This blippy run produces two FATAL notes, due to, respectively: -# -# * https://github.com/oxidecomputer/omicron/issues/10420 -# * https://github.com/oxidecomputer/omicron/pull/10363 -blueprint-blippy latest -blueprint-diff latest - # Set the target release minimum generation to a large value -- we're going to # test that the planner bails if it attempts a rollback of the target release # minimum generation. diff --git a/dev-tools/reconfigurator-cli/tests/output/cmds-add-zones-with-mupdate-override-stdout b/dev-tools/reconfigurator-cli/tests/output/cmds-add-zones-with-mupdate-override-stdout deleted file mode 100644 index 2e7fa211c08..00000000000 --- a/dev-tools/reconfigurator-cli/tests/output/cmds-add-zones-with-mupdate-override-stdout +++ /dev/null @@ -1,481 +0,0 @@ -using provided RNG seed: reconfigurator-cli-test -> # This script tests the add-zones-with-mupdate-override -> # planner config. - -> # Load example system -> load-example --nsleds 3 --ndisks-per-sled 3 -loaded example system with: -- collection: f45ba181-4b56-42cc-a762-874d90184a43 -- blueprint: dbcbd3d6-41ff-48ae-ac0b-1becc9b2fd21 - - -> # Create a TUF repository from a fake manifest. We're going to use this -> # repository to test out the minimum release generation flow. -> tuf-assemble ../../update-common/manifests/fake.toml -INFO assembling repository in -INFO artifacts assembled and archived to `repo-1.0.0.zip`, component: OmicronRepoAssembler -created repo-1.0.0.zip for system version 1.0.0 - -> set target-release repo-1.0.0.zip -INFO extracting uploaded archive to -INFO created directory to store extracted artifacts, path: -INFO added artifact, name: fake-gimlet-sp, kind: gimlet_sp, version: 1.0.0, hash: 68465b8e3f808f475510b525cfd62086d37ddd57688bd854184fdafb2b2198a4, length: 732 -INFO added artifact, name: fake-rot, kind: gimlet_rot_image_a, version: 1.0.0, hash: d11e65f934bf0de51df2e5b484f61ee72072417b43ac87f33e958008428e7b02, length: 783 -INFO added artifact, name: fake-rot, kind: gimlet_rot_image_b, version: 1.0.0, hash: d11e65f934bf0de51df2e5b484f61ee72072417b43ac87f33e958008428e7b02, length: 783 -INFO added artifact, name: fake-rot-bootloader, kind: gimlet_rot_bootloader, version: 1.0.0, hash: 5b0f601b1fbb8674db9c751a02f8b14f8e6d4e8470f4f7b686fecb2c49ec11f9, length: 797 -INFO added artifact, name: fake-host, kind: gimlet_host_phase_1, version: 1.0.0, hash: b99d5273ba1418bebb19d74b701d716896409566d41de76ada71bded4c9b166b, length: 524288 -INFO added artifact, name: fake-host, kind: cosmo_host_phase_1, version: 1.0.0, hash: 9525f567106549a3fc32df870a74803d77e51dcc44190b218e227a2c5d444f58, length: 524288 -INFO added artifact, name: fake-host, kind: host_phase_2, version: 1.0.0, hash: d944ae205b61ccf4322448f7d0311a819c53d9844769de066c5307c1682abb47, length: 1048576 -INFO added artifact, name: fake-trampoline, kind: gimlet_trampoline_phase_1, version: 1.0.0, hash: bcb27520ee5a56e19f6df9662c66d69ac681fbd873a97547be5f6a5ae3d250c4, length: 524288 -INFO added artifact, name: fake-trampoline, kind: cosmo_trampoline_phase_1, version: 1.0.0, hash: e235b8afb58ee69d966853bd5efe7c7e904da84b9035a332b3e691dc1d5cdbd0, length: 524288 -INFO added artifact, name: fake-trampoline, kind: trampoline_phase_2, version: 1.0.0, hash: a5dfcc4bc69b791f1c509df499e9e72cce844cb2b53a56d8bb357b264bdf13b6, length: 1048576 -INFO added artifact, name: clickhouse, kind: zone, version: 1.0.0, hash: 52b1eb4daff6f9140491d547b11248392920230db3db0eef5f5fa5333fe9e659, length: 1686 -INFO added artifact, name: clickhouse_keeper, kind: zone, version: 1.0.0, hash: cda702919449d86663be97295043aeca0ead69ae5db3bbdb20053972254a27a3, length: 1690 -INFO added artifact, name: clickhouse_server, kind: zone, version: 1.0.0, hash: 5f9ae6a9821bbe8ff0bf60feddf8b167902fe5f3e2c98bd21edd1ec9d969a001, length: 1690 -INFO added artifact, name: cockroachdb, kind: zone, version: 1.0.0, hash: f3a1a3c0b3469367b005ee78665d982059d5e14e93a479412426bf941c4ed291, length: 1689 -INFO added artifact, name: crucible-zone, kind: zone, version: 1.0.0, hash: 6f17cf65fb5a5bec5542dd07c03cd0acc01e59130f02c532c8d848ecae810047, length: 1690 -INFO added artifact, name: crucible-pantry-zone, kind: zone, version: 1.0.0, hash: 21f0ada306859c23917361f2e0b9235806c32607ec689c7e8cf16bb898bc5a02, length: 1695 -INFO added artifact, name: external-dns, kind: zone, version: 1.0.0, hash: ccca13ed19b8731f9adaf0d6203b02ea3b9ede4fa426b9fac0a07ce95440046d, length: 1689 -INFO added artifact, name: internal-dns, kind: zone, version: 1.0.0, hash: ffbf1373f7ee08dddd74c53ed2a94e7c4c572a982d3a9bc94000c6956b700c6a, length: 1689 -INFO added artifact, name: ntp, kind: zone, version: 1.0.0, hash: 67593d686ed04a1709f93972b71f4ebc148a9362120f65d239943e814a9a7439, length: 1681 -INFO added artifact, name: nexus, kind: zone, version: 1.0.0, hash: 0e32b4a3e5d3668bb1d6a16fb06b74dc60b973fa479dcee0aae3adbb52bf1388, length: 1682 -INFO added artifact, name: oximeter, kind: zone, version: 1.0.0, hash: 048d8fe8cdef5b175aad714d0f148aa80ce36c9114ac15ce9d02ed3d37877a77, length: 1682 -INFO added artifact, name: fake-corpus, kind: measurement_corpus, version: 1.0.0, hash: 8a0e23157bae655fceec7376926c9758efee6511c7b7ff8355bbb49545a2257f, length: 1048576 -INFO added artifact, name: fake-psc-sp, kind: psc_sp, version: 1.0.0, hash: 89245fe2ac7e6a2ac8dfa4e7d6891a6e6df95e4141395c07c64026778f6d76d7, length: 721 -INFO added artifact, name: fake-psc-rot, kind: psc_rot_image_a, version: 1.0.0, hash: 5d8ea834dd6d42d386f1eb8a2c5f6e99b697c9958bb4ab8edf63e56003e25d8d, length: 775 -INFO added artifact, name: fake-psc-rot, kind: psc_rot_image_b, version: 1.0.0, hash: 5d8ea834dd6d42d386f1eb8a2c5f6e99b697c9958bb4ab8edf63e56003e25d8d, length: 775 -INFO added artifact, name: fake-psc-rot-bootloader, kind: psc_rot_bootloader, version: 1.0.0, hash: 18c9c774bfe4bb086e869509dcccacee8476fd87670692b765aee216f2c7f003, length: 805 -INFO added artifact, name: fake-switch-sp, kind: switch_sp, version: 1.0.0, hash: bf1bc1da5059f76182c3007c3049941f8898abede2f3765b106c6e7f7c42d44c, length: 740 -INFO added artifact, name: fake-switch-rot, kind: switch_rot_image_a, version: 1.0.0, hash: 32307d6d75c9707e8499ba4a4d379f99c0358237b6e190ff6a8024b470f62342, length: 774 -INFO added artifact, name: fake-switch-rot, kind: switch_rot_image_b, version: 1.0.0, hash: 32307d6d75c9707e8499ba4a4d379f99c0358237b6e190ff6a8024b470f62342, length: 774 -INFO added artifact, name: fake-switch-rot-bootloader, kind: switch_rot_bootloader, version: 1.0.0, hash: 70836d170abd5621f95bb4225987b27b3d3dd6168e73cd60e44309bdfeb94e98, length: 804 -INFO added artifact, name: installinator_document, kind: installinator_document, version: 1.0.0, hash: 16717c0caa420c7811666e720936c7ca913cd59a4d376331cc79a90544e5e2e8, length: 526 -set target release based on repo-1.0.0.zip - - -> # Update the install dataset on this sled to the target release. -> # (This populates the zone manifest, used for no-op conversions from -> # install dataset to artifact down the road.) -> sled-update-install-dataset serial0 --to-target-release -sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6: install dataset updated: to target release (system version 1.0.0) - - -> # Simulate a mupdate on sled 0 by setting the mupdate override field to a -> # new UUID (generated using uuidgen). -> sled-set serial0 mupdate-override 2d0f6cbc-addc-47a2-962a-6a01e13376bf -set sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6 mupdate override: unset -> 2d0f6cbc-addc-47a2-962a-6a01e13376bf - - -> # Generate a new inventory and plan against that. -> inventory-generate -generated inventory collection eb0796d5-ab8a-4f7b-a884-b4aeacb8ab51 from configured sleds - -> blueprint-plan latest latest -INFO blueprint mupdate override updated to match inventory, phase: do_plan_mupdate_override, sled_id: 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6, new_bp_override: 2d0f6cbc-addc-47a2-962a-6a01e13376bf, prev_bp_override: None, zones: - - zone 058fd5f9-60a8-4e11-9302-15172782e17d (Crucible) left unchanged, image source: install dataset - - zone 0c71b3b2-6ceb-4e8f-b020-b08675e83038 (Nexus) left unchanged, image source: install dataset - - zone 427ec88f-f467-42fa-9bbb-66a91a36103c (InternalDns) left unchanged, image source: install dataset - - zone 5199c033-4cf9-4ab6-8ae7-566bd7606363 (Crucible) left unchanged, image source: install dataset - - zone 6444f8a5-6465-4f0b-a549-1993c113569c (InternalNtp) left unchanged, image source: install dataset - - zone 803bfb63-c246-41db-b0da-d3b87ddfc63d (ExternalDns) left unchanged, image source: install dataset - - zone ba4994a8-23f9-4b1a-a84f-a08d74591389 (CruciblePantry) left unchanged, image source: install dataset - - zone dfac80b4-a887-430a-ae87-a4e065dba787 (Crucible) left unchanged, image source: install dataset -, host_phase_2: - - host phase 2 slot A: current contents (unchanged) - - host phase 2 slot B: current contents (unchanged) -, measurements: (unknown) -INFO no previous MGS update found as part of updating blueprint mupdate override to match inventory, phase: do_plan_mupdate_override, sled_id: 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6 -INFO updating target release minimum generation based on new set-override actions, phase: do_plan_mupdate_override, current_generation: 1, new_generation: 3 -INFO performed noop zone image source checks on sled, sled_id: 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c, num_total: 9, num_already_artifact: 0, num_eligible: 0, num_ineligible: 9 -INFO BootPartitionDetails inventory hash not found in TUF repo, ignoring for noop checks, sled_id: 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c, slot: a, expected_hash: 0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a -INFO BootPartitionDetails inventory hash not found in TUF repo, ignoring for noop checks, sled_id: 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c, slot: b, expected_hash: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -INFO current sled measurements are in an unknown state, sled_id: 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c -INFO skipped noop image source check on sled, sled_id: 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6, reason: remove_mupdate_override is set in the blueprint (2d0f6cbc-addc-47a2-962a-6a01e13376bf) -INFO performed noop zone image source checks on sled, sled_id: d81c6a84-79b8-4958-ae41-ea46c9b19763, num_total: 8, num_already_artifact: 0, num_eligible: 0, num_ineligible: 8 -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 BootPartitionDetails inventory hash not found in TUF repo, ignoring for noop checks, sled_id: d81c6a84-79b8-4958-ae41-ea46c9b19763, slot: b, expected_hash: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -INFO current sled measurements are in an unknown state, sled_id: d81c6a84-79b8-4958-ae41-ea46c9b19763 -generated blueprint 8da82a8e-bf97-4fbd-8ddd-9f6462732cf1 based on parent blueprint dbcbd3d6-41ff-48ae-ac0b-1becc9b2fd21 -blueprint source: planner with report: -planning report: -* zone adds waiting on blockers -* zone adds and updates are blocked: - - current target release generation (2) is lower than minimum required by blueprint (3) - - sleds have remove mupdate override set in blueprint: 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6 - - sleds have deployment units with image sources not set to Artifact: - - sled 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c: 9 zones - - sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6: 8 zones - - sled d81c6a84-79b8-4958-ae41-ea46c9b19763: 8 zones - - - sleds have measurements with image sources not set to Artifact: - - sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6 set to install dataset - -* zone updates waiting on zone add blockers -* waiting to update top-level nexus_generation: some non-Nexus zone are not yet updated -Measurement updates: -Waiting on zone add/update blockers - - - - -> # Diff the blueprints. This diff should show "will remove mupdate override" -> # and the target release minimum generation being set. -> blueprint-diff latest -from: blueprint dbcbd3d6-41ff-48ae-ac0b-1becc9b2fd21 -to: blueprint 8da82a8e-bf97-4fbd-8ddd-9f6462732cf1 - - MODIFIED SLEDS: - - sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6 (active, config generation 2 -> 3): -+ will remove mupdate override: (none) -> 2d0f6cbc-addc-47a2-962a-6a01e13376bf - - measurements: - ----------------------------------- - hash version - ----------------------------------- -- unknown (unknown version) -+ install dataset (no version) - - - host phase 2 contents: - ------------------------ - slot boot image source - ------------------------ - A current contents - B current contents - - - physical disks: - ------------------------------------------------------------------------------------ - vendor model serial disposition - ------------------------------------------------------------------------------------ - fake-vendor fake-model serial-073979dd-3248-44a5-9fa1-cc72a140d682 in service - fake-vendor fake-model serial-c6d33b64-fb96-4129-bab1-7878a06a5f9b in service - fake-vendor fake-model serial-e4d937e1-6ddc-4eca-bb08-c1f73791e608 in service - - - datasets: - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - dataset name dataset id disposition quota reservation compression - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - oxp_073979dd-3248-44a5-9fa1-cc72a140d682/crucible 335e1dc3-b610-48dd-90bb-9ca5cce1a6d0 in service none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crucible d5fef28b-4ee8-4443-8c06-7e872c2502f3 in service none none off - oxp_e4d937e1-6ddc-4eca-bb08-c1f73791e608/crucible 6477f019-088c-43cf-8508-aa93f868830f in service none none off - oxp_073979dd-3248-44a5-9fa1-cc72a140d682/crypt/external_dns 02c56a30-7d97-406d-bd34-1eb437fd517d in service none none off - oxp_073979dd-3248-44a5-9fa1-cc72a140d682/crypt/internal_dns 4d7e3e8e-06bd-414c-a468-779e056a9b75 in service none none off - oxp_073979dd-3248-44a5-9fa1-cc72a140d682/crypt/zone 4617d206-4330-4dfa-b9f3-f63a3db834f9 in service none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/zone 4f60b534-eaa3-40a1-b60f-bfdf147af478 in service none none off - oxp_e4d937e1-6ddc-4eca-bb08-c1f73791e608/crypt/zone ad41be71-6c15-4428-b510-20ceacde4fa6 in service none none off - oxp_e4d937e1-6ddc-4eca-bb08-c1f73791e608/crypt/zone/oxz_crucible_058fd5f9-60a8-4e11-9302-15172782e17d 55a2a61a-1471-49b2-a6d0-b191ed94e057 in service none none off - oxp_073979dd-3248-44a5-9fa1-cc72a140d682/crypt/zone/oxz_crucible_5199c033-4cf9-4ab6-8ae7-566bd7606363 90b46084-4238-45ba-9e26-d3f2623e640e in service none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/zone/oxz_crucible_dfac80b4-a887-430a-ae87-a4e065dba787 bcdc7bf3-bbae-4e7f-81b2-4d94c8f752a4 in service none none off - oxp_073979dd-3248-44a5-9fa1-cc72a140d682/crypt/zone/oxz_crucible_pantry_ba4994a8-23f9-4b1a-a84f-a08d74591389 50b029e3-96aa-41e5-bf39-023193a4355e in service none none off - oxp_073979dd-3248-44a5-9fa1-cc72a140d682/crypt/zone/oxz_external_dns_803bfb63-c246-41db-b0da-d3b87ddfc63d ea8a11bf-a884-4c4f-8df0-3ef9b7aacf43 in service none none off - oxp_073979dd-3248-44a5-9fa1-cc72a140d682/crypt/zone/oxz_internal_dns_427ec88f-f467-42fa-9bbb-66a91a36103c 7b4ce6bf-95bb-42fe-a4a0-dff31211ab88 in service none none off - oxp_073979dd-3248-44a5-9fa1-cc72a140d682/crypt/zone/oxz_nexus_0c71b3b2-6ceb-4e8f-b020-b08675e83038 832fd140-d467-4bad-b5e9-63171634087c in service none none off - oxp_073979dd-3248-44a5-9fa1-cc72a140d682/crypt/zone/oxz_ntp_6444f8a5-6465-4f0b-a549-1993c113569c 42430c80-7836-4191-a4f6-bcee749010fe in service none none off - oxp_073979dd-3248-44a5-9fa1-cc72a140d682/crypt/debug 248c6c10-1ac6-45de-bb55-ede36ca56bbd in service 100 GiB none gzip-9 - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/debug 686c19cf-a0d7-45f6-866f-c564612b2664 in service 100 GiB none gzip-9 - oxp_e4d937e1-6ddc-4eca-bb08-c1f73791e608/crypt/debug 1bca7f71-5e42-4749-91ec-fa40793a3a9a in service 100 GiB none gzip-9 - oxp_073979dd-3248-44a5-9fa1-cc72a140d682/crypt/local_storage cdf3684f-a6cf-4449-b9ec-e696b2c663e2 in service none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/local_storage 3ac089c9-9dec-465b-863a-188e80d71fb4 in service none none off - oxp_e4d937e1-6ddc-4eca-bb08-c1f73791e608/crypt/local_storage 43931274-7fe8-4077-825d-dff2bc8efa58 in service none none off - oxp_073979dd-3248-44a5-9fa1-cc72a140d682/local_storage_unencrypted 793ac181-1b01-403c-850d-7f5c54bda6c9 in service none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/local_storage_unencrypted a4c3032e-21fa-4d4a-b040-a7e3c572cf3c in service none none off - oxp_e4d937e1-6ddc-4eca-bb08-c1f73791e608/local_storage_unencrypted 4847a96e-a267-4ae7-aa3d-805c1e77f81e in service none none off - - - omicron zones: - -------------------------------------------------------------------------------------------------------------- - zone type zone id image source disposition underlay IP - -------------------------------------------------------------------------------------------------------------- - crucible 058fd5f9-60a8-4e11-9302-15172782e17d install dataset in service fd00:1122:3344:101::9 - crucible 5199c033-4cf9-4ab6-8ae7-566bd7606363 install dataset in service fd00:1122:3344:101::7 - crucible dfac80b4-a887-430a-ae87-a4e065dba787 install dataset in service fd00:1122:3344:101::8 - crucible_pantry ba4994a8-23f9-4b1a-a84f-a08d74591389 install dataset in service fd00:1122:3344:101::6 - external_dns 803bfb63-c246-41db-b0da-d3b87ddfc63d install dataset in service fd00:1122:3344:101::5 - internal_dns 427ec88f-f467-42fa-9bbb-66a91a36103c install dataset in service fd00:1122:3344:2::1 - internal_ntp 6444f8a5-6465-4f0b-a549-1993c113569c install dataset in service fd00:1122:3344:101::3 - nexus 0c71b3b2-6ceb-4e8f-b020-b08675e83038 install dataset in service fd00:1122:3344:101::4 - - - COCKROACHDB SETTINGS: - state fingerprint::::::::::::::::: (none) (unchanged) - cluster.preserve_downgrade_option: (do not modify) (unchanged) - - METADATA: - internal DNS version::: 1 (unchanged) - external DNS version::: 1 (unchanged) -* target release min gen: 1 -> 3 - nexus gen:::::::::::::: 1 (unchanged) - - OXIMETER SETTINGS: - generation: 1 (unchanged) - read from:: SingleNode (unchanged) - - -internal DNS: - DNS zone: "control-plane.oxide.internal" (unchanged) - unchanged names: 52 (records: 68) - -external DNS: - DNS zone: "oxide.example" (unchanged) - unchanged names: 5 (records: 9) - - - - -> # Apply the blueprint to serial0 so that inventory's reported sled-agent -> # generation matches the blueprint. (The mupdate override remains visible in -> # inventory because we don't call `sled-set ... mupdate-override unset`.) This -> # keeps the next plan's noop check from firing the inventory-stale path, -> # letting it exercise the mupdate-override-set-in-blueprint path instead. -> sled-set serial0 omicron-config latest -set sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6 omicron config from latest blueprint (8da82a8e-bf97-4fbd-8ddd-9f6462732cf1) - -> inventory-generate -generated inventory collection 61f451b3-2121-4ed6-91c7-a550054f6c21 from configured sleds - - -> # Set Nexus redundancy to 4. -> set num-nexus 4 -target number of Nexus zones: None -> 4 - - -> # Plan with the new Nexus. This will not add any Nexus zones. -> blueprint-plan latest latest -INFO performed noop zone image source checks on sled, sled_id: 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c, num_total: 9, num_already_artifact: 0, num_eligible: 0, num_ineligible: 9 -INFO BootPartitionDetails inventory hash not found in TUF repo, ignoring for noop checks, sled_id: 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c, slot: a, expected_hash: 0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a -INFO BootPartitionDetails inventory hash not found in TUF repo, ignoring for noop checks, sled_id: 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c, slot: b, expected_hash: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -INFO current sled measurements are in an unknown state, sled_id: 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c -INFO skipped noop image source check on sled, sled_id: 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6, reason: remove_mupdate_override is set in the blueprint (2d0f6cbc-addc-47a2-962a-6a01e13376bf) -INFO performed noop zone image source checks on sled, sled_id: d81c6a84-79b8-4958-ae41-ea46c9b19763, num_total: 8, num_already_artifact: 0, num_eligible: 0, num_ineligible: 8 -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 BootPartitionDetails inventory hash not found in TUF repo, ignoring for noop checks, sled_id: d81c6a84-79b8-4958-ae41-ea46c9b19763, slot: b, expected_hash: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -INFO current sled measurements are in an unknown state, sled_id: d81c6a84-79b8-4958-ae41-ea46c9b19763 -generated blueprint 58d5e830-0884-47d8-a7cd-b2b3751adeb4 based on parent blueprint 8da82a8e-bf97-4fbd-8ddd-9f6462732cf1 -blueprint source: planner with report: -planning report: -* zone adds waiting on blockers -* zone adds and updates are blocked: - - current target release generation (2) is lower than minimum required by blueprint (3) - - sleds have remove mupdate override set in blueprint: 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6 - - sleds have deployment units with image sources not set to Artifact: - - sled 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c: 9 zones - - sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6: 8 zones - - sled d81c6a84-79b8-4958-ae41-ea46c9b19763: 8 zones - - - sleds have measurements with image sources not set to Artifact: - - sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6 set to install dataset - -* zone updates waiting on zone add blockers -* waiting to update top-level nexus_generation: some non-Nexus zone are not yet updated -Measurement updates: -Waiting on zone add/update blockers - - - -> blueprint-diff latest -from: blueprint 8da82a8e-bf97-4fbd-8ddd-9f6462732cf1 -to: blueprint 58d5e830-0884-47d8-a7cd-b2b3751adeb4 - - COCKROACHDB SETTINGS: - state fingerprint::::::::::::::::: (none) (unchanged) - cluster.preserve_downgrade_option: (do not modify) (unchanged) - - METADATA: - internal DNS version::: 1 (unchanged) - external DNS version::: 1 (unchanged) - target release min gen: 3 (unchanged) - nexus gen:::::::::::::: 1 (unchanged) - - OXIMETER SETTINGS: - generation: 1 (unchanged) - read from:: SingleNode (unchanged) - - -internal DNS: - DNS zone: "control-plane.oxide.internal" (unchanged) - unchanged names: 52 (records: 68) - -external DNS: - DNS zone: "oxide.example" (unchanged) - unchanged names: 5 (records: 9) - - - - -> # Set the add-zones-with-mupdate-override config, then do a planning run. -> # This *will* add a new Nexus zone. -> set planner-config --add-zones-with-mupdate-override true -planner config updated: -* add zones with mupdate override: false -> true - - -> blueprint-plan latest latest -INFO performed noop zone image source checks on sled, sled_id: 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c, num_total: 9, num_already_artifact: 0, num_eligible: 0, num_ineligible: 9 -INFO BootPartitionDetails inventory hash not found in TUF repo, ignoring for noop checks, sled_id: 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c, slot: a, expected_hash: 0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a -INFO BootPartitionDetails inventory hash not found in TUF repo, ignoring for noop checks, sled_id: 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c, slot: b, expected_hash: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -INFO current sled measurements are in an unknown state, sled_id: 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c -INFO skipped noop image source check on sled, sled_id: 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6, reason: remove_mupdate_override is set in the blueprint (2d0f6cbc-addc-47a2-962a-6a01e13376bf) -INFO performed noop zone image source checks on sled, sled_id: d81c6a84-79b8-4958-ae41-ea46c9b19763, num_total: 8, num_already_artifact: 0, num_eligible: 0, num_ineligible: 8 -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 BootPartitionDetails inventory hash not found in TUF repo, ignoring for noop checks, sled_id: d81c6a84-79b8-4958-ae41-ea46c9b19763, slot: b, expected_hash: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -INFO current sled measurements are in an unknown state, sled_id: d81c6a84-79b8-4958-ae41-ea46c9b19763 -generated blueprint af934083-59b5-4bf6-8966-6fb5292c29e1 based on parent blueprint 58d5e830-0884-47d8-a7cd-b2b3751adeb4 -blueprint source: planner with report: -planning report: -planner config: - add zones with mupdate override: true - -* zone adds and updates are blocked: - - current target release generation (2) is lower than minimum required by blueprint (3) - - sleds have remove mupdate override set in blueprint: 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6 - - sleds have deployment units with image sources not set to Artifact: - - sled 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c: 9 zones - - sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6: 8 zones - - sled d81c6a84-79b8-4958-ae41-ea46c9b19763: 8 zones - - - sleds have measurements with image sources not set to Artifact: - - sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6 set to install dataset - -* adding zones despite being blocked, because: planner config `add_zones_with_mupdate_override` is true -* discretionary zones placed: - * nexus zone on sled d81c6a84-79b8-4958-ae41-ea46c9b19763 from source install dataset -* zone updates waiting on discretionary zones -* waiting to update top-level nexus_generation: some non-Nexus zone are not yet updated -Measurement updates: -Waiting on zone add/update blockers - - - -> blueprint-diff latest -from: blueprint 58d5e830-0884-47d8-a7cd-b2b3751adeb4 -to: blueprint af934083-59b5-4bf6-8966-6fb5292c29e1 - - MODIFIED SLEDS: - - sled d81c6a84-79b8-4958-ae41-ea46c9b19763 (active, config generation 2 -> 3): - - measurements: - --------------------------- - hash version - --------------------------- - unknown (unknown version) - - - host phase 2 contents: - ------------------------ - slot boot image source - ------------------------ - A current contents - B current contents - - - physical disks: - ------------------------------------------------------------------------------------ - vendor model serial disposition - ------------------------------------------------------------------------------------ - fake-vendor fake-model serial-18b20749-0748-4105-bb10-7b13cfc776e2 in service - fake-vendor fake-model serial-30c16fe4-4229-49d0-ab01-3138f2c7dff2 in service - fake-vendor fake-model serial-4930954e-9ac7-4453-b63f-5ab97c389a99 in service - - - datasets: - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - dataset name dataset id disposition quota reservation compression - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - oxp_18b20749-0748-4105-bb10-7b13cfc776e2/crucible ba9311dd-89ac-47db-a5e8-d64e8a5fcf70 in service none none off - oxp_30c16fe4-4229-49d0-ab01-3138f2c7dff2/crucible 3c2cb304-a466-4ab5-8597-5db8172e2388 in service none none off - oxp_4930954e-9ac7-4453-b63f-5ab97c389a99/crucible 41107868-c6cc-4ec4-9159-aed688c3ceaf in service none none off - oxp_18b20749-0748-4105-bb10-7b13cfc776e2/crypt/external_dns 429da94b-19f7-48bd-98e9-47842863ba7b in service none none off - oxp_18b20749-0748-4105-bb10-7b13cfc776e2/crypt/internal_dns 3443a368-199e-4d26-b59f-3f2bbd507761 in service none none off - oxp_18b20749-0748-4105-bb10-7b13cfc776e2/crypt/zone 45cd9687-20be-4247-b62a-dfdacf324929 in service none none off - oxp_30c16fe4-4229-49d0-ab01-3138f2c7dff2/crypt/zone 252ac39f-b9e2-4697-8c07-3a833115d704 in service none none off - oxp_4930954e-9ac7-4453-b63f-5ab97c389a99/crypt/zone 1cb0a47a-59ac-4892-8e92-cf87b4290f96 in service none none off - oxp_30c16fe4-4229-49d0-ab01-3138f2c7dff2/crypt/zone/oxz_crucible_694bd14f-cb24-4be4-bb19-876e79cda2c8 543fc3b8-08eb-4e5e-9e05-cf7a91732d5d in service none none off - oxp_4930954e-9ac7-4453-b63f-5ab97c389a99/crypt/zone/oxz_crucible_7c252b64-c5af-4ec1-989e-9a03f3b0f111 3d9537b8-05be-4b1b-a051-f47becf8ec75 in service none none off - oxp_18b20749-0748-4105-bb10-7b13cfc776e2/crypt/zone/oxz_crucible_f55647d4-5500-4ad3-893a-df45bd50d622 c895e8d5-1434-4ecf-8d46-9bf1ecc8cbc9 in service none none off - oxp_18b20749-0748-4105-bb10-7b13cfc776e2/crypt/zone/oxz_crucible_pantry_75b220ba-a0f4-4872-8202-dc7c87f062d0 a50cd13a-5749-4e79-bb8b-19229500a8b3 in service none none off - oxp_18b20749-0748-4105-bb10-7b13cfc776e2/crypt/zone/oxz_external_dns_f6ec9c67-946a-4da3-98d5-581f72ce8bf0 6f04dd20-5e2c-4fa8-8430-a886470ed140 in service none none off - oxp_18b20749-0748-4105-bb10-7b13cfc776e2/crypt/zone/oxz_internal_dns_ea5b4030-b52f-44b2-8d70-45f15f987d01 7ea73f80-c4e0-450a-92dc-8397ce2af14f in service none none off - oxp_18b20749-0748-4105-bb10-7b13cfc776e2/crypt/zone/oxz_nexus_3eeb8d49-eb1a-43f8-bb64-c2338421c2c6 50ea8c15-c4c0-4403-a490-d14b3405dfc2 in service none none off - oxp_18b20749-0748-4105-bb10-7b13cfc776e2/crypt/zone/oxz_ntp_f10a4fb9-759f-4a65-b25e-5794ad2d07d8 54bbadaf-ec04-41a2-a62f-f5ac5bf321be in service none none off - oxp_18b20749-0748-4105-bb10-7b13cfc776e2/crypt/debug 7a6a2058-ea78-49de-9730-cce5e28b4cfb in service 100 GiB none gzip-9 - oxp_30c16fe4-4229-49d0-ab01-3138f2c7dff2/crypt/debug 21fd4f3a-ec31-469b-87b1-087c343a2422 in service 100 GiB none gzip-9 - oxp_4930954e-9ac7-4453-b63f-5ab97c389a99/crypt/debug b1deff4b-51df-4a37-9043-afbd7c70a1cb in service 100 GiB none gzip-9 - oxp_18b20749-0748-4105-bb10-7b13cfc776e2/crypt/local_storage 41071985-1dfd-4ce5-8bc2-897161a8bce4 in service none none off - oxp_30c16fe4-4229-49d0-ab01-3138f2c7dff2/crypt/local_storage c65a9c1c-36dc-4ddb-8aac-ec3be8dbb209 in service none none off - oxp_4930954e-9ac7-4453-b63f-5ab97c389a99/crypt/local_storage 090bd88d-0a43-4040-a832-b13ae721f74f in service none none off - oxp_18b20749-0748-4105-bb10-7b13cfc776e2/local_storage_unencrypted e009d8b8-4695-4322-b53f-f03f2744aef7 in service none none off - oxp_30c16fe4-4229-49d0-ab01-3138f2c7dff2/local_storage_unencrypted 4da74a5b-6911-4cca-b624-b90c65530117 in service none none off - oxp_4930954e-9ac7-4453-b63f-5ab97c389a99/local_storage_unencrypted 96ae8389-3027-4260-9374-e0f6ce851de2 in service none none off -+ oxp_30c16fe4-4229-49d0-ab01-3138f2c7dff2/crypt/zone/oxz_nexus_571a8adf-f0b8-458c-8e6c-5a71e82af7ae f26dc500-70ea-445e-9033-e2f494739dfc in service none none off - - - omicron zones: - -------------------------------------------------------------------------------------------------------------- - zone type zone id image source disposition underlay IP - -------------------------------------------------------------------------------------------------------------- - crucible 694bd14f-cb24-4be4-bb19-876e79cda2c8 install dataset in service fd00:1122:3344:103::8 - crucible 7c252b64-c5af-4ec1-989e-9a03f3b0f111 install dataset in service fd00:1122:3344:103::9 - crucible f55647d4-5500-4ad3-893a-df45bd50d622 install dataset in service fd00:1122:3344:103::7 - crucible_pantry 75b220ba-a0f4-4872-8202-dc7c87f062d0 install dataset in service fd00:1122:3344:103::6 - external_dns f6ec9c67-946a-4da3-98d5-581f72ce8bf0 install dataset in service fd00:1122:3344:103::5 - internal_dns ea5b4030-b52f-44b2-8d70-45f15f987d01 install dataset in service fd00:1122:3344:3::1 - internal_ntp f10a4fb9-759f-4a65-b25e-5794ad2d07d8 install dataset in service fd00:1122:3344:103::3 - nexus 3eeb8d49-eb1a-43f8-bb64-c2338421c2c6 install dataset in service fd00:1122:3344:103::4 -+ nexus 571a8adf-f0b8-458c-8e6c-5a71e82af7ae install dataset in service fd00:1122:3344:103::a - - - COCKROACHDB SETTINGS: - state fingerprint::::::::::::::::: (none) (unchanged) - cluster.preserve_downgrade_option: (do not modify) (unchanged) - - METADATA: - internal DNS version::: 1 (unchanged) - external DNS version::: 1 (unchanged) - target release min gen: 3 (unchanged) - nexus gen:::::::::::::: 1 (unchanged) - - OXIMETER SETTINGS: - generation: 1 (unchanged) - read from:: SingleNode (unchanged) - - -internal DNS: -* DNS zone: "control-plane.oxide.internal": -+ name: 571a8adf-f0b8-458c-8e6c-5a71e82af7ae.host (records: 1) -+ AAAA fd00:1122:3344:103::a -* name: _nexus-lockstep._tcp (records: 3 -> 4) -- SRV port 12232 0c71b3b2-6ceb-4e8f-b020-b08675e83038.host.control-plane.oxide.internal -- SRV port 12232 3eeb8d49-eb1a-43f8-bb64-c2338421c2c6.host.control-plane.oxide.internal -- SRV port 12232 466a9f29-62bf-4e63-924a-b9efdb86afec.host.control-plane.oxide.internal -+ SRV port 12232 0c71b3b2-6ceb-4e8f-b020-b08675e83038.host.control-plane.oxide.internal -+ SRV port 12232 3eeb8d49-eb1a-43f8-bb64-c2338421c2c6.host.control-plane.oxide.internal -+ SRV port 12232 466a9f29-62bf-4e63-924a-b9efdb86afec.host.control-plane.oxide.internal -+ SRV port 12232 571a8adf-f0b8-458c-8e6c-5a71e82af7ae.host.control-plane.oxide.internal -* name: _nexus._tcp (records: 3 -> 4) -- SRV port 12221 0c71b3b2-6ceb-4e8f-b020-b08675e83038.host.control-plane.oxide.internal -- SRV port 12221 3eeb8d49-eb1a-43f8-bb64-c2338421c2c6.host.control-plane.oxide.internal -- SRV port 12221 466a9f29-62bf-4e63-924a-b9efdb86afec.host.control-plane.oxide.internal -+ SRV port 12221 0c71b3b2-6ceb-4e8f-b020-b08675e83038.host.control-plane.oxide.internal -+ SRV port 12221 3eeb8d49-eb1a-43f8-bb64-c2338421c2c6.host.control-plane.oxide.internal -+ SRV port 12221 466a9f29-62bf-4e63-924a-b9efdb86afec.host.control-plane.oxide.internal -+ SRV port 12221 571a8adf-f0b8-458c-8e6c-5a71e82af7ae.host.control-plane.oxide.internal - unchanged names: 50 (records: 62) - -external DNS: -* DNS zone: "oxide.example": -* name: example-silo.sys (records: 3 -> 4) -- A 192.0.2.2 -- A 192.0.2.3 -- A 192.0.2.4 -+ A 192.0.2.2 -+ A 192.0.2.3 -+ A 192.0.2.4 -+ A 192.0.2.5 - unchanged names: 4 (records: 6) - - - diff --git a/dev-tools/reconfigurator-cli/tests/output/cmds-example-stdout b/dev-tools/reconfigurator-cli/tests/output/cmds-example-stdout index 7fab3b7fc51..4cc25fbbc5a 100644 --- a/dev-tools/reconfigurator-cli/tests/output/cmds-example-stdout +++ b/dev-tools/reconfigurator-cli/tests/output/cmds-example-stdout @@ -25,7 +25,7 @@ cockroachdb settings: version:::::::::::: (none) preserve downgrade: (not set) planner config: - add zones with mupdate override: false + (no current planner configs) @@ -2319,23 +2319,6 @@ external DNS: -> # Set planner config. -> set planner-config --add-zones-with-mupdate-override false -no changes to planner config: - add zones with mupdate override: false - - -> set planner-config --add-zones-with-mupdate-override true -planner config updated: -* add zones with mupdate override: false -> true - - -> set planner-config --add-zones-with-mupdate-override true -no changes to planner config: - add zones with mupdate override: true - - - > # Sled index out of bounds, will error out. > wipe all - wiped system, reconfigurator-sim config, and RNG state @@ -2346,22 +2329,10 @@ error: setting sled policy: sled index 3 out of range (0..3) > log -@ 1d89a28e (generation 14) +@ 953857be (generation 11) │ - wiped system, reconfigurator-sim config, and RNG state │ - reset seed to test-basic │ -○ 4d8d6725 (generation 13) -│ reconfigurator-cli set: no changes to planner config: -│ add zones with mupdate override: true -│ -○ 860f14d3 (generation 12) -│ reconfigurator-cli set: planner config updated: -│ * add zones with mupdate override: false -> true -│ -○ 953857be (generation 11) -│ reconfigurator-cli set: no changes to planner config: -│ add zones with mupdate override: false -│ ○ 0a37e015 (generation 10) │ reconfigurator-cli blueprint-plan │ @@ -2399,25 +2370,13 @@ error: setting sled policy: sled index 3 out of range (0..3) > log --verbose -@ 1d89a28e-fc1e-4a6c-9ef7-ea21ce7779e5 (generation 14) +@ 953857be-1ce7-453f-b6cc-4e2ff2c0eee2 (generation 11) │ - wiped system, reconfigurator-sim config, and RNG state │ - reset seed to test-basic │ details: │ system: wipe │ config: wipe │ -○ 4d8d6725-1ae3-4f88-b9cb-a34db82d7439 (generation 13) -│ reconfigurator-cli set: no changes to planner config: -│ add zones with mupdate override: true -│ -○ 860f14d3-e719-4fa8-a801-73164bd6463d (generation 12) -│ reconfigurator-cli set: planner config updated: -│ * add zones with mupdate override: false -> true -│ -○ 953857be-1ce7-453f-b6cc-4e2ff2c0eee2 (generation 11) -│ reconfigurator-cli set: no changes to planner config: -│ add zones with mupdate override: false -│ ○ 0a37e015-bb94-4767-a992-54e3848079a6 (generation 10) │ reconfigurator-cli blueprint-plan │ details: @@ -2489,32 +2448,18 @@ error: setting sled policy: sled index 3 out of range (0..3) > # Switch states with a full UUID. -> switch 4d8d6725-1ae3-4f88-b9cb-a34db82d7439 -switched to state 4d8d6725-1ae3-4f88-b9cb-a34db82d7439 (generation 13): reconfigurator-cli set: no changes to planner config: - add zones with mupdate override: true - +> switch 4a3b153b-fc8a-485a-baee-badaad53d2fc +switched to state 4a3b153b-fc8a-485a-baee-badaad53d2fc (generation 9): reconfigurator-cli load-example > log -○ 1d89a28e (generation 14) +○ 953857be (generation 11) │ - wiped system, reconfigurator-sim config, and RNG state │ - reset seed to test-basic │ -@ 4d8d6725 (generation 13) -│ reconfigurator-cli set: no changes to planner config: -│ add zones with mupdate override: true -│ -○ 860f14d3 (generation 12) -│ reconfigurator-cli set: planner config updated: -│ * add zones with mupdate override: false -> true -│ -○ 953857be (generation 11) -│ reconfigurator-cli set: no changes to planner config: -│ add zones with mupdate override: false -│ ○ 0a37e015 (generation 10) │ reconfigurator-cli blueprint-plan │ -○ 4a3b153b (generation 9) +@ 4a3b153b (generation 9) │ reconfigurator-cli load-example │ ○ 2f40b35e (generation 8) @@ -2549,29 +2494,15 @@ switched to state 4d8d6725-1ae3-4f88-b9cb-a34db82d7439 (generation 13): reconfig > # Switch states with a unique prefix. -> switch 860f -switched to state 860f14d3-e719-4fa8-a801-73164bd6463d (generation 12): reconfigurator-cli set: planner config updated: -* add zones with mupdate override: false -> true - +> switch 0a3 +switched to state 0a37e015-bb94-4767-a992-54e3848079a6 (generation 10): reconfigurator-cli blueprint-plan > log -○ 1d89a28e (generation 14) +○ 953857be (generation 11) │ - wiped system, reconfigurator-sim config, and RNG state │ - reset seed to test-basic │ -○ 4d8d6725 (generation 13) -│ reconfigurator-cli set: no changes to planner config: -│ add zones with mupdate override: true -│ -@ 860f14d3 (generation 12) -│ reconfigurator-cli set: planner config updated: -│ * add zones with mupdate override: false -> true -│ -○ 953857be (generation 11) -│ reconfigurator-cli set: no changes to planner config: -│ add zones with mupdate override: false -│ -○ 0a37e015 (generation 10) +@ 0a37e015 (generation 10) │ reconfigurator-cli blueprint-plan │ ○ 4a3b153b (generation 9) @@ -2609,13 +2540,13 @@ switched to state 860f14d3-e719-4fa8-a801-73164bd6463d (generation 12): reconfig > # Switch states with an ambiguous prefix (should fail). -> switch 4 -error: prefix '4' is ambiguous: matches 2 states - - 4a3b153b-fc8a-485a-baee-badaad53d2fc generation 9: +> switch 2 +error: prefix '2' is ambiguous: matches 2 states + - 2d296288-6fbc-4acb-8669-97fb8f38e5b7 generation 6: reconfigurator-cli load-example - - 4d8d6725-1ae3-4f88-b9cb-a34db82d7439 generation 13: - reconfigurator-cli set: no changes to planner config: - add zones with mupdate override: true + - 2f40b35e-54e0-4c08-bf62-cd2315fffd1e generation 8: + - wiped system, reconfigurator-sim config, and RNG state + - reset seed to test-basic @@ -2633,45 +2564,31 @@ added sled 99cff2b9-4293-4a1f-bd94-f1ca9ae0dba0 (serial: serial4) > # Make an additional branch based on the previous branch. -> switch 4d8d6725 -switched to state 4d8d6725-1ae3-4f88-b9cb-a34db82d7439 (generation 13): reconfigurator-cli set: no changes to planner config: - add zones with mupdate override: true - +> switch 860f +switched to state 860f14d3-e719-4fa8-a801-73164bd6463d (generation 11): reconfigurator-cli sled-add: 9b8b43e1-5ce7-4094-87b1-0be0416174a4 (serial: serial3) > sled-add -added sled 9b8b43e1-5ce7-4094-87b1-0be0416174a4 (serial: serial3) +added sled 99cff2b9-4293-4a1f-bd94-f1ca9ae0dba0 (serial: serial4) > # Go back to the previous branch. -> switch 5c53cf4b -switched to state 5c53cf4b-26c3-4437-87e1-459fc8f152fe (generation 14): reconfigurator-cli sled-add: 99cff2b9-4293-4a1f-bd94-f1ca9ae0dba0 (serial: serial4) +> switch 4d8d6725 +switched to state 4d8d6725-1ae3-4f88-b9cb-a34db82d7439 (generation 12): reconfigurator-cli sled-add: 99cff2b9-4293-4a1f-bd94-f1ca9ae0dba0 (serial: serial4) > log -@ 5c53cf4b (generation 14) +@ 4d8d6725 (generation 12) │ reconfigurator-cli sled-add: 99cff2b9-4293-4a1f-bd94-f1ca9ae0dba0 (serial: serial4) │ -○ afbfc525 (generation 13) -│ reconfigurator-cli sled-add: 9b8b43e1-5ce7-4094-87b1-0be0416174a4 (serial: serial3) +│ ○ 1d89a28e (generation 12) +├─╯ reconfigurator-cli sled-add: 99cff2b9-4293-4a1f-bd94-f1ca9ae0dba0 (serial: serial4) │ -│ ○ 1d89a28e (generation 14) -│ │ - wiped system, reconfigurator-sim config, and RNG state -│ │ - reset seed to test-basic -│ │ -│ │ ○ 810c9381 (generation 14) -│ ├─╯ reconfigurator-cli sled-add: 9b8b43e1-5ce7-4094-87b1-0be0416174a4 (serial: serial3) -│ │ -│ ○ 4d8d6725 (generation 13) -├─╯ reconfigurator-cli set: no changes to planner config: -│ add zones with mupdate override: true -│ -○ 860f14d3 (generation 12) -│ reconfigurator-cli set: planner config updated: -│ * add zones with mupdate override: false -> true +○ 860f14d3 (generation 11) +│ reconfigurator-cli sled-add: 9b8b43e1-5ce7-4094-87b1-0be0416174a4 (serial: serial3) │ -○ 953857be (generation 11) -│ reconfigurator-cli set: no changes to planner config: -│ add zones with mupdate override: false +│ ○ 953857be (generation 11) +├─╯ - wiped system, reconfigurator-sim config, and RNG state +│ - reset seed to test-basic │ ○ 0a37e015 (generation 10) │ reconfigurator-cli blueprint-plan @@ -2710,39 +2627,27 @@ switched to state 5c53cf4b-26c3-4437-87e1-459fc8f152fe (generation 14): reconfig > log --verbose -@ 5c53cf4b-26c3-4437-87e1-459fc8f152fe (generation 14) +@ 4d8d6725-1ae3-4f88-b9cb-a34db82d7439 (generation 12) │ reconfigurator-cli sled-add: 99cff2b9-4293-4a1f-bd94-f1ca9ae0dba0 (serial: serial4) │ details: │ rng: next sled id: 99cff2b9-4293-4a1f-bd94-f1ca9ae0dba0 │ -○ afbfc525-c81c-4923-adf6-c75f60b6f590 (generation 13) +│ ○ 1d89a28e-fc1e-4a6c-9ef7-ea21ce7779e5 (generation 12) +├─╯ reconfigurator-cli sled-add: 99cff2b9-4293-4a1f-bd94-f1ca9ae0dba0 (serial: serial4) +│ details: +│ rng: next sled id: 99cff2b9-4293-4a1f-bd94-f1ca9ae0dba0 +│ +○ 860f14d3-e719-4fa8-a801-73164bd6463d (generation 11) │ reconfigurator-cli sled-add: 9b8b43e1-5ce7-4094-87b1-0be0416174a4 (serial: serial3) │ details: │ rng: next sled id: 9b8b43e1-5ce7-4094-87b1-0be0416174a4 │ -│ ○ 1d89a28e-fc1e-4a6c-9ef7-ea21ce7779e5 (generation 14) -│ │ - wiped system, reconfigurator-sim config, and RNG state -│ │ - reset seed to test-basic -│ │ details: -│ │ system: wipe -│ │ config: wipe -│ │ -│ │ ○ 810c9381-92f1-43b9-9660-e935c34459e5 (generation 14) -│ ├─╯ reconfigurator-cli sled-add: 9b8b43e1-5ce7-4094-87b1-0be0416174a4 (serial: serial3) -│ │ details: -│ │ rng: next sled id: 9b8b43e1-5ce7-4094-87b1-0be0416174a4 -│ │ -│ ○ 4d8d6725-1ae3-4f88-b9cb-a34db82d7439 (generation 13) -├─╯ reconfigurator-cli set: no changes to planner config: -│ add zones with mupdate override: true -│ -○ 860f14d3-e719-4fa8-a801-73164bd6463d (generation 12) -│ reconfigurator-cli set: planner config updated: -│ * add zones with mupdate override: false -> true -│ -○ 953857be-1ce7-453f-b6cc-4e2ff2c0eee2 (generation 11) -│ reconfigurator-cli set: no changes to planner config: -│ add zones with mupdate override: false +│ ○ 953857be-1ce7-453f-b6cc-4e2ff2c0eee2 (generation 11) +├─╯ - wiped system, reconfigurator-sim config, and RNG state +│ - reset seed to test-basic +│ details: +│ system: wipe +│ config: wipe │ ○ 0a37e015-bb94-4767-a992-54e3848079a6 (generation 10) │ reconfigurator-cli blueprint-plan diff --git a/dev-tools/reconfigurator-cli/tests/output/cmds-expunge-newly-added-external-dns-stdout b/dev-tools/reconfigurator-cli/tests/output/cmds-expunge-newly-added-external-dns-stdout index a8e031015ec..fc9f9e3592e 100644 --- a/dev-tools/reconfigurator-cli/tests/output/cmds-expunge-newly-added-external-dns-stdout +++ b/dev-tools/reconfigurator-cli/tests/output/cmds-expunge-newly-added-external-dns-stdout @@ -1053,30 +1053,19 @@ blueprint source: edited directly with reconfigurator-cli -> # Set the add_zones_with_mupdate_override planner config to ensure that zone -> # adds happen despite zone image sources not being Artifact. -> set planner-config --add-zones-with-mupdate-override true -planner config updated: -* add zones with mupdate override: false -> true - - - > # blueprint-plan will place a new external DNS zone, diff DNS to see the new zone has `ns` and NS records. > blueprint-plan 366b0b68-d80e-4bc1-abd3-dc69837847e0 INFO skipping noop image source check for all sleds, reason: no target release is currently set generated blueprint 9c998c1d-1a7b-440a-ae0c-40f781dea6e2 based on parent blueprint 366b0b68-d80e-4bc1-abd3-dc69837847e0 blueprint source: planner with report: planning report: -planner config: - add zones with mupdate override: true - * zone adds and updates are blocked: - sleds have deployment units with image sources not set to Artifact: - sled 711ac7f8-d19e-4572-bdb9-e9b50f6e362a: 15 zones - sled 9dc50690-f9bf-4520-bf80-051d0f465c2c: 15 zones - sled a88790de-5962-4871-8686-61c1fd5b7094: 15 zones -* adding zones despite being blocked, because: planner config `add_zones_with_mupdate_override` is true, target release generation is 1 +* adding zones despite being blocked, because: target release generation is 1 * discretionary zones placed: * external_dns zone on sled 711ac7f8-d19e-4572-bdb9-e9b50f6e362a from source install dataset * zone updates waiting on discretionary zones @@ -1699,16 +1688,13 @@ parent: 366b0b68-d80e-4bc1-abd3-dc69837847e0 blueprint source: planner with report: planning report: -planner config: - add zones with mupdate override: true - * zone adds and updates are blocked: - sleds have deployment units with image sources not set to Artifact: - sled 711ac7f8-d19e-4572-bdb9-e9b50f6e362a: 15 zones - sled 9dc50690-f9bf-4520-bf80-051d0f465c2c: 15 zones - sled a88790de-5962-4871-8686-61c1fd5b7094: 15 zones -* adding zones despite being blocked, because: planner config `add_zones_with_mupdate_override` is true, target release generation is 1 +* adding zones despite being blocked, because: target release generation is 1 * discretionary zones placed: * external_dns zone on sled 711ac7f8-d19e-4572-bdb9-e9b50f6e362a from source install dataset * zone updates waiting on discretionary zones diff --git a/dev-tools/reconfigurator-cli/tests/output/cmds-mupdate-update-flow-stdout b/dev-tools/reconfigurator-cli/tests/output/cmds-mupdate-update-flow-stdout index 2adda2263ec..0541f57d371 100644 --- a/dev-tools/reconfigurator-cli/tests/output/cmds-mupdate-update-flow-stdout +++ b/dev-tools/reconfigurator-cli/tests/output/cmds-mupdate-update-flow-stdout @@ -3253,14 +3253,13 @@ external DNS: -> # Test that the add-zones-with-mupdate-override planner config works as -> # expected. We do this by: +> # Test that adding a new sled while a mupdate override is active does not +> # cause the planner to add new zones to it. We do this by: > # * setting the mupdate override on a sled > # * adding a new sled > # -> # With the option disabled (the current state), the planner will -> # not proceed with adding new zones. But with the option enabled, -> # new zones will be added. +> # The planner will not proceed with adding new zones while any sled has an +> # active mupdate override. > # Apply the blueprint edits to sled 0. This also lets the planner see > # that the internal_dns zone is expunged, setting up a replacement @@ -3279,7 +3278,7 @@ generated inventory collection 005f6a30-7f65-4593-9f78-ee68f766f42b from configu > # This will *not* generate the datasets and internal NTP zone on the new -> # sled. +> # sled, because zone adds are blocked while a mupdate override is present. > blueprint-plan latest latest INFO blueprint mupdate override updated to match inventory, phase: do_plan_mupdate_override, sled_id: 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6, new_bp_override: c8fba912-63ae-473a-9115-0495d10fb3bc, prev_bp_override: None, zones: - zone 0c71b3b2-6ceb-4e8f-b020-b08675e83038 (Nexus) updated from artifact: version 1.0.0 to install dataset @@ -3439,276 +3438,16 @@ external DNS: -> # This *will* generate the datasets and internal NTP zone on the new sled. -> set planner-config --add-zones-with-mupdate-override true -planner config updated: -* add zones with mupdate override: false -> true - - -> blueprint-plan latest latest -INFO skipped noop image source check on sled, sled_id: 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c, reason: inventory stale: inventory reported generation (6) that is older than the generation in the parent blueprint (7) -INFO skipped noop image source check on sled, sled_id: 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6, reason: inventory stale: inventory reported generation (9) that is older than the generation in the parent blueprint (10) -INFO performed noop zone image source checks on sled, sled_id: c3bc4c6d-fdde-4fc4-8493-89d2a1e5ee6b, num_total: 0, num_already_artifact: 0, num_eligible: 0, num_ineligible: 0 -INFO BootPartitionDetails inventory hash not found in TUF repo, ignoring for noop checks, sled_id: c3bc4c6d-fdde-4fc4-8493-89d2a1e5ee6b, slot: a, expected_hash: 0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a -INFO BootPartitionDetails inventory hash not found in TUF repo, ignoring for noop checks, sled_id: c3bc4c6d-fdde-4fc4-8493-89d2a1e5ee6b, slot: b, expected_hash: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b -INFO current sled measurements are in an unknown state, sled_id: c3bc4c6d-fdde-4fc4-8493-89d2a1e5ee6b -INFO skipped noop image source check on sled, sled_id: d81c6a84-79b8-4958-ae41-ea46c9b19763, reason: inventory stale: inventory reported generation (7) that is older than the generation in the parent blueprint (8) -INFO altered physical disks, sled_id: c3bc4c6d-fdde-4fc4-8493-89d2a1e5ee6b, sled_edits: SledEditCounts { disks: EditCounts { added: 10, updated: 0, expunged: 0, removed: 0 }, datasets: EditCounts { added: 40, updated: 0, expunged: 0, removed: 0 }, zones: EditCounts { added: 0, updated: 0, expunged: 0, removed: 0 }, measurements: EditCounts { added: 0, updated: 0, expunged: 0, removed: 0 } } -generated blueprint 9a9e6c32-5a84-4020-a159-33dceff18d35 based on parent blueprint 9f89efdf-a23e-4137-b7cc-79f4a91cbe1f -blueprint source: planner with report: -planning report: -planner config: - add zones with mupdate override: true - -* zone adds and updates are blocked: - - current target release generation (4) is lower than minimum required by blueprint (5) - - sleds have remove mupdate override set in blueprint: 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6 - - sleds have deployment units with image sources not set to Artifact: - - sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6: 5 zones - - - sleds have measurements with image sources not set to Artifact: - - sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6 set to install dataset - -* adding zones despite being blocked, because: planner config `add_zones_with_mupdate_override` is true -* discretionary zone placement waiting for NTP zones on sleds: c3bc4c6d-fdde-4fc4-8493-89d2a1e5ee6b -* missing NTP zone on sled c3bc4c6d-fdde-4fc4-8493-89d2a1e5ee6b -* only placed 0/1 desired nexus zones -* discretionary zones placed: - * internal_dns zone on sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6 from source artifact: version 2.0.0 -* zone updates waiting on discretionary zones -* waiting to update top-level nexus_generation: some non-Nexus zone are not yet updated -Measurement updates: -Waiting on zone add/update blockers - - - -> # TODO: This blippy run produces two FATAL notes, due to, respectively: -> # -> # * https://github.com/oxidecomputer/omicron/issues/10420 -> # * https://github.com/oxidecomputer/omicron/pull/10363 -> blueprint-blippy latest -blippy report for blueprint 9a9e6c32-5a84-4020-a159-33dceff18d35: 2 notes - FATAL note: sled 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c: Nexus zones 466a9f29-62bf-4e63-924a-b9efdb86afec and 0c71b3b2-6ceb-4e8f-b020-b08675e83038 both have generation 1 but different image sources (Artifact { version: Available { version: ArtifactVersion("2.0.0") }, hash: ArtifactHash("e9b7035f41848a987a798c15ac424cc91dd662b1af0920d58d8aa1ebad7467b6") } vs InstallDataset) - FATAL note: sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6: sled has remove_mupdate_override set (c8fba912-63ae-473a-9115-0495d10fb3bc), but zone cfc72ddd-fd83-4396-b1ad-d53f69182a09 image source is set to Artifact (version version 2.0.0, hash de30657a72b066b8ef1f56351a0a5d4d7000da0a62c4be9b2e949a107ca8a389) - - -> blueprint-diff latest -from: blueprint 9f89efdf-a23e-4137-b7cc-79f4a91cbe1f -to: blueprint 9a9e6c32-5a84-4020-a159-33dceff18d35 - - MODIFIED SLEDS: - - sled 98e6b7c2-2efa-41ca-b20a-0a4d61102fe6 (active, config generation 10 -> 11): - will remove mupdate override: c8fba912-63ae-473a-9115-0495d10fb3bc (unchanged) - - measurements: - ------------------------------ - hash version - ------------------------------ - install dataset (no version) - - - host phase 2 contents: - ------------------------ - slot boot image source - ------------------------ - A current contents - B current contents - - - physical disks: - ------------------------------------------------------------------------------------ - vendor model serial disposition - ------------------------------------------------------------------------------------ - fake-vendor fake-model serial-c6d33b64-fb96-4129-bab1-7878a06a5f9b in service - - - datasets: - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - dataset name dataset id disposition quota reservation compression - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crucible 42430c80-7836-4191-a4f6-bcee749010fe in service none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/external_dns ad41be71-6c15-4428-b510-20ceacde4fa6 in service none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/internal_dns a4c3032e-21fa-4d4a-b040-a7e3c572cf3c expunged none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/zone 4617d206-4330-4dfa-b9f3-f63a3db834f9 in service none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/zone/oxz_crucible_5199c033-4cf9-4ab6-8ae7-566bd7606363 4847a96e-a267-4ae7-aa3d-805c1e77f81e in service none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/zone/oxz_crucible_pantry_ba4994a8-23f9-4b1a-a84f-a08d74591389 43931274-7fe8-4077-825d-dff2bc8efa58 in service none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/zone/oxz_external_dns_803bfb63-c246-41db-b0da-d3b87ddfc63d 1bca7f71-5e42-4749-91ec-fa40793a3a9a in service none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/zone/oxz_internal_dns_427ec88f-f467-42fa-9bbb-66a91a36103c 3ac089c9-9dec-465b-863a-188e80d71fb4 expunged none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/zone/oxz_nexus_0c71b3b2-6ceb-4e8f-b020-b08675e83038 4f60b534-eaa3-40a1-b60f-bfdf147af478 in service none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/zone/oxz_ntp_6444f8a5-6465-4f0b-a549-1993c113569c 686c19cf-a0d7-45f6-866f-c564612b2664 in service none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/debug 248c6c10-1ac6-45de-bb55-ede36ca56bbd in service 100 GiB none gzip-9 - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/local_storage cdf3684f-a6cf-4449-b9ec-e696b2c663e2 in service none none off - oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/local_storage_unencrypted 793ac181-1b01-403c-850d-7f5c54bda6c9 in service none none off -+ oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/internal_dns b8ba4bea-893b-42e9-a034-c7283d15c2b7 in service none none off -+ oxp_c6d33b64-fb96-4129-bab1-7878a06a5f9b/crypt/zone/oxz_internal_dns_cfc72ddd-fd83-4396-b1ad-d53f69182a09 64c1c086-6866-4a94-b9bf-1d022312d587 in service none none off - - - omicron zones: - ----------------------------------------------------------------------------------------------------------------------- - zone type zone id image source disposition underlay IP - ----------------------------------------------------------------------------------------------------------------------- - crucible 5199c033-4cf9-4ab6-8ae7-566bd7606363 install dataset in service fd00:1122:3344:101::7 - crucible_pantry ba4994a8-23f9-4b1a-a84f-a08d74591389 install dataset in service fd00:1122:3344:101::6 - external_dns 803bfb63-c246-41db-b0da-d3b87ddfc63d install dataset in service fd00:1122:3344:101::5 - internal_dns 427ec88f-f467-42fa-9bbb-66a91a36103c artifact: version 1.0.0 expunged ✓ fd00:1122:3344:2::1 - internal_ntp 6444f8a5-6465-4f0b-a549-1993c113569c install dataset in service fd00:1122:3344:101::3 - nexus 0c71b3b2-6ceb-4e8f-b020-b08675e83038 install dataset in service fd00:1122:3344:101::4 -+ internal_dns cfc72ddd-fd83-4396-b1ad-d53f69182a09 artifact: version 2.0.0 in service fd00:1122:3344:2::1 - - - sled c3bc4c6d-fdde-4fc4-8493-89d2a1e5ee6b (active, config generation 1 -> 2): - - measurements: - --------------------------- - hash version - --------------------------- - unknown (unknown version) - - - host phase 2 contents: - ------------------------ - slot boot image source - ------------------------ - A current contents - B current contents - - - physical disks: - ------------------------------------------------------------------------------------ - vendor model serial disposition - ------------------------------------------------------------------------------------ -+ fake-vendor fake-model serial-1a2d5932-ca5b-44b8-a0a4-31215d934293 in service -+ fake-vendor fake-model serial-2454c824-3b2b-4350-a5c7-ce9b1ff5a903 in service -+ fake-vendor fake-model serial-5369d002-dd19-48f2-8c08-ba063cb1e010 in service -+ fake-vendor fake-model serial-5e25e3a5-d115-4df0-a54b-81f29fbb9d61 in service -+ fake-vendor fake-model serial-6082ad32-e210-4786-9656-4b6bfcec5d05 in service -+ fake-vendor fake-model serial-88659529-1c87-4107-8227-c9276a330bf5 in service -+ fake-vendor fake-model serial-9cde7847-ff58-41af-95bf-aecebc3f1344 in service -+ fake-vendor fake-model serial-9e9ca75a-6a79-4706-bcce-35714d79913c in service -+ fake-vendor fake-model serial-d8c90412-fbdb-480d-8a07-c3de73b441bc in service -+ fake-vendor fake-model serial-f3052185-bebb-4e75-842b-d8125b70bb8a in service - - - datasets: - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - dataset name dataset id disposition quota reservation compression - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -+ oxp_1a2d5932-ca5b-44b8-a0a4-31215d934293/crypt/zone 5b45f9cf-cfb5-4ab5-a1c5-c32409b9055c in service none none off -+ oxp_2454c824-3b2b-4350-a5c7-ce9b1ff5a903/crypt/zone 5521d6e5-f3d6-4743-9b86-acd9febe0b47 in service none none off -+ oxp_5369d002-dd19-48f2-8c08-ba063cb1e010/crypt/zone 41bae319-97f7-458e-8b7d-94bbeb457279 in service none none off -+ oxp_5e25e3a5-d115-4df0-a54b-81f29fbb9d61/crypt/zone a50abc4d-ae17-4076-a35a-e3481fff8319 in service none none off -+ oxp_6082ad32-e210-4786-9656-4b6bfcec5d05/crypt/zone 4753a210-ce06-41ae-97a7-5690ed7e41b4 in service none none off -+ oxp_88659529-1c87-4107-8227-c9276a330bf5/crypt/zone 7bd6dfc3-8be9-4673-8db5-52b7f4945aa9 in service none none off -+ oxp_9cde7847-ff58-41af-95bf-aecebc3f1344/crypt/zone fbb5214b-39eb-4de4-9974-c5300c9fb47c in service none none off -+ oxp_9e9ca75a-6a79-4706-bcce-35714d79913c/crypt/zone 230cb67d-f35b-4b5d-8bd7-f75236f13cfc in service none none off -+ oxp_d8c90412-fbdb-480d-8a07-c3de73b441bc/crypt/zone 65b911da-ee99-4127-989c-dfc3ab80e154 in service none none off -+ oxp_f3052185-bebb-4e75-842b-d8125b70bb8a/crypt/zone c0d09d31-413c-4cc5-ab37-60c14de6cb6e in service none none off -+ oxp_1a2d5932-ca5b-44b8-a0a4-31215d934293/crypt/zone/oxz_ntp_cee5d0c6-412c-49e9-a9a8-dab9addaa182 0b31c2d5-a0d1-4726-be23-ddc116a67d4f in service none none off -+ oxp_1a2d5932-ca5b-44b8-a0a4-31215d934293/crypt/debug a775b06e-d41a-4999-921d-92382de5b104 in service 100 GiB none gzip-9 -+ oxp_2454c824-3b2b-4350-a5c7-ce9b1ff5a903/crypt/debug 361810ea-a221-4889-afff-c3c39800148e in service 100 GiB none gzip-9 -+ oxp_5369d002-dd19-48f2-8c08-ba063cb1e010/crypt/debug 1c2df152-b15a-4581-b577-59c1191bffcd in service 100 GiB none gzip-9 -+ oxp_5e25e3a5-d115-4df0-a54b-81f29fbb9d61/crypt/debug 127a5d0a-e1f2-45be-9e02-d237943bd572 in service 100 GiB none gzip-9 -+ oxp_6082ad32-e210-4786-9656-4b6bfcec5d05/crypt/debug b0c66ed8-0814-4fdf-bf98-3134e6b4f835 in service 100 GiB none gzip-9 -+ oxp_88659529-1c87-4107-8227-c9276a330bf5/crypt/debug 6e688437-1dd2-4fa6-8ae5-27d03b9facc7 in service 100 GiB none gzip-9 -+ oxp_9cde7847-ff58-41af-95bf-aecebc3f1344/crypt/debug 9c8fc544-ecd4-4665-ba59-e725dd6f8c3e in service 100 GiB none gzip-9 -+ oxp_9e9ca75a-6a79-4706-bcce-35714d79913c/crypt/debug 6706d44a-ee83-47e2-8170-6f074d8e8db1 in service 100 GiB none gzip-9 -+ oxp_d8c90412-fbdb-480d-8a07-c3de73b441bc/crypt/debug 43d2e2ce-cd50-426e-a775-a2dd70266686 in service 100 GiB none gzip-9 -+ oxp_f3052185-bebb-4e75-842b-d8125b70bb8a/crypt/debug 092f2d0d-a3ba-4dcb-8ddb-f03245d6f6fb in service 100 GiB none gzip-9 -+ oxp_1a2d5932-ca5b-44b8-a0a4-31215d934293/crypt/local_storage a5761160-87b2-4f6e-8f9b-534bbb6e5b90 in service none none off -+ oxp_2454c824-3b2b-4350-a5c7-ce9b1ff5a903/crypt/local_storage b95b9b99-4499-4bd8-9d63-689c4f3e5643 in service none none off -+ oxp_5369d002-dd19-48f2-8c08-ba063cb1e010/crypt/local_storage 23815e89-3785-4e91-8211-0047004d0d73 in service none none off -+ oxp_5e25e3a5-d115-4df0-a54b-81f29fbb9d61/crypt/local_storage 92a3c4c9-a8f1-46c2-97d0-3ee013ce8e63 in service none none off -+ oxp_6082ad32-e210-4786-9656-4b6bfcec5d05/crypt/local_storage ede50fed-90a2-40c3-a2b3-368c5a94a868 in service none none off -+ oxp_88659529-1c87-4107-8227-c9276a330bf5/crypt/local_storage bba3293c-ac9c-4274-9964-714bb54500be in service none none off -+ oxp_9cde7847-ff58-41af-95bf-aecebc3f1344/crypt/local_storage 92385d71-5fd5-451c-a875-94d97f4c0480 in service none none off -+ oxp_9e9ca75a-6a79-4706-bcce-35714d79913c/crypt/local_storage d62c8cfb-65c3-4a02-8b8d-fc57ca4b3be9 in service none none off -+ oxp_d8c90412-fbdb-480d-8a07-c3de73b441bc/crypt/local_storage c8073218-d25b-423c-a654-0698f9d9d250 in service none none off -+ oxp_f3052185-bebb-4e75-842b-d8125b70bb8a/crypt/local_storage 42e4993f-3d92-44c5-a219-3f9d88ad5d46 in service none none off -+ oxp_1a2d5932-ca5b-44b8-a0a4-31215d934293/local_storage_unencrypted 45b0ac9f-5e52-4da4-9521-4bab8c42c748 in service none none off -+ oxp_2454c824-3b2b-4350-a5c7-ce9b1ff5a903/local_storage_unencrypted 98acd8fb-856c-4a22-b359-1acefb507d67 in service none none off -+ oxp_5369d002-dd19-48f2-8c08-ba063cb1e010/local_storage_unencrypted dbe8d2c2-5618-4234-ad17-d749808e2881 in service none none off -+ oxp_5e25e3a5-d115-4df0-a54b-81f29fbb9d61/local_storage_unencrypted b1fc1b85-a6b8-407c-afdd-7d2f16349241 in service none none off -+ oxp_6082ad32-e210-4786-9656-4b6bfcec5d05/local_storage_unencrypted bc4a82c1-b64e-484d-be6a-e62a61f8c575 in service none none off -+ oxp_88659529-1c87-4107-8227-c9276a330bf5/local_storage_unencrypted 1f7dfe5c-5043-4659-bb90-d026db043584 in service none none off -+ oxp_9cde7847-ff58-41af-95bf-aecebc3f1344/local_storage_unencrypted 0eaab3fb-e88f-4c3f-9dc0-57193e309336 in service none none off -+ oxp_9e9ca75a-6a79-4706-bcce-35714d79913c/local_storage_unencrypted 12a05e0d-0d26-484d-a16a-518ef1efb48d in service none none off -+ oxp_d8c90412-fbdb-480d-8a07-c3de73b441bc/local_storage_unencrypted 009e3f26-b45c-4a98-b772-46f2150e047d in service none none off -+ oxp_f3052185-bebb-4e75-842b-d8125b70bb8a/local_storage_unencrypted ff1a3e79-11ce-4c22-bbc6-ab62776727d0 in service none none off - - - omicron zones: - ------------------------------------------------------------------------------------------------------------------- - zone type zone id image source disposition underlay IP - ------------------------------------------------------------------------------------------------------------------- -+ internal_ntp cee5d0c6-412c-49e9-a9a8-dab9addaa182 artifact: version 2.0.0 in service fd00:1122:3344:104::3 - - - COCKROACHDB SETTINGS: - state fingerprint::::::::::::::::: (none) (unchanged) - cluster.preserve_downgrade_option: (do not modify) (unchanged) - - METADATA: - internal DNS version::: 1 (unchanged) - external DNS version::: 1 (unchanged) - target release min gen: 5 (unchanged) - nexus gen:::::::::::::: 1 (unchanged) - - OXIMETER SETTINGS: - generation: 1 (unchanged) - read from:: SingleNode (unchanged) - - -internal DNS: -* DNS zone: "control-plane.oxide.internal": -* name: @ (records: 2 -> 3) -- NS ns1.control-plane.oxide.internal -- NS ns2.control-plane.oxide.internal -+ NS ns1.control-plane.oxide.internal -+ NS ns2.control-plane.oxide.internal -+ NS ns3.control-plane.oxide.internal -* name: _internal-ntp._tcp (records: 3 -> 4) -- SRV port 123 62620961-fc4a-481e-968b-f5acbac0dc63.host.control-plane.oxide.internal -- SRV port 123 6444f8a5-6465-4f0b-a549-1993c113569c.host.control-plane.oxide.internal -- SRV port 123 f10a4fb9-759f-4a65-b25e-5794ad2d07d8.host.control-plane.oxide.internal -+ SRV port 123 62620961-fc4a-481e-968b-f5acbac0dc63.host.control-plane.oxide.internal -+ SRV port 123 6444f8a5-6465-4f0b-a549-1993c113569c.host.control-plane.oxide.internal -+ SRV port 123 cee5d0c6-412c-49e9-a9a8-dab9addaa182.host.control-plane.oxide.internal -+ SRV port 123 f10a4fb9-759f-4a65-b25e-5794ad2d07d8.host.control-plane.oxide.internal -* name: _nameservice._tcp (records: 2 -> 3) -- SRV port 5353 99e2f30b-3174-40bf-a78a-90da8abba8ca.host.control-plane.oxide.internal -- SRV port 5353 ea5b4030-b52f-44b2-8d70-45f15f987d01.host.control-plane.oxide.internal -+ SRV port 5353 99e2f30b-3174-40bf-a78a-90da8abba8ca.host.control-plane.oxide.internal -+ SRV port 5353 cfc72ddd-fd83-4396-b1ad-d53f69182a09.host.control-plane.oxide.internal -+ SRV port 5353 ea5b4030-b52f-44b2-8d70-45f15f987d01.host.control-plane.oxide.internal -+ name: cee5d0c6-412c-49e9-a9a8-dab9addaa182.host (records: 1) -+ AAAA fd00:1122:3344:104::3 -+ name: cfc72ddd-fd83-4396-b1ad-d53f69182a09.host (records: 1) -+ AAAA fd00:1122:3344:2::1 -* name: ns2 (records: 1 -> 1) -- AAAA fd00:1122:3344:3::1 -+ AAAA fd00:1122:3344:2::1 -+ name: ns3 (records: 1) -+ AAAA fd00:1122:3344:3::1 - unchanged names: 35 (records: 46) - -external DNS: - DNS zone: "oxide.example" (unchanged) - unchanged names: 5 (records: 9) - - - - > # Set the target release minimum generation to a large value -- we're going to > # test that the planner bails if it attempts a rollback of the target release > # minimum generation. > blueprint-edit latest set-target-release-min-gen 1000 -blueprint 13cfdd24-52ba-4e94-8c83-02e3a48fc746 created from latest blueprint (9a9e6c32-5a84-4020-a159-33dceff18d35): set target release minimum generation to 1000 +blueprint 9a9e6c32-5a84-4020-a159-33dceff18d35 created from latest blueprint (9f89efdf-a23e-4137-b7cc-79f4a91cbe1f): set target release minimum generation to 1000 > # Apply this config to sled 1 before the new MUPdate below. > sled-set serial1 omicron-config latest -set sled 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c omicron config from latest blueprint (13cfdd24-52ba-4e94-8c83-02e3a48fc746) +set sled 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c omicron config from latest blueprint (9a9e6c32-5a84-4020-a159-33dceff18d35) > sled-set serial1 mupdate-override cc724abe-80c1-47e6-9771-19e6540531a9 set sled 2b8f0cb3-0295-4b3c-bc58-4fe88b57112c mupdate override: unset -> cc724abe-80c1-47e6-9771-19e6540531a9 diff --git a/dev-tools/reconfigurator-cli/tests/output/cmds-nexus-generation-autobump-stdout b/dev-tools/reconfigurator-cli/tests/output/cmds-nexus-generation-autobump-stdout index 966dcb7bba3..0db220ddb72 100644 --- a/dev-tools/reconfigurator-cli/tests/output/cmds-nexus-generation-autobump-stdout +++ b/dev-tools/reconfigurator-cli/tests/output/cmds-nexus-generation-autobump-stdout @@ -22,7 +22,7 @@ cockroachdb settings: version:::::::::::: (none) preserve downgrade: (not set) planner config: - add zones with mupdate override: false + (no current planner configs) diff --git a/dev-tools/reconfigurator-cli/tests/output/cmds-nexus-generation-stdout b/dev-tools/reconfigurator-cli/tests/output/cmds-nexus-generation-stdout index 4391974fbfc..283c0880eb4 100644 --- a/dev-tools/reconfigurator-cli/tests/output/cmds-nexus-generation-stdout +++ b/dev-tools/reconfigurator-cli/tests/output/cmds-nexus-generation-stdout @@ -22,7 +22,7 @@ cockroachdb settings: version:::::::::::: (none) preserve downgrade: (not set) planner config: - add zones with mupdate override: false + (no current planner configs) > sled-list diff --git a/dev-tools/reconfigurator-cli/tests/output/cmds-target-release-stdout b/dev-tools/reconfigurator-cli/tests/output/cmds-target-release-stdout index 24958a3806c..5b13bae0107 100644 --- a/dev-tools/reconfigurator-cli/tests/output/cmds-target-release-stdout +++ b/dev-tools/reconfigurator-cli/tests/output/cmds-target-release-stdout @@ -22,7 +22,7 @@ cockroachdb settings: version:::::::::::: (none) preserve downgrade: (not set) planner config: - add zones with mupdate override: false + (no current planner configs) @@ -122,7 +122,7 @@ cockroachdb settings: version:::::::::::: (none) preserve downgrade: (not set) planner config: - add zones with mupdate override: false + (no current planner configs) @@ -1249,7 +1249,7 @@ cockroachdb settings: version:::::::::::: (none) preserve downgrade: (not set) planner config: - add zones with mupdate override: false + (no current planner configs) @@ -1276,7 +1276,7 @@ cockroachdb settings: version:::::::::::: (none) preserve downgrade: (not set) planner config: - add zones with mupdate override: false + (no current planner configs) > load saved.out 61f451b3-2121-4ed6-91c7-a550054f6c21 @@ -1344,7 +1344,7 @@ cockroachdb settings: version:::::::::::: (none) preserve downgrade: (not set) planner config: - add zones with mupdate override: false + (no current planner configs) diff --git a/dev-tools/reconfigurator-cli/tests/output/cmds-unsafe-zone-mgs-stdout b/dev-tools/reconfigurator-cli/tests/output/cmds-unsafe-zone-mgs-stdout index 29d08b50c5e..20e41a5f171 100644 --- a/dev-tools/reconfigurator-cli/tests/output/cmds-unsafe-zone-mgs-stdout +++ b/dev-tools/reconfigurator-cli/tests/output/cmds-unsafe-zone-mgs-stdout @@ -102,7 +102,7 @@ cockroachdb settings: version:::::::::::: (none) preserve downgrade: (not set) planner config: - add zones with mupdate override: false + (no current planner configs) diff --git a/docs/mupdate-update-flow.adoc b/docs/mupdate-update-flow.adoc index 61375b6b7b9..ec5086f4399 100644 --- a/docs/mupdate-update-flow.adoc +++ b/docs/mupdate-update-flow.adoc @@ -166,10 +166,7 @@ When all zone and host phase 2 images across all sleds have their image sources [NOTE] ==== -Zone adds (but not updates) are also allowed when either of the following conditions are met: - -- no target release has ever been set for the rack (i.e. the current target release generation is the initial generation, 1) -- the `add_zones_with_mupdate_override` planner config (default false) is set to true. +Zone adds (but not updates) are also allowed when no target release has ever been set for the rack (i.e. the current target release generation is the initial generation, 1). ==== == Appendix: Implementation rationale diff --git a/docs/reconfigurator-ops-guide.adoc b/docs/reconfigurator-ops-guide.adoc index afeffd16a54..7d3cda88941 100644 --- a/docs/reconfigurator-ops-guide.adoc +++ b/docs/reconfigurator-ops-guide.adoc @@ -1180,8 +1180,6 @@ Reconfigurator config: version: 8 modified time: 2025-10-23T05:58:27.392Z planner enabled: true - planner config: - add zones with mupdate override: false ``` This shows that the planner is enabled. @@ -1209,8 +1207,6 @@ note: (if this is not right, use --dns-server to specify an alternate DNS server note: using Nexus URL http://[fd00:1122:3344:101::6]:12232 reconfigurator config updated to version 1: planner enabled: false - planner config: - add zones with mupdate override: false ``` You can see the result with: @@ -1225,8 +1221,6 @@ Reconfigurator config: version: 1 modified time: 2025-11-05T23:49:01.597Z planner enabled: false - planner config: - add zones with mupdate override: false ``` Note that it takes a few seconds for all Nexus instances to pick up the new configuration. You can check this by checking the status of the `reconfigurator_config_watcher` background task: @@ -1277,8 +1271,6 @@ note: (if this is not right, use --dns-server to specify an alternate DNS server note: using Nexus URL http://[fd00:1122:3344:101::6]:12232 reconfigurator config updated to version 2: * planner enabled: false -> true - planner config: - add zones with mupdate override: false (unchanged) ``` Verify it: @@ -1293,8 +1285,6 @@ Reconfigurator config: version: 2 modified time: 2025-11-05T23:51:26.402Z planner enabled: true - planner config: - add zones with mupdate override: false ``` As before, it will take a few seconds for this to propagate. Then you'll see this in the planner background task output: diff --git a/nexus-config/src/nexus_config.rs b/nexus-config/src/nexus_config.rs index 63ba5cb3b5e..56a10a87773 100644 --- a/nexus-config/src/nexus_config.rs +++ b/nexus-config/src/nexus_config.rs @@ -1275,7 +1275,6 @@ mod test { address = "[::1]:4676" [initial_reconfigurator_config] planner_enabled = true - planner_config.add_zones_with_mupdate_override = true tuf_repo_pruner_enabled = false [background_tasks] dns_internal.period_secs_config = 1 @@ -1448,9 +1447,7 @@ mod test { )]), initial_reconfigurator_config: Some(ReconfiguratorConfig { planner_enabled: true, - planner_config: PlannerConfig { - add_zones_with_mupdate_override: true, - }, + planner_config: PlannerConfig::default(), tuf_repo_pruner_enabled: false, }), background_tasks: BackgroundTaskConfig { diff --git a/nexus/db-model/src/reconfigurator_config.rs b/nexus/db-model/src/reconfigurator_config.rs index 801bdb41369..b53b1e8d923 100644 --- a/nexus/db-model/src/reconfigurator_config.rs +++ b/nexus/db-model/src/reconfigurator_config.rs @@ -15,7 +15,6 @@ pub struct ReconfiguratorConfig { pub version: SqlU32, pub planner_enabled: bool, pub time_modified: DateTime, - pub add_zones_with_mupdate_override: bool, pub tuf_repo_pruner_enabled: bool, } @@ -25,10 +24,6 @@ impl From for ReconfiguratorConfig { version: value.version.into(), planner_enabled: value.config.planner_enabled, time_modified: value.time_modified, - add_zones_with_mupdate_override: value - .config - .planner_config - .add_zones_with_mupdate_override, tuf_repo_pruner_enabled: value.config.tuf_repo_pruner_enabled, } } @@ -40,10 +35,7 @@ impl From for deployment::ReconfiguratorConfigView { version: value.version.into(), config: deployment::ReconfiguratorConfig { planner_enabled: value.planner_enabled, - planner_config: deployment::PlannerConfig { - add_zones_with_mupdate_override: value - .add_zones_with_mupdate_override, - }, + planner_config: deployment::PlannerConfig::default(), tuf_repo_pruner_enabled: value.tuf_repo_pruner_enabled, }, time_modified: value.time_modified, diff --git a/nexus/db-model/src/schema_versions.rs b/nexus/db-model/src/schema_versions.rs index f8a32331f91..5caf71e9e28 100644 --- a/nexus/db-model/src/schema_versions.rs +++ b/nexus/db-model/src/schema_versions.rs @@ -16,7 +16,7 @@ use std::{collections::BTreeMap, sync::LazyLock}; /// /// This must be updated when you change the database schema. Refer to /// schema/crdb/README.adoc in the root of this repository for details. -pub const SCHEMA_VERSION: Version = Version::new(260, 0, 0); +pub const SCHEMA_VERSION: Version = Version::new(261, 0, 0); /// List of all past database schema versions, in *reverse* order /// @@ -28,6 +28,7 @@ pub static KNOWN_VERSIONS: LazyLock> = LazyLock::new(|| { // | leaving the first copy as an example for the next person. // v // KnownVersion::new(next_int, "unique-dirname-with-the-sql-files"), + KnownVersion::new(261, "remove-add-zones-with-mupdate-override"), KnownVersion::new(260, "ereport-trim-serial-trailing-nulls"), KnownVersion::new(259, "vmm-failure-reason"), KnownVersion::new(258, "lookup-unmarked-ereports-by-class"), diff --git a/nexus/db-queries/src/db/datastore/reconfigurator_config.rs b/nexus/db-queries/src/db/datastore/reconfigurator_config.rs index df34d2ce883..1cfc1c12c31 100644 --- a/nexus/db-queries/src/db/datastore/reconfigurator_config.rs +++ b/nexus/db-queries/src/db/datastore/reconfigurator_config.rs @@ -154,8 +154,7 @@ impl DataStore { config: ReconfiguratorConfig { planner_enabled, - planner_config: - PlannerConfig { add_zones_with_mupdate_override }, + planner_config: PlannerConfig {}, tuf_repo_pruner_enabled, }, time_modified, @@ -164,8 +163,8 @@ impl DataStore { sql_query( r"INSERT INTO reconfigurator_config (version, planner_enabled, time_modified, - add_zones_with_mupdate_override, tuf_repo_pruner_enabled) - SELECT $1, $2, $3, $4, $5 + tuf_repo_pruner_enabled) + SELECT $1, $2, $3, $4 WHERE $1 - 1 IN ( SELECT COALESCE(MAX(version), 0) FROM reconfigurator_config @@ -174,7 +173,6 @@ impl DataStore { .bind::(version.into()) .bind::(planner_enabled) .bind::(time_modified) - .bind::(add_zones_with_mupdate_override) .bind::(tuf_repo_pruner_enabled) .execute_async(conn) .await diff --git a/nexus/db-schema/src/schema.rs b/nexus/db-schema/src/schema.rs index a9b8c880db1..05d6c96b1db 100644 --- a/nexus/db-schema/src/schema.rs +++ b/nexus/db-schema/src/schema.rs @@ -2163,7 +2163,6 @@ table! { version -> Int8, planner_enabled -> Bool, time_modified -> Timestamptz, - add_zones_with_mupdate_override -> Bool, tuf_repo_pruner_enabled -> Bool, } } diff --git a/nexus/reconfigurator/planning/src/planner.rs b/nexus/reconfigurator/planning/src/planner.rs index 8214098bcda..2382f10989d 100644 --- a/nexus/reconfigurator/planning/src/planner.rs +++ b/nexus/reconfigurator/planning/src/planner.rs @@ -286,9 +286,8 @@ impl<'a> Planner<'a> { PlanningMgsUpdatesStepReport::new() }; - // Likewise for zone additions, unless overridden by the config, or - // unless a target release has never been set (i.e. we're effectively in - // a pre-Nexus-driven-update world). + // Likewise for zone additions, unless a target release has never been + // set (i.e. we're effectively in a pre-Nexus-driven-update world). // // We don't have to check for the minimum target release generation in // this case. On a freshly-installed or MUPdated system, Nexus will find @@ -296,13 +295,10 @@ impl<'a> Planner<'a> { // overrides always sets the minimum generation to the current target // release generation plus one, so the minimum generation will always be // exactly 2. - let add_zones_with_mupdate_override = - self.input.planner_config().add_zones_with_mupdate_override; let target_release_generation_is_one = self.input.tuf_repo().target_release_generation == Generation::from_u32(1); let mut add = if add_update_blocked_reasons.is_empty() - || add_zones_with_mupdate_override || target_release_generation_is_one || measurement_updates.all_sleds_updated() { @@ -311,7 +307,6 @@ impl<'a> Planner<'a> { PlanningAddStepReport::waiting_on(ZoneAddWaitingOn::Blockers) }; add.add_update_blocked_reasons = add_update_blocked_reasons; - add.add_zones_with_mupdate_override = add_zones_with_mupdate_override; add.target_release_generation_is_one = target_release_generation_is_one; let zone_updates = if add.any_discretionary_zones_placed() { diff --git a/nexus/types/src/deployment.rs b/nexus/types/src/deployment.rs index 7deb0a5df8e..d78f30bf3c2 100644 --- a/nexus/types/src/deployment.rs +++ b/nexus/types/src/deployment.rs @@ -153,7 +153,6 @@ pub use planning_report::ZoneUnsafeToShutdown; pub use planning_report::ZoneUpdatesWaitingOn; pub use planning_report::ZoneWaitingToExpunge; pub use reconfigurator_config::PlannerConfig; -pub use reconfigurator_config::PlannerConfigDiff; pub use reconfigurator_config::PlannerConfigDisplay; pub use reconfigurator_config::ReconfiguratorConfig; pub use reconfigurator_config::ReconfiguratorConfigDiff; diff --git a/nexus/types/src/deployment/planning_report.rs b/nexus/types/src/deployment/planning_report.rs index c615b9c0923..2a224d94ca3 100644 --- a/nexus/types/src/deployment/planning_report.rs +++ b/nexus/types/src/deployment/planning_report.rs @@ -977,11 +977,6 @@ pub struct PlanningAddStepReport { #[cfg_attr(test, any(((0, 16).into(), Default::default())))] pub add_update_blocked_reasons: Vec, - /// The value of the homonymous planner config. (What this really means is - /// that zone adds happen despite being blocked by one or more - /// MUPdate-related reasons.) - pub add_zones_with_mupdate_override: bool, - /// Set to true if the target release generation is 1, which would allow /// zones to be added. pub target_release_generation_is_one: bool, @@ -1037,7 +1032,6 @@ impl PlanningAddStepReport { Self { waiting_on: None, add_update_blocked_reasons: Vec::new(), - add_zones_with_mupdate_override: false, target_release_generation_is_one: false, sleds_without_ntp_zones_in_inventory: BTreeSet::new(), sleds_without_zpools_for_ntp_zones: BTreeSet::new(), @@ -1137,7 +1131,6 @@ impl fmt::Display for PlanningAddStepReport { let Self { waiting_on, add_update_blocked_reasons, - add_zones_with_mupdate_override, target_release_generation_is_one, sleds_without_ntp_zones_in_inventory, sleds_without_zpools_for_ntp_zones, @@ -1168,21 +1161,11 @@ impl fmt::Display for PlanningAddStepReport { } } - let mut add_zones_despite_being_blocked_reasons = Vec::new(); - if *add_zones_with_mupdate_override { - add_zones_despite_being_blocked_reasons.push( - "planner config `add_zones_with_mupdate_override` is true", - ); - } if *target_release_generation_is_one { - add_zones_despite_being_blocked_reasons - .push("target release generation is 1"); - } - if !add_zones_despite_being_blocked_reasons.is_empty() { writeln!( f, - "* adding zones despite being blocked, because: {}", - add_zones_despite_being_blocked_reasons.join(", "), + "* adding zones despite being blocked, because: \ + target release generation is 1", )?; } diff --git a/nexus/types/src/deployment/reconfigurator_config.rs b/nexus/types/src/deployment/reconfigurator_config.rs index 41f461bc2e8..ec85005b6b7 100644 --- a/nexus/types/src/deployment/reconfigurator_config.rs +++ b/nexus/types/src/deployment/reconfigurator_config.rs @@ -4,11 +4,10 @@ //! Runtime configuration for reconfigurator -use std::fmt::{self, Write}; +use std::fmt; use chrono::{DateTime, TimeZone, Utc}; use daft::Diffable; -use indent_write::fmt::IndentWriter; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; @@ -116,6 +115,7 @@ impl fmt::Display for ReconfiguratorConfigViewDisplay<'_> { )] pub struct ReconfiguratorConfig { pub planner_enabled: bool, + #[serde(default)] pub planner_config: PlannerConfig, pub tuf_repo_pruner_enabled: bool, } @@ -147,17 +147,12 @@ impl fmt::Display for ReconfiguratorConfigDisplay<'_> { config: ReconfiguratorConfig { planner_enabled, - planner_config, + planner_config: _, tuf_repo_pruner_enabled, }, } = self; writeln!(f, "tuf repo pruner enabled: {}", tuf_repo_pruner_enabled)?; writeln!(f, "planner enabled: {}", planner_enabled)?; - writeln!(f, "planner config:")?; - // planner_config does its own indentation, so it's not necessary to - // use IndentWriter here -- and it adds its own newlines so we don't - // need to add any more. - write!(f, "{}", planner_config.display())?; Ok(()) } @@ -177,7 +172,7 @@ impl fmt::Display for ReconfiguratorConfigDiffDisplay<'_, '_> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let ReconfiguratorConfigDiff { planner_enabled, - planner_config, + planner_config: _, tuf_repo_pruner_enabled, } = self.diff; @@ -191,14 +186,15 @@ impl fmt::Display for ReconfiguratorConfigDiffDisplay<'_, '_> { // No need for writeln! here because KvList adds its own newlines. write!(f, "{list}")?; - let mut indented = IndentWriter::new(" ", f); - writeln!(indented, "planner config:")?; - write!(indented, "{}", planner_config.display())?; + // When there are fields in `PlannerConfigDiff`, this is where their + // display would go. Ok(()) } } +// `PlannerConfig` is currently empty. Future planner-wide feature flags will be +// defined here. #[derive( Clone, Copy, @@ -211,16 +207,7 @@ impl fmt::Display for ReconfiguratorConfigDiffDisplay<'_, '_> { JsonSchema, )] #[cfg_attr(test, derive(test_strategy::Arbitrary))] -pub struct PlannerConfig { - /// Whether to add zones even if a mupdate override is present. - /// - /// Once Nexus-driven update is active on a customer system, we must not add - /// new zones while the system is recovering from a MUPdate. - /// - /// This setting, which is off by default, allows us to add zones - /// even if we've detected a recent MUPdate on the system. - pub add_zones_with_mupdate_override: bool, -} +pub struct PlannerConfig {} impl PlannerConfig { pub fn display(&self) -> PlannerConfigDisplay<'_> { @@ -233,23 +220,7 @@ impl PlannerConfig { #[expect(clippy::derivable_impls)] impl Default for PlannerConfig { fn default() -> Self { - // By default, we block zone additions on mupdate overrides being - // present (see the docs on `add_zones_with_mupdate_override` above). - Self { add_zones_with_mupdate_override: false } - } -} - -impl slog::KV for PlannerConfig { - fn serialize( - &self, - _record: &slog::Record, - serializer: &mut dyn slog::Serializer, - ) -> slog::Result { - let Self { add_zones_with_mupdate_override } = self; - serializer.emit_bool( - slog::Key::from("add_zones_with_mupdate_override"), - *add_zones_with_mupdate_override, - ) + Self {} } } @@ -259,44 +230,10 @@ pub struct PlannerConfigDisplay<'a> { impl<'a> fmt::Display for PlannerConfigDisplay<'a> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let Self { config: PlannerConfig { add_zones_with_mupdate_override } } = - self; - let list = KvList::new( - None, - vec![KvPair::new_unchanged( - "add zones with mupdate override", - add_zones_with_mupdate_override.to_string(), - )], - ); - // No need for writeln! here because KvList adds its own newlines. - write!(f, "{list}") - } -} - -impl<'a> PlannerConfigDiff<'a> { - pub fn display<'b>(&'b self) -> PlannerConfigDiffDisplay<'a, 'b> { - PlannerConfigDiffDisplay { diff: self } - } -} - -#[derive(Clone, Debug)] -pub struct PlannerConfigDiffDisplay<'a, 'b> { - diff: &'b PlannerConfigDiff<'a>, -} - -impl fmt::Display for PlannerConfigDiffDisplay<'_, '_> { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let PlannerConfigDiff { add_zones_with_mupdate_override } = self.diff; - - let list = KvList::new( - None, - vec![diff_row!( - add_zones_with_mupdate_override, - "add zones with mupdate override" - )], - ); - - // No need for writeln! here because KvList adds its own newlines. - write!(f, "{list}") + let Self { config: PlannerConfig {} } = self; + // `PlannerConfig` currently has no fields; once it gains some, we'll + // render them here as a `KvList`. The 4-space indent matches where + // those rows would appear. + writeln!(f, " (no current planner configs)") } } diff --git a/openapi/nexus-lockstep.json b/openapi/nexus-lockstep.json index 0b6707f72fa..f2cf1bdef6e 100644 --- a/openapi/nexus-lockstep.json +++ b/openapi/nexus-lockstep.json @@ -7014,16 +7014,7 @@ ] }, "PlannerConfig": { - "type": "object", - "properties": { - "add_zones_with_mupdate_override": { - "description": "Whether to add zones even if a mupdate override is present.\n\nOnce Nexus-driven update is active on a customer system, we must not add new zones while the system is recovering from a MUPdate.\n\nThis setting, which is off by default, allows us to add zones even if we've detected a recent MUPdate on the system.", - "type": "boolean" - } - }, - "required": [ - "add_zones_with_mupdate_override" - ] + "type": "object" }, "PlanningAddOutOfEligibleSleds": { "description": "How many discretionary zones we actually placed out of how many we wanted to place.", @@ -7055,10 +7046,6 @@ "type": "string" } }, - "add_zones_with_mupdate_override": { - "description": "The value of the homonymous planner config. (What this really means is that zone adds happen despite being blocked by one or more MUPdate-related reasons.)", - "type": "boolean" - }, "discretionary_zones_placed": { "description": "Sled ID → kinds of discretionary zones placed there", "type": "object", @@ -7143,7 +7130,6 @@ }, "required": [ "add_update_blocked_reasons", - "add_zones_with_mupdate_override", "discretionary_zones_placed", "out_of_eligible_sleds", "sleds_getting_ntp_and_discretionary_zones", @@ -8428,7 +8414,12 @@ "type": "object", "properties": { "planner_config": { - "$ref": "#/components/schemas/PlannerConfig" + "default": {}, + "allOf": [ + { + "$ref": "#/components/schemas/PlannerConfig" + } + ] }, "planner_enabled": { "type": "boolean" @@ -8438,7 +8429,6 @@ } }, "required": [ - "planner_config", "planner_enabled", "tuf_repo_pruner_enabled" ] diff --git a/schema/crdb/dbinit.sql b/schema/crdb/dbinit.sql index 88a44f4f736..308379c85c5 100644 --- a/schema/crdb/dbinit.sql +++ b/schema/crdb/dbinit.sql @@ -5247,9 +5247,6 @@ CREATE TABLE IF NOT EXISTS omicron.public.reconfigurator_config ( -- The time at which the configuration for a version was set time_modified TIMESTAMPTZ NOT NULL, - -- Whether to add zones while the system has detected a mupdate override. - add_zones_with_mupdate_override BOOL NOT NULL, - -- Enable the TUF repo pruner background task tuf_repo_pruner_enabled BOOL NOT NULL ); @@ -8626,7 +8623,7 @@ INSERT INTO omicron.public.db_metadata ( version, target_version ) VALUES - (TRUE, NOW(), NOW(), '260.0.0', NULL) + (TRUE, NOW(), NOW(), '261.0.0', NULL) ON CONFLICT DO NOTHING; COMMIT; diff --git a/schema/crdb/remove-add-zones-with-mupdate-override/up.sql b/schema/crdb/remove-add-zones-with-mupdate-override/up.sql new file mode 100644 index 00000000000..7aae3165790 --- /dev/null +++ b/schema/crdb/remove-add-zones-with-mupdate-override/up.sql @@ -0,0 +1,2 @@ +ALTER TABLE omicron.public.reconfigurator_config + DROP COLUMN IF EXISTS add_zones_with_mupdate_override; diff --git a/workspace-hack/Cargo.toml b/workspace-hack/Cargo.toml index 87e4e064d16..47d942707d1 100644 --- a/workspace-hack/Cargo.toml +++ b/workspace-hack/Cargo.toml @@ -40,7 +40,7 @@ crossbeam-utils = { version = "0.8.21" } crossterm = { version = "0.28.1", features = ["event-stream", "serde"] } crypto-common = { version = "0.1.7", default-features = false, features = ["getrandom", "std"] } curve25519-dalek = { version = "4.1.3", features = ["digest", "legacy_compatibility", "rand_core"] } -daft = { version = "0.1.5", features = ["derive", "newtype-uuid1", "oxnet01", "uuid1"] } +daft = { version = "0.1.7", features = ["derive", "newtype-uuid1", "oxnet01", "uuid1"] } data-encoding = { version = "2.10.0" } der = { version = "0.7.10", default-features = false, features = ["derive", "flagset", "oid", "pem", "std"] } digest = { version = "0.10.7", features = ["mac", "oid", "std"] } @@ -187,7 +187,7 @@ crossbeam-utils = { version = "0.8.21" } crossterm = { version = "0.28.1", features = ["event-stream", "serde"] } crypto-common = { version = "0.1.7", default-features = false, features = ["getrandom", "std"] } curve25519-dalek = { version = "4.1.3", features = ["digest", "legacy_compatibility", "rand_core"] } -daft = { version = "0.1.5", features = ["derive", "newtype-uuid1", "oxnet01", "uuid1"] } +daft = { version = "0.1.7", features = ["derive", "newtype-uuid1", "oxnet01", "uuid1"] } data-encoding = { version = "2.10.0" } der = { version = "0.7.10", default-features = false, features = ["derive", "flagset", "oid", "pem", "std"] } digest = { version = "0.10.7", features = ["mac", "oid", "std"] }