Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
1bd54d4
ipv6 all the things
rcgoodfellow Dec 11, 2025
409e7b4
pull in bgp work
rcgoodfellow Jan 17, 2026
a4fb72c
bgp unnumbered plumbing
rcgoodfellow Jan 18, 2026
78c2f6a
bump maghemite
rcgoodfellow Jan 19, 2026
27b97ae
bump dendrite
rcgoodfellow Jan 19, 2026
390c231
bump softnpu
rcgoodfellow Jan 19, 2026
5a1a1a4
more bumps
rcgoodfellow Jan 19, 2026
7e04eff
comment out v6 unicast for the moment .....
rcgoodfellow Jan 20, 2026
25a161d
first swing at bootstrap agent lockstep api
rcgoodfellow Jan 20, 2026
34955d2
various fixes
rcgoodfellow Jan 20, 2026
8f19176
remove rack-init APIs from client-side versioned bootstrap agent api
rcgoodfellow Jan 21, 2026
745d1b7
bring rack network config into current versioning scheme
rcgoodfellow Jan 21, 2026
4d42838
the great type migration continues
rcgoodfellow Jan 21, 2026
6225e55
remove long dead compat types
rcgoodfellow Jan 22, 2026
62b248c
the final type shuffle?
rcgoodfellow Jan 22, 2026
c6bbb34
turn an ipv4addr into an ipaddr
rcgoodfellow Jan 22, 2026
44d7f58
update bootstore early networking serialization tests
rcgoodfellow Jan 26, 2026
83dd4f0
feed clippy
rcgoodfellow Jan 27, 2026
579524b
bump maghemite
internet-diglett Jan 29, 2026
7e66df8
Merge branch 'main' into ry/ipv6-all-the-things
internet-diglett Jan 29, 2026
07ae84b
fixup! Merge branch 'main' into ry/ipv6-all-the-things
internet-diglett Jan 29, 2026
2699f9b
bump mgd, fix openapi specs (broke them while merging main)
internet-diglett Jan 30, 2026
51bf1c3
fixup! bump mgd, fix openapi specs (broke them while merging main)
internet-diglett Jan 30, 2026
ee35acf
Merge branch 'main' into ry/ipv6-all-the-things
internet-diglett Jan 30, 2026
d9688c2
generate openapi
internet-diglett Jan 30, 2026
12bcf0d
oops I did it again
internet-diglett Jan 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 41 additions & 4 deletions Cargo.lock

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

12 changes: 9 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ members = [
"clickhouse-admin/test-utils",
"clickhouse-admin/types/versions",
"clients/bootstrap-agent-client",
"clients/bootstrap-agent-lockstep-client",
"clients/clickhouse-admin-keeper-client",
"clients/clickhouse-admin-server-client",
"clients/clickhouse-admin-single-client",
Expand Down Expand Up @@ -134,6 +135,7 @@ members = [
"sled-agent",
"sled-agent/api",
"sled-agent/bootstrap-agent-api",
"sled-agent/bootstrap-agent-lockstep-api",
"sled-agent/config-reconciler",
"sled-agent/health-monitor",
"sled-agent/measurements",
Expand Down Expand Up @@ -179,6 +181,7 @@ default-members = [
"clickhouse-admin/types/versions",
"clickhouse-admin/test-utils",
"clients/bootstrap-agent-client",
"clients/bootstrap-agent-lockstep-client",
"clients/clickhouse-admin-keeper-client",
"clients/clickhouse-admin-server-client",
"clients/clickhouse-admin-single-client",
Expand Down Expand Up @@ -307,6 +310,7 @@ default-members = [
"sled-agent",
"sled-agent/api",
"sled-agent/bootstrap-agent-api",
"sled-agent/bootstrap-agent-lockstep-api",
"sled-agent/config-reconciler",
"sled-agent/health-monitor",
"sled-agent/measurements",
Expand Down Expand Up @@ -405,7 +409,9 @@ bcs = "0.1.6"
bincode = "1.3.3"
bootstore = { path = "bootstore" }
bootstrap-agent-api = { path = "sled-agent/bootstrap-agent-api" }
bootstrap-agent-lockstep-api = { path = "sled-agent/bootstrap-agent-lockstep-api" }
bootstrap-agent-client = { path = "clients/bootstrap-agent-client" }
bootstrap-agent-lockstep-client = { path = "clients/bootstrap-agent-lockstep-client" }
buf-list = { version = "1.0.3", features = ["tokio1"] }
byteorder = "1.5.0"
bytes = "1.10.1"
Expand Down Expand Up @@ -569,8 +575,8 @@ ntp-admin-api = { path = "ntp-admin/api" }
ntp-admin-client = { path = "clients/ntp-admin-client" }
ntp-admin-types = { path = "ntp-admin/types" }
ntp-admin-types-versions = { path = "ntp-admin/types/versions" }
mg-admin-client = { git = "https://github.com/oxidecomputer/maghemite", rev = "396bb3c570be65f4e8c73ea3243f4af6561a823a" }
ddm-admin-client = { git = "https://github.com/oxidecomputer/maghemite", rev = "396bb3c570be65f4e8c73ea3243f4af6561a823a" }
mg-admin-client = { git = "https://github.com/oxidecomputer/maghemite", rev = "508e2e74bd0bcf3ad6bc490e95667cfadafecb53" }
ddm-admin-client = { git = "https://github.com/oxidecomputer/maghemite", rev = "508e2e74bd0bcf3ad6bc490e95667cfadafecb53" }
multimap = "0.10.1"
nexus-auth = { path = "nexus/auth" }
nexus-background-task-interface = { path = "nexus/background-task-interface" }
Expand Down Expand Up @@ -700,7 +706,7 @@ rats-corim = { git = "https://github.com/oxidecomputer/rats-corim.git", rev = "f
raw-cpuid = { git = "https://github.com/oxidecomputer/rust-cpuid.git", rev = "a4cf01df76f35430ff5d39dc2fe470bcb953503b" }
rayon = "1.10"
rcgen = "0.12.1"
rdb-types = { git = "https://github.com/oxidecomputer/maghemite", rev = "396bb3c570be65f4e8c73ea3243f4af6561a823a" }
rdb-types = { git = "https://github.com/oxidecomputer/maghemite", rev = "508e2e74bd0bcf3ad6bc490e95667cfadafecb53" }
reconfigurator-cli = { path = "dev-tools/reconfigurator-cli" }
reedline = "0.40.0"
ref-cast = "1.0"
Expand Down
2 changes: 1 addition & 1 deletion clients/bootstrap-agent-client/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
//! Interface for making API requests to a Bootstrap Agent

progenitor::generate_api!(
spec = "../../openapi/bootstrap-agent/bootstrap-agent-1.0.0-127591.json",
spec = "../../openapi/bootstrap-agent/bootstrap-agent-2.0.0-632b71.json",
interface = Positional,
inner_type = slog::Logger,
pre_hook = (|log: &slog::Logger, request: &reqwest::Request| {
Expand Down
22 changes: 22 additions & 0 deletions clients/bootstrap-agent-lockstep-client/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[package]
name = "bootstrap-agent-lockstep-client"
version = "0.1.0"
edition.workspace = true
license = "MPL-2.0"

[lints]
workspace = true

[dependencies]
omicron-common.workspace = true
omicron-uuid-kinds.workspace = true
omicron-workspace-hack.workspace = true
oxnet.workspace = true
progenitor.workspace = true
regress.workspace = true
reqwest.workspace = true
schemars.workspace = true
serde.workspace = true
serde_json.workspace = true
sled-hardware-types.workspace = true
slog.workspace = true
72 changes: 72 additions & 0 deletions clients/bootstrap-agent-lockstep-client/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.

//! Interface for making API requests to the Bootstrap Agent Lockstep API

progenitor::generate_api!(
spec = "../../openapi/bootstrap-agent-lockstep.json",
interface = Positional,
inner_type = slog::Logger,
pre_hook = (|log: &slog::Logger, request: &reqwest::Request| {
slog::debug!(log, "client request";
"method" => %request.method(),
"uri" => %request.url(),
"body" => ?&request.body(),
);
}),
post_hook = (|log: &slog::Logger, result: &Result<_, _>| {
slog::debug!(log, "client response"; "result" => ?result);
}),
derives = [schemars::JsonSchema],
crates = {
"omicron-uuid-kinds" = "*",
"oxnet" = "0.1.0",
},
replace = {
AllowedSourceIps = omicron_common::api::external::AllowedSourceIps,
ImportExportPolicy = omicron_common::api::external::ImportExportPolicy,
},
);

impl omicron_common::api::external::ClientError for types::Error {
fn message(&self) -> String {
self.message.clone()
}
}

impl From<types::Baseboard> for sled_hardware_types::Baseboard {
fn from(value: types::Baseboard) -> Self {
match value {
types::Baseboard::Gimlet { identifier, model, revision } => {
sled_hardware_types::Baseboard::new_gimlet(
identifier, model, revision,
)
}
types::Baseboard::Unknown => {
sled_hardware_types::Baseboard::unknown()
}
types::Baseboard::Pc { identifier, model } => {
sled_hardware_types::Baseboard::new_pc(identifier, model)
}
}
}
}

impl From<sled_hardware_types::Baseboard> for types::Baseboard {
fn from(value: sled_hardware_types::Baseboard) -> Self {
match value {
sled_hardware_types::Baseboard::Gimlet {
identifier,
model,
revision,
} => types::Baseboard::Gimlet { identifier, model, revision },
sled_hardware_types::Baseboard::Unknown => {
types::Baseboard::Unknown
}
sled_hardware_types::Baseboard::Pc { identifier, model } => {
types::Baseboard::Pc { identifier, model }
}
}
}
}
2 changes: 1 addition & 1 deletion clients/sled-agent-client/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ progenitor::generate_api!(
LldpPortConfig = { derives = [Eq, Hash, PartialOrd, Ord] },
TxEqConfig = { derives = [Eq, Hash] },
OmicronPhysicalDiskConfig = { derives = [Eq, Hash, PartialOrd, Ord] },
PortConfigV2 = { derives = [Eq, Hash] },
PortConfig = { derives = [Eq, Hash] },
RouteConfig = { derives = [Eq, Hash] },
UplinkAddressConfig = { derives = [Eq, Hash] },
VirtualNetworkInterfaceHost = { derives = [Eq, Hash] },
Expand Down
6 changes: 4 additions & 2 deletions common/src/api/external/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3248,8 +3248,10 @@ pub struct BgpPeer {
/// could be vlan47 to refer to a VLAN interface.
pub interface_name: Name,

/// The address of the host to peer with.
pub addr: IpAddr,
/// The address of the host to peer with. If not provided, this is an
/// unnumbered BGP session that will be established over the interface
/// specified by `interface_name`.
pub addr: Option<IpAddr>,

/// How long to hold peer connections between keepalives (seconds).
pub hold_time: u32,
Expand Down
1 change: 1 addition & 0 deletions common/src/api/internal/shared/external_ip/v1.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.

Expand Down
Loading
Loading