reddwarf/Cargo.toml
Till Wegmueller c50ecb2664
Close the control loop: versioned bind, event-driven controller, graceful shutdown
- Move WatchEventType and ResourceEvent to reddwarf-core so scheduler
  and runtime can use them without depending on the apiserver crate
- Fix scheduler bind_pod to create versioned commits and publish
  MODIFIED events so the pod controller learns about scheduled pods
- Replace polling loop in pod controller with event bus subscription,
  wire handle_delete for DELETED events, keep reconcile_all for
  startup sync and lag recovery
- Add allocatable/capacity resources (cpu, memory, pods) to node agent
  build_node so the scheduler's resource filter accepts nodes
- Bootstrap "default" namespace on startup to prevent pod creation
  failures in the default namespace
- Replace .abort() shutdown with CancellationToken-based graceful
  shutdown across scheduler, controller, and node agent

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 23:21:53 +01:00

89 lines
2.1 KiB
TOML

[workspace]
resolver = "2"
members = [
"crates/reddwarf-core",
"crates/reddwarf-storage",
"crates/reddwarf-versioning",
"crates/reddwarf-apiserver",
"crates/reddwarf-scheduler",
"crates/reddwarf-runtime",
"crates/reddwarf",
]
[workspace.package]
version = "0.1.0"
edition = "2021"
authors = ["Reddwarf Contributors"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/yourusername/reddwarf"
rust-version = "1.84"
[workspace.dependencies]
# Core dependencies
reddwarf-core = { path = "crates/reddwarf-core" }
reddwarf-storage = { path = "crates/reddwarf-storage" }
reddwarf-versioning = { path = "crates/reddwarf-versioning" }
reddwarf-apiserver = { path = "crates/reddwarf-apiserver" }
reddwarf-scheduler = { path = "crates/reddwarf-scheduler" }
reddwarf-runtime = { path = "crates/reddwarf-runtime" }
# Kubernetes types
k8s-openapi = { version = "0.23", features = ["v1_31"] }
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
# Error handling
thiserror = "2.0"
miette = { version = "7.0", features = ["fancy"] }
anyhow = "1.0"
# Async runtime
tokio = { version = "1.40", features = ["full"] }
tokio-stream = { version = "0.1", features = ["sync"] }
tokio-util = { version = "0.7", features = ["rt"] }
futures-util = "0.3"
async-trait = "0.1"
# HTTP client
reqwest = { version = "0.12", features = ["json"] }
# Web framework
axum = { version = "0.8", features = ["ws", "macros"] }
tower = { version = "0.5", features = ["full"] }
tower-http = { version = "0.6", features = ["cors", "compression-gzip", "trace"] }
hyper = { version = "1.0", features = ["full"] }
# Storage
redb = "2.1"
# Versioning
jj-lib = "0.23"
# Utilities
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1.0", features = ["v4", "serde"] }
bytes = "1.0"
# Logging and tracing
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
# CLI
clap = { version = "4.5", features = ["derive", "env"] }
# TLS
rcgen = "0.13"
rustls = "0.23"
rustls-pemfile = "2.0"
# Testing
tempfile = "3.0"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true