Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
87 changes: 72 additions & 15 deletions Cargo.lock

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

9 changes: 5 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -698,10 +698,11 @@ progenitor-client010 = { package = "progenitor-client", version = "0.10.0" }
# NOTE: if you change the pinned revision of the `bhyve_api` and propolis
# dependencies, you must also update the references in package-manifest.toml to
# match the new revision.
bhyve_api = { git = "https://github.com/oxidecomputer/propolis", rev = "36f20be9bb4c3b362029237f5feb6377c982395f" }
propolis_api_types = { git = "https://github.com/oxidecomputer/propolis", rev = "36f20be9bb4c3b362029237f5feb6377c982395f" }
propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "36f20be9bb4c3b362029237f5feb6377c982395f" }
propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "36f20be9bb4c3b362029237f5feb6377c982395f" }
bhyve_api = { git = "https://github.com/oxidecomputer/propolis", rev = "8a0026763144cb18f1a23fadecd4527602503df0" }
propolis_api_types = { git = "https://github.com/oxidecomputer/propolis", rev = "8a0026763144cb18f1a23fadecd4527602503df0" }
propolis-api-types-versions = { git = "https://github.com/oxidecomputer/propolis", rev = "8a0026763144cb18f1a23fadecd4527602503df0" }
propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "8a0026763144cb18f1a23fadecd4527602503df0" }
propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "8a0026763144cb18f1a23fadecd4527602503df0" }
# NOTE: see above!
proptest = "1.7.0"
qorb = "0.4.1"
Expand Down
4 changes: 2 additions & 2 deletions nexus/src/app/instance_platform/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ use omicron_common::api::internal::shared::NetworkInterface;
use sled_agent_client::types::{
BlobStorageBackend, Board, BootOrderEntry, BootSettings, Chipset,
ComponentV0, Cpuid, CpuidVendor, CrucibleStorageBackend,
FileStorageBackend, I440Fx, InstanceSpecV0, NvmeDisk, PciPath, QemuPvpanic,
FileStorageBackend, I440Fx, InstanceSpec, NvmeDisk, PciPath, QemuPvpanic,
SerialPort, SerialPortNumber, SpecKey, VirtioDisk, VirtioNetworkBackend,
VirtioNic, VmmSpec,
};
Expand Down Expand Up @@ -548,7 +548,7 @@ impl super::Nexus {
components.add_nics(nics)?;
components.add_cloud_init(instance, ssh_keys)?;

let spec = InstanceSpecV0 {
let spec = InstanceSpec {
board: Board {
chipset: Chipset::I440Fx(I440Fx { enable_pcie: false }),
cpuid: cpuid_from_vmm_cpu_platform(vmm.cpu_platform),
Expand Down
1 change: 1 addition & 0 deletions openapi/sled-agent/sled-agent-26.0.0-294fb6.json.gitstub
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
78f8995096b912f90220a1e36ba58a9a2abb4f1e:openapi/sled-agent/sled-agent-26.0.0-294fb6.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"url": "https://oxide.computer",
"email": "api@oxide.computer"
},
"version": "26.0.0"
"version": "27.0.0"
},
"paths": {
"/artifacts": {
Expand Down Expand Up @@ -5939,7 +5939,7 @@
"nics"
]
},
"InstanceSpecV0": {
"InstanceSpec": {
"type": "object",
"properties": {
"board": {
Expand Down Expand Up @@ -9841,7 +9841,7 @@
"description": "Specifies the virtual hardware configuration of a new Propolis VMM in the form of a Propolis instance specification.",
"allOf": [
{
"$ref": "#/components/schemas/InstanceSpecV0"
"$ref": "#/components/schemas/InstanceSpec"
}
]
},
Expand Down
2 changes: 1 addition & 1 deletion openapi/sled-agent/sled-agent-latest.json
4 changes: 2 additions & 2 deletions package-manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -650,10 +650,10 @@ service_name = "propolis-server"
only_for_targets.image = "standard"
source.type = "prebuilt"
source.repo = "propolis"
source.commit = "36f20be9bb4c3b362029237f5feb6377c982395f"
source.commit = "8a0026763144cb18f1a23fadecd4527602503df0"
# The SHA256 digest is automatically posted to:
# https://buildomat.eng.oxide.computer/public/file/oxidecomputer/propolis/image/<commit>/propolis-server.sha256.txt
source.sha256 = "18f244ef765ae26bc7852e3af9b61016a6ea5a59a8eafbe36780a92e5fc75b46"
source.sha256 = "88cd4c102ebe1eb6f486708a788aff610886ef4de1a68b0bd27609809409245e"
output.type = "zone"

[package.mg-ddm-gz]
Expand Down
1 change: 1 addition & 0 deletions sled-agent/api/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ api_versions!([
// | example for the next person.
// v
// (next_int, IDENT),
(27, RENAME_INSTANCE_SPEC),
(26, RACK_NETWORK_CONFIG_NOT_OPTIONAL),
(25, BOOTSTORE_VERSIONING),
(24, ADD_ZPOOL_HEALTH_TO_INVENTORY),
Expand Down
13 changes: 6 additions & 7 deletions sled-agent/src/instance.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ use omicron_uuid_kinds::{
GenericUuid, InstanceUuid, OmicronZoneUuid, PropolisUuid,
};
use oxnet::IpNet;
use propolis_api_types::ErrorCode as PropolisErrorCode;
use propolis_api_types::instance::ErrorCode as PropolisErrorCode;
use propolis_client::Client as PropolisClient;
use propolis_client::instance_spec::{
ComponentV0, InstanceSpec, InstanceSpecV0, SpecKey,
Expand Down Expand Up @@ -417,7 +417,7 @@ impl InstanceMonitorRunner {

// Update the state generation for the next poll.
if let InstanceMonitorUpdate::State(ref state) = update {
generation = state.r#gen + 1;
generation = state.gen_ + 1;
}

// Now that we have the response from Propolis' HTTP server, we
Expand All @@ -444,7 +444,7 @@ impl InstanceMonitorRunner {
.client
.instance_state_monitor()
.body(propolis_client::types::InstanceStateMonitorRequest {
r#gen: generation,
gen_: generation,
})
.send()
.await;
Expand Down Expand Up @@ -2626,9 +2626,7 @@ impl InstanceRunner {

// We use a custom client builder here because the default progenitor
// one has a timeout of 15s but we want to be able to wait indefinitely.
// Use reqwest012 because the rev-pinned propolis-client is still on
// reqwest 0.12.
let reqwest_client = reqwest012::ClientBuilder::new().build().unwrap();
let reqwest_client = reqwest::ClientBuilder::new().build().unwrap();
let client = Arc::new(PropolisClient::new_with_client(
&format!("http://{}", &self.propolis_addr),
reqwest_client,
Expand Down Expand Up @@ -2935,6 +2933,7 @@ mod tests {
use camino_tempfile::Utf8TempDir;
use dns_server::TransientServer;
use dropshot::HttpServer;
use gateway_client::ClientInfo;
use internal_dns_resolver::Resolver;
use omicron_common::FileKv;
use omicron_common::api::external::{Generation, Hostname};
Expand Down Expand Up @@ -3885,7 +3884,7 @@ mod tests {
.send(InstanceMonitorMessage {
update: InstanceMonitorUpdate::State(
InstanceStateMonitorResponse {
r#gen: 5,
gen_: 5,
migration: InstanceMigrateStatusResponse {
migration_in: None,
migration_out: None,
Expand Down
2 changes: 1 addition & 1 deletion sled-agent/src/sim/instance.rs
Original file line number Diff line number Diff line change
Expand Up @@ -457,7 +457,7 @@ impl Simulatable for SimInstance {
current.migration_in.map(|m| m.migration_id),
),
last_response: InstanceStateMonitorResponse {
r#gen: 1,
gen_: 1,
state: PropolisInstanceState::Starting,
migration: PropolisMigrateResponse {
migration_in: None,
Expand Down
1 change: 1 addition & 0 deletions sled-agent/types/versions/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ omicron-workspace-hack.workspace = true
oxnet.workspace = true
slog.workspace = true
propolis_api_types.workspace = true
propolis-api-types-versions.workspace = true
proptest = { workspace = true, optional = true }
schemars.workspace = true
serde.workspace = true
Expand Down
9 changes: 4 additions & 5 deletions sled-agent/types/versions/src/impls/instance.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@

use crate::latest::instance::{VmmSpec, VmmStateRequested};
use propolis_api_types::instance_spec::{
SpecKey,
Component, SpecKey,
components::backends::{
CrucibleStorageBackend, FileStorageBackend, VirtioNetworkBackend,
},
v0::ComponentV0,
};

impl std::fmt::Display for VmmStateRequested {
Expand All @@ -34,7 +33,7 @@ impl VmmSpec {
) -> impl Iterator<Item = (&SpecKey, &CrucibleStorageBackend)> {
self.0.components.iter().filter_map(
|(key, component)| match component {
ComponentV0::CrucibleStorageBackend(be) => Some((key, be)),
Component::CrucibleStorageBackend(be) => Some((key, be)),
_ => None,
},
)
Expand All @@ -45,7 +44,7 @@ impl VmmSpec {
) -> impl Iterator<Item = (&SpecKey, &VirtioNetworkBackend)> {
self.0.components.iter().filter_map(
|(key, component)| match component {
ComponentV0::VirtioNetworkBackend(be) => Some((key, be)),
Component::VirtioNetworkBackend(be) => Some((key, be)),
_ => None,
},
)
Expand All @@ -56,7 +55,7 @@ impl VmmSpec {
) -> impl Iterator<Item = (&SpecKey, &FileStorageBackend)> {
self.0.components.iter().filter_map(
|(key, component)| match component {
ComponentV0::FileStorageBackend(be) => Some((key, be)),
Component::FileStorageBackend(be) => Some((key, be)),
_ => None,
},
)
Expand Down
2 changes: 1 addition & 1 deletion sled-agent/types/versions/src/initial/instance.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ use omicron_common::api::internal::shared::DhcpConfig;
use omicron_common::api::internal::shared::external_ip::v1::SourceNatConfig;
use omicron_common::api::internal::shared::network_interface::v1::NetworkInterface;
use omicron_uuid_kinds::{InstanceUuid, PropolisUuid};
use propolis_api_types::instance_spec::v0::InstanceSpecV0;
use propolis_api_types_versions::v1::instance_spec::InstanceSpec as InstanceSpecV0;
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use uuid::Uuid;
Expand Down