Skip to content

Commit 6ab908b

Browse files
Merge pull request #31 from FyraStack/caleb/merge-crates
Merge crates
2 parents f2145d1 + e466c7f commit 6ab908b

69 files changed

Lines changed: 852 additions & 1486 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.lock

Lines changed: 293 additions & 723 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,29 @@
11
[workspace]
22
resolver = "3"
3-
members = ["odorobo-agent", "odoroboctl", "odorobo-manager", "odorobo-shared"]
3+
members = ["odorobo"]
4+
45
[workspace.package]
56
rust-version = "1.95.0"
7+
68
[workspace.dependencies]
7-
stable-eyre = "0.2.2"
9+
stable-eyre = "0.2"
10+
clap = { version = "4", features = ["derive", "env"] }
11+
tokio = { version = "1" }
12+
reqwest = { version = "0.13", features = ["json"] }
13+
serde_json = "1.0"
14+
serde = { version = "1.0", features = ["derive"] }
815
tracing = "0.1"
916
tracing-subscriber = { version = "0.3", features = [
1017
"env-filter",
1118
"fmt",
1219
"json",
1320
] }
14-
cloud-hypervisor-client = { git = "https://github.com/FyraStack/cloud-hypervisor-client.git" }
15-
serde_json = "1.0.149"
16-
serde = "1.0"
17-
axum = { version = "0.8.8", features = ["ws"] }
18-
thiserror = "2.0.18"
19-
axum-extra = "0.12"
20-
tower-http = { version = "0.6", features = ["trace"] }
21-
tokio = { version = "1" }
22-
kameo = { version = "0.19.2", features = ["remote"] }
23-
libp2p = { version = "0.56.0", features = ["yamux", "serde", "mdns"] }
24-
ahash = { version = "0.8.12", features = ["serde"] }
25-
ulid = { version = "1.2", features = ["serde", "uuid"] }
26-
# aide needs an older version of schemars
27-
schemars = "0.9"
28-
dirs = "6.0.0"
29-
bytesize = { version = "2.3.1", features = ["serde"] }
30-
odorobo-shared = { path = "odorobo-shared" }
31-
odorobo-agent = { path = "odorobo-agent" }
32-
odoroboctl = { path = "odoroboctl" }
33-
odorobo-manager = { path = "odorobo-manager" }
34-
dotenvy = "0.15"
35-
clap = { version = "4", features = ["derive", "env"] }
36-
ipnet = {version = "2.12.0", features = ["serde", "schemars08"]}
37-
url = { version = "2.3", features = ["serde"] }
38-
async-trait = "0.1.89"
39-
dashmap = "6.1.0"
21+
22+
23+
# our crates
24+
odorobo = { path = "odorobo" }
25+
26+
4027

4128
# these are for performance optimizations, based on https://nnethercote.github.io/perf-book/build-configuration.html#optimization-level
4229
# these options can take a while to compile (up to 5-10 minutes), so its really only necessary for production binaries.

README.md

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -34,39 +34,27 @@ sudo dnf in -y clang-devel nftables cloud-hypervisor
3434
# Build the Agent
3535
cargo build --release
3636

37-
# create basic config
38-
echo "{}" >> config.json
37+
# Run the Agent & Manager (requires write permissions to /run/odorobo)
38+
sudo ./target/release/odorobo --manager-enabled=true # or set ODOROBO_MANAGER_ENABLED=true
3939

40-
# Run the Agent (requires write permissions to /run/odorobo, and access to systemd's system session bus
41-
sudo ./target/release/odorobo-agent
40+
# Run on other boxes
41+
sudo ./target/release/odorobo
4242
```
4343

44-
You will now be required to run the manager process:
45-
```
46-
# Build the Manager
47-
cargo build --release -p odorobo-manager
48-
# Run the Manager
49-
./target/release/odorobo-manager
50-
```
44+
You can run multiple managers for load balancing and HA, but it is not required.
5145

5246
Install the CLI helper
5347

5448
```bash
5549
cargo install --path odoroboctl
5650
```
5751

58-
You can then use `odoroboctl` to directly interact with the Agent, for example to spawn a VM instance
59-
60-
```bash
61-
odoroboctl spawn my-vm
62-
```
52+
You can then use `odoroboctl` to directly interact with the Manager, for example to spawn a VM instance
6353

6454
Now apply the [Cloud Hypervisor VM spec](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/api.md#create-a-virtual-machine) to the instance, for example with a simple configuration that boots from a disk image
6555

6656
```bash
67-
# the `--boot` flag additionally also tells Cloud Hypervisor to boot the VM after applying the configuration, otherwise it will stay
68-
# in the "Created" state, requiring a separate `odoroboctl boot` call to start it.
69-
odoroboctl create my-vm --boot ./my-vm.json
57+
odoroboctl create vm.json
7058
```
7159

7260
To connect directly on the host, connect to the VM's serial console socket in its runtime directory:

odorobo-agent/Cargo.toml

Lines changed: 0 additions & 50 deletions
This file was deleted.

odorobo-agent/src/lib.rs

Lines changed: 0 additions & 5 deletions
This file was deleted.

odorobo-agent/src/main.rs

Lines changed: 0 additions & 42 deletions
This file was deleted.

odorobo-agent/src/state/provisioning/hooks/machined.rs

Lines changed: 0 additions & 94 deletions
This file was deleted.

odorobo-agent/src/util.rs

Lines changed: 0 additions & 12 deletions
This file was deleted.

odorobo-manager/Cargo.toml

Lines changed: 0 additions & 42 deletions
This file was deleted.

odorobo-manager/src/lib.rs

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)