Merge pull request #11129 from RuoqingHe/entend-runtime-rs-workspace

runtime-rs: Extend runtime-rs workspace and centralize local dependencies
This commit is contained in:
Xuewei Niu 2025-04-09 19:23:15 +08:00 committed by GitHub
commit fd9a4548ab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 153 additions and 99 deletions

View File

@ -1,6 +1,42 @@
[workspace]
members = [
"crates/agent",
"crates/hypervisor",
"crates/persist",
"crates/resource",
"crates/runtimes",
"crates/service",
"crates/shim",
"crates/shim-ctl",
"tests/utils",
]
[workspace.dependencies]
agent = { path = "crates/agent" }
hypervisor = { path = "crates/hypervisor" }
persist = { path = "crates/persist"}
resource = { path = "crates/resource" }
runtimes = { path = "crates/runtimes" }
service = { path = "crates/service" }
tests_utils = { path = "tests/utils" }
ch-config = { path = "crates/hypervisor/ch-config" }
common = { path = "crates/runtimes/common" }
linux_container = { path = "crates/runtimes/linux_container" }
virt_container = { path = "crates/runtimes/virt_container" }
wasm_container = { path = "crates/runtimes/wasm_container" }
# Local dependencies from `src/libs`
kata-sys-util = { path = "../libs/kata-sys-util"}
kata-types = { path = "../libs/kata-types"}
logging = { path = "../libs/logging"}
protocols = { path = "../libs/protocols", features=["async"] }
runtime-spec = { path = "../libs/runtime-spec" }
safe-path = { path = "../libs/safe-path"}
shim-interface = { path = "../libs/shim-interface" }
test-utils = { path = "../libs/test-utils" }
# Local dependencies from `src/dragonball`
dragonball = { path = "../dragonball" }
dbs-utils = { path = "../dragonball/dbs_utils" }

View File

@ -22,11 +22,12 @@ tokio = { version = "1.38.0", features = ["fs", "rt"] }
tracing = "0.1.36"
url = "2.2.2"
nix = "0.24.2"
kata-types = { path = "../../../libs/kata-types"}
logging = { path = "../../../libs/logging"}
oci-spec = { version = "0.6.8", features = ["runtime"] }
protocols = { path = "../../../libs/protocols", features=["async"] }
# Local dependencies
kata-types = { workspace = true }
logging = { workspace = true }
protocols = { workspace = true, features=["async"] }
[features]
default = []

View File

@ -14,7 +14,6 @@ async-trait = "0.1.48"
go-flag = "0.1.0"
libc = ">=0.2.39"
nix = "0.24.2"
persist = { path = "../persist" }
rust-ini = "0.18.0"
seccompiler = "0.2.0"
serde = { version = "1.0.138", features = ["derive"] }
@ -30,27 +29,29 @@ lazy_static = "1.4"
tracing = "0.1.36"
ttrpc = { version = "0.8.4", features = ["async"] }
protobuf = "=3.7.1"
kata-sys-util = { path = "../../../libs/kata-sys-util" }
kata-types = { path = "../../../libs/kata-types" }
logging = { path = "../../../libs/logging" }
protocols = { path = "../../../libs/protocols", features = ["async"] }
shim-interface = { path = "../../../libs/shim-interface" }
oci-spec = { version = "0.6.8", features = ["runtime"] }
ch-config = { path = "ch-config", optional = true }
tests_utils = { path = "../../tests/utils" }
futures = "0.3.25"
safe-path = "0.1.0"
crossbeam-channel = "0.5.6"
tempdir = "0.3.7"
qapi = { version = "0.14", features = ["qmp", "async-tokio-all"] }
qapi-spec = "0.3.1"
qapi-qmp = "0.14.0"
hyperlocal = "0.8.0"
hyper = { version = "0.14.18", features = ["client"] }
dragonball = { path = "../../../dragonball", features = [
# Local dependencies
kata-sys-util = { workspace = true }
kata-types = { workspace = true }
logging = { workspace = true }
protocols = { workspace = true, features = ["async"] }
shim-interface = { workspace = true }
persist = { workspace = true }
ch-config = { workspace = true, optional = true }
tests_utils = { workspace = true }
# Local dependencies: Dragonball
dragonball = { workspace = true, features = [
"atomic-guest-memory",
"virtio-vsock",
"hotplug",
@ -64,9 +65,7 @@ dragonball = { path = "../../../dragonball", features = [
"vhost-user-net",
"host-device",
], optional = true }
dbs-utils = { path = "../../../dragonball/dbs_utils" }
hyperlocal = "0.8.0"
hyper = { version = "0.14.18", features = ["client"] }
dbs-utils = { workspace = true }
[features]
default = []
@ -77,14 +76,13 @@ dragonball = ["dep:dragonball"]
cloud-hypervisor = ["ch-config"]
[dev-dependencies]
# Force the CH tests to run, even when the feature is not enabled for
# a normal build.
hypervisor = { path = ".", features = ["cloud-hypervisor"] }
test-utils = { path = "../../../libs/test-utils" }
serial_test = "2.0.0"
# Local dev-dependencies
# Force the CH tests to run, even when the feature is not enabled for
# a normal build.
hypervisor = { workspace = true, features = ["cloud-hypervisor"] }
test-utils = { workspace = true }
[build-dependencies]
ttrpc-codegen = "0.4.2"

View File

@ -14,6 +14,8 @@ anyhow = "1.0.68"
serde = { version = "1.0.145", features = ["rc", "derive"] }
serde_json = "1.0.91"
tokio = { version = "1.38.0", features = ["sync", "rt"] }
nix = "0.26.2"
thiserror = "1.0.38"
# Cloud Hypervisor public HTTP API functions
# Note that the version specified is not necessarily the version of CH
@ -21,7 +23,6 @@ tokio = { version = "1.38.0", features = ["sync", "rt"] }
# which is relatively static.
api_client = { git = "https://github.com/cloud-hypervisor/cloud-hypervisor", crate = "api_client", tag = "v27.0" }
kata-types = { path = "../../../../libs/kata-types"}
kata-sys-util = { path = "../../../../libs/kata-sys-util"}
nix = "0.26.2"
thiserror = "1.0.38"
# Local dependencies
kata-types = { workspace = true }
kata-sys-util = { workspace = true }

View File

@ -8,10 +8,12 @@ license = "Apache-2.0"
[dependencies]
async-trait = "0.1.48"
anyhow = "^1.0"
kata-sys-util = { path = "../../../libs/kata-sys-util"}
kata-types = { path = "../../../libs/kata-types" }
shim-interface = { path = "../../../libs/shim-interface" }
libc = "0.2"
serde = { version = "1.0.138", features = ["derive"] }
serde_json = "1.0.82"
safe-path = { path = "../../../libs/safe-path"}
# Local dependencies
kata-sys-util = { workspace = true }
kata-types = { workspace = true }
shim-interface = { workspace = true }
safe-path = { workspace = true }

View File

@ -6,9 +6,11 @@ edition = "2018"
license = "Apache-2.0"
[dev-dependencies]
test-utils = { path = "../../../libs/test-utils" }
tempfile = "3.2.0"
# Local dev-dependencies
test-utils = { workspace = true }
[dependencies]
anyhow = "^1.0"
actix-rt = "2.7.0"
@ -33,14 +35,15 @@ slog-scope = "4.4.0"
tokio = { version = "1.38.0", features = ["process"] }
tracing = "0.1.36"
uuid = { version = "0.4", features = ["v4"] }
agent = { path = "../agent" }
hypervisor = { path = "../hypervisor" }
kata-types = { path = "../../../libs/kata-types" }
kata-sys-util = { path = "../../../libs/kata-sys-util" }
logging = { path = "../../../libs/logging" }
oci-spec = { version = "0.6.8", features = ["runtime"] }
persist = { path = "../persist"}
tests_utils = { path = "../../tests/utils" }
# Local dependencies
agent = { workspace = true }
hypervisor = { workspace = true }
kata-types = { workspace = true }
kata-sys-util = { workspace = true }
logging = { workspace = true }
persist = { workspace = true }
tests_utils = { workspace = true }
[features]

View File

@ -24,23 +24,24 @@ nix = "0.25.0"
url = "2.3.1"
procfs = "0.12.0"
prometheus = { version = "0.13.0", features = ["process"] }
agent = { path = "../agent" }
common = { path = "./common" }
kata-types = { path = "../../../libs/kata-types" }
kata-sys-util = { path = "../../../libs/kata-sys-util" }
logging = { path = "../../../libs/logging"}
runtime-spec = { path = "../../../libs/runtime-spec" }
oci-spec = { version = "0.6.8", features = ["runtime"] }
shim-interface = { path = "../../../libs/shim-interface" }
persist = { path = "../persist" }
hypervisor = { path = "../hypervisor" }
resource = { path = "../resource" }
# runtime handler
linux_container = { path = "./linux_container", optional = true }
virt_container = { path = "./virt_container", optional = true }
wasm_container = { path = "./wasm_container", optional = true }
# Local dependencies
agent = { workspace = true }
common = { workspace = true }
kata-types = { workspace = true }
kata-sys-util = { workspace = true }
logging = { workspace = true }
runtime-spec = { workspace = true }
shim-interface = { workspace = true }
persist = { workspace = true }
hypervisor = { workspace = true }
resource = { workspace = true }
# Local dependencies: runtime handler
linux_container = { workspace = true, optional = true }
virt_container = { workspace = true, optional = true }
wasm_container = { workspace = true, optional = true }
[features]
default = ["virt"]

View File

@ -21,11 +21,13 @@ strum = { version = "0.24.0", features = ["derive"] }
thiserror = "^1.0"
tokio = { version = "1.38.0", features = ["rt-multi-thread", "process", "fs"] }
ttrpc = "0.8.4"
persist = { path = "../../persist" }
agent = { path = "../../agent" }
kata-sys-util = { path = "../../../../libs/kata-sys-util" }
kata-types = { path = "../../../../libs/kata-types" }
runtime-spec = { path = "../../../../libs/runtime-spec" }
oci-spec = { version = "0.6.8", features = ["runtime"] }
resource = { path = "../../resource" }
protocols = { path = "../../../../libs/protocols"}
# Local dependencies
persist = { workspace = true }
agent = { workspace = true }
kata-sys-util = { workspace = true }
kata-types = { workspace = true }
runtime-spec = { workspace = true }
resource = { workspace = true }
protocols = { workspace = true }

View File

@ -9,6 +9,7 @@ anyhow = "^1.0"
async-trait = "0.1.48"
tokio = { version = "1.38.0" }
common = { path = "../common" }
kata-types = { path = "../../../../libs/kata-types" }
resource = { path = "../../resource" }
# Local dependencies
common = { workspace = true }
kata-types = { workspace = true }
resource = { workspace = true }

View File

@ -26,19 +26,20 @@ toml = "0.4.2"
url = "2.1.1"
async-std = "1.12.0"
tracing = "0.1.36"
agent = { path = "../../agent" }
common = { path = "../common" }
hypervisor = { path = "../../hypervisor", features = ["cloud-hypervisor"] }
kata-sys-util = { path = "../../../../libs/kata-sys-util" }
kata-types = { path = "../../../../libs/kata-types" }
logging = { path = "../../../../libs/logging"}
runtime-spec = { path = "../../../../libs/runtime-spec" }
oci-spec = { version = "0.6.8", features = ["runtime"] }
persist = { path = "../../persist"}
resource = { path = "../../resource" }
strum = { version = "0.24.0", features = ["derive"] }
# Local dependencies
agent = { workspace = true }
common = { workspace = true }
hypervisor = { workspace = true, features = ["cloud-hypervisor"] }
kata-sys-util = { workspace = true }
kata-types = { workspace = true }
logging = { workspace = true }
runtime-spec = { workspace = true }
persist = { workspace = true }
resource = { workspace = true }
[features]
default = ["cloud-hypervisor"]

View File

@ -9,6 +9,7 @@ anyhow = "^1.0"
async-trait = "0.1.48"
tokio = { version = "1.38.0" }
common = { path = "../common" }
kata-types = { path = "../../../../libs/kata-types" }
resource = { path = "../../resource" }
# Local dependencies
common = { workspace = true }
kata-types = { workspace = true }
resource = { workspace = true }

View File

@ -13,11 +13,12 @@ slog-scope = "4.4.0"
tokio = { version = "1.38.0", features = ["rt-multi-thread"] }
tracing = "0.1.36"
ttrpc = "0.8.4"
common = { path = "../runtimes/common" }
containerd-shim-protos = { version = "0.6.0", features = ["async", "sandbox"] }
containerd-shim = { version = "0.6.0", features = ["async"] }
logging = { path = "../../../libs/logging" }
kata-types = { path = "../../../libs/kata-types" }
runtimes = { path = "../runtimes" }
persist = { path = "../persist" }
# Local dependencies
common = { workspace = true }
logging = { workspace = true }
kata-types = { workspace = true }
runtimes = { workspace = true }
persist = { workspace = true }

View File

@ -7,8 +7,9 @@ edition = "2021"
[dependencies]
anyhow = "^1.0"
common = { path = "../runtimes/common" }
logging = { path = "../../../libs/logging"}
runtimes = { path = "../runtimes" }
tokio = { version = "1.38.0", features = [ "rt", "rt-multi-thread" ] }
# Local dependencies
common = { workspace = true }
logging = { workspace = true }
runtimes = { workspace = true }

View File

@ -31,17 +31,20 @@ tokio = { version = "1.38.0", features = [ "rt", "rt-multi-thread" ] }
unix_socket2 = "0.5.4"
tracing = "0.1.36"
tracing-opentelemetry = "0.18.0"
kata-types = { path = "../../../libs/kata-types"}
kata-sys-util = { path = "../../../libs/kata-sys-util"}
logging = { path = "../../../libs/logging"}
runtime-spec = { path = "../../../libs/runtime-spec" }
oci-spec = { version = "0.6.8", features = ["runtime"] }
service = { path = "../service" }
runtimes = { path = "../runtimes" }
# Local dependencies
kata-types = { workspace = true }
kata-sys-util = { workspace = true }
logging = { workspace = true }
runtime-spec = { workspace = true }
service = { workspace = true }
runtimes = { workspace = true }
[dev-dependencies]
tempfile = "3.2.0"
rand = "0.8.4"
serial_test = "0.5.1"
tests_utils = { path = "../../tests/utils"}
# Local dev-dependencies
tests_utils = { workspace = true }

View File

@ -10,4 +10,6 @@ license = "Apache-2.0"
[dependencies]
anyhow = "^1.0"
rand = "0.8.4"
kata-types = { path = "../../../libs/kata-types" }
# Local dependencies
kata-types = { workspace = true }