mirror of
https://codeberg.org/Toasterson/solstice-ci.git
synced 2026-04-10 13:20:41 +00:00
- Implement SSH execution retries with exponential backoff and timeout handling. - Replace `virsh domifaddr` with a multi-strategy IP discovery approach. - Introduce `OrchestratorError` for consistent, structured error reporting. - Improve runner deployment and SSH session utilities for readability and reliability. - Add dependencies: `thiserror`, `anyhow` for streamlined error handling. Signed-off-by: Till Wegmueller <toasterson@gmail.com>
44 lines
1.6 KiB
TOML
44 lines
1.6 KiB
TOML
[package]
|
|
name = "orchestrator"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
build = "build.rs"
|
|
|
|
[features]
|
|
# Enable libvirt backend on Linux hosts (uses virt crate on Linux)
|
|
libvirt = []
|
|
|
|
[dependencies]
|
|
common = { path = "../common" }
|
|
clap = { version = "4", features = ["derive", "env"] }
|
|
miette = { version = "7", features = ["fancy"] }
|
|
thiserror = "1"
|
|
anyhow = "1"
|
|
tracing = "0.1"
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "signal", "fs", "io-util", "process", "net"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
serde_yaml = "0.9"
|
|
config = { version = "0.15", default-features = false, features = ["yaml"] }
|
|
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls-native-roots", "http2", "gzip", "brotli", "zstd"] }
|
|
# HTTP server for logs (runner serving removed)
|
|
axum = { version = "0.8", features = ["macros"] }
|
|
# SSH client for upload/exec/logs
|
|
ssh2 = "0.9"
|
|
ssh-key = { version = "0.6", features = ["ed25519"] }
|
|
rand_core = "0.6"
|
|
# Compression/decompression
|
|
zstd = "0.13"
|
|
# DB (optional basic persistence)
|
|
sea-orm = { version = "1.1.17", default-features = false, features = ["sqlx-postgres", "sqlx-sqlite", "runtime-tokio-rustls", "macros", "with-uuid", "with-chrono" ] }
|
|
migration = { path = "../migration" }
|
|
sea-orm-migration = { version = "1.1.17" }
|
|
chrono = { version = "0.4", default-features = false, features = ["clock", "std", "serde"] }
|
|
# Utilities
|
|
dashmap = "6"
|
|
async-trait = "0.1"
|
|
uuid = { version = "1", features = ["v4", "serde"] }
|
|
futures-util = "0.3.31"
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
virt = { version = "0.4.3" }
|