reddwarf/crates/reddwarf-runtime/src/lib.rs
Claude 710d353924
Add image management catalog and scheduler resource-aware scheduling
Image management:
- ImageCatalog backed by KVStore with register/resolve/list/delete
- CLI `image import`, `image list`, `image delete` subcommands
- PodController resolves container image field to local path
  (tarball → lx_image_path, ZFS snapshot → clone_from)

Scheduler runtime metrics:
- compute_allocated_resources() sums requests of all scheduled pods per node
- PodFitsResources filter subtracts used resources from allocatable
- LeastAllocated/BalancedAllocation scorers account for existing load
- Pod count limits enforced against node max-pods
- Allocated resources updated within scheduling cycle for multi-pod batches

https://claude.ai/code/session_016QLFjAyYGzMPbBjEGMe75j
2026-03-19 21:35:48 +00:00

54 lines
1.6 KiB
Rust

// Allow unused assignments for diagnostic fields - they're used by the thiserror/miette macros
#![allow(unused_assignments)]
pub mod api_client;
pub mod brand;
pub mod command;
pub mod controller;
pub mod dns;
pub mod error;
pub mod image;
#[cfg(target_os = "illumos")]
pub mod illumos;
pub mod mock;
pub mod network;
pub mod node_agent;
pub mod node_health;
pub mod probes;
pub mod service_controller;
pub mod storage;
pub mod sysinfo;
pub mod traits;
pub mod types;
pub mod zone;
// Re-export primary types
pub use dns::{DnsServer, DnsServerConfig};
pub use error::{Result, RuntimeError};
pub use mock::MockRuntime;
pub use network::{CidrConfig, IpAllocation, Ipam, NatManager};
pub use service_controller::{ServiceController, ServiceControllerConfig};
pub use traits::ZoneRuntime;
pub use types::{
ContainerProcess, DirectNicConfig, EtherstubConfig, FsMount, NetworkMode, StoragePoolConfig,
ZoneBrand, ZoneConfig, ZoneInfo, ZoneState, ZoneStorageOpts,
};
// Re-export storage types
#[cfg(target_os = "illumos")]
pub use storage::ZfsStorageEngine;
pub use storage::{MockStorageEngine, StorageEngine, VolumeInfo};
// Re-export image types
pub use image::{ImageCatalog, ImageEntry, ImageType};
// Re-export controller and agent types
pub use api_client::ApiClient;
pub use controller::{PodController, PodControllerConfig};
pub use node_agent::{NodeAgent, NodeAgentConfig};
pub use node_health::{NodeHealthChecker, NodeHealthCheckerConfig};
pub use probes::{ProbeExecutor, ProbeTracker};
// Conditionally re-export illumos runtime
#[cfg(target_os = "illumos")]
pub use illumos::IllumosRuntime;