Skip to main content

Crate rskit_workload

Crate rskit_workload 

Source
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.