solstice-ci/crates/orchestrator/Cargo.toml
Till Wegmueller 7fc4e8edb7
Introduce logs-service for structured job logs management; bump version to 0.1.13
- Add `logs-service` crate as a separate microservice to handle job log storage, retrieval, and categorization.
- Update orchestrator to redirect log endpoints to the new service with optional permanent redirects using `LOGS_BASE_URL`.
- Enhance log persistence by introducing structured fields such as category, level, and error flags.
- Implement migration to add new columns and indexes for job logs.
- Add ANSI escape sequence stripping and structured logging for cleaner log storage.
- Improve SSH log handling with interleaved stdout/stderr processing and pty request support.
- Revise Docker files and compose setup to include logs-service, with support for PostgreSQL and secure connections.

Signed-off-by: Till Wegmueller <toasterson@gmail.com>
2025-11-18 11:48:09 +01:00

64 lines
2.4 KiB
TOML

[package]
name = "orchestrator"
version = "0.1.13"
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"] }
[target.'cfg(target_os = "linux")'.dependencies]
virt = { version = "0.4.3" }
[package.metadata.deb]
name = "solstice-orchestrator"
maintainer = "Solstice CI <ops@solstice-ci.org>"
section = "utils"
priority = "optional"
assets = [
["target/release/orchestrator", "/usr/bin/solstice-orchestrator", "755"],
["packaging/solstice-orchestrator.service", "/lib/systemd/system/solstice-orchestrator.service", "644"],
["../../examples/orchestrator-image-map.yaml", "/etc/solstice/orchestrator.yaml", "644"],
["../../examples/etc/solstice/orchestrator.env.sample", "/etc/solstice/orchestrator.env", "640"],
]
depends = [
"libvirt-daemon-system",
"libvirt-clients",
"ca-certificates",
"openssh-client",
]
recommends = ["qemu-kvm", "virtinst"]
conf-files = ["/etc/solstice/orchestrator.yaml", "/etc/solstice/orchestrator.env"]
maintainer-scripts = "packaging/debian/"