Expand description
Provider-based workload orchestration.
rskit-workload mirrors gokit’s workload package:
a provider-agnostic Manager contract for deploying
and managing workloads (containers, pods, or any long-running unit),
an explicit backend WorkloadRegistry,
and a lifecycle-managed WorkloadComponent that plugs into the shared component registry.
The crate is foundational: it owns the concept and vocabulary of workload orchestration.
Concrete backends (Docker, Kubernetes, …) live in separate adapter crates
and register a ManagerFactory into a WorkloadRegistry; no backend is wired in implicitly.
§Example
use rskit_workload::{WorkloadComponent, WorkloadConfig};
use rskit_component::Component;
// Disabled config starts as a healthy no-op until a backend is registered.
let component = WorkloadComponent::new(WorkloadConfig::default());
component.start().await?;
assert!(component.health().is_healthy());
component.stop().await?;Re-exports§
pub use component::WorkloadComponent;pub use config::WorkloadConfig;pub use manager::DiskUsageCapable;pub use manager::EventWatcher;pub use manager::ExecCapable;pub use manager::ImageEventWatcher;pub use manager::ImageInspector;pub use manager::LogStreamer;pub use manager::Manager;pub use manager::StatsCapable;pub use manager::SystemInfoCapable;pub use registry::ManagerFactory;pub use registry::WorkloadRegistry;pub use report::DeployResult;pub use report::DiskUsage;pub use report::ExecResult;pub use report::GpuInfo;pub use report::ImageConfig;pub use report::ImageDetail;pub use report::ImageDiskEntry;pub use report::ImageEvent;pub use report::SystemInfo;pub use report::WaitResult;pub use report::WorkloadEvent;pub use report::WorkloadInfo;pub use report::WorkloadStats;pub use report::WorkloadStatus;pub use resources::format_cpu;pub use resources::format_memory;pub use resources::parse_cpu;pub use resources::parse_memory;pub use spec::DeployRequest;pub use spec::ImageEventFilter;pub use spec::ListFilter;pub use spec::LogOptions;pub use spec::NetworkConfig;pub use spec::PortMapping;pub use spec::ResourceConfig;pub use spec::VolumeMount;pub use state::RestartPolicy;pub use state::WorkloadState;
Modules§
- component
- Lifecycle-managed workload component. Lifecycle-managed workload component.
- config
- Provider-agnostic workload configuration. Provider-agnostic workload configuration.
- manager
- Workload lifecycle manager and optional capability traits. Workload lifecycle manager and optional capability traits.
- registry
- Explicit workload backend registry. Explicit workload backend registry.
- report
- Runtime state and result reports.
Runtime state and result reports returned by a
crate::Manager. - resources
- CPU and memory quantity parsing and formatting. CPU and memory quantity parsing and formatting.
- spec
- Deployment request and its nested specification types. Deployment request and its nested specification types.
- state
- Workload runtime state and restart policy. Workload runtime state and restart policy.