pub enum Workload {
MesofactStatic(MesofactStaticWorkload),
Container(WorkloadSpec),
Almanac(AlmanacManifest),
StaticAsset(StaticAssetWorkload),
}Expand description
On-disk workload.toml manifest. Each variant matches one
ServiceComponent.kind value; the kind field on the wire is the serde
discriminator.
This is the on-disk envelope — distinct from WorkloadSpec, the
containerd wire format yubaba receives over RPC. A kind = "container"
workload deserializes its remaining fields as a WorkloadSpec; other
kinds carry their own per-reconciler payload shape.
Variants§
MesofactStatic(MesofactStaticWorkload)
Static-site build that publishes an artifact directory to the
service’s static provider slot. Reconciled by the
mesofact-static reconciler — does not deploy to yubaba.
Container(WorkloadSpec)
Containerd workload handed to yubaba over RPC. The inline fields
are the full WorkloadSpec minus the kind discriminator.
This is also the shape of the W267 sovereign-public-ingress appliance
(R594-F2): a container-kind workload with archetype = Some(LifecycleArchetype::Appliance) and
requires_taint() == Some(PUBLIC_IP_TAINT), not a dedicated
Workload::ingress(..) variant. It runs an ordinary OCI image (the
passway proxy, R594-F4) supervised by kamaji exactly like any other
Container, so no admission-list or wire-codec change was needed to
let kamaji accept it. A new enum variant would have forced an
exhaustive-match update in every Workload consumer, including
peer-owned kamaji-proto/src/codec.rs — the archetype + annotation
combination expresses “this is the public ingress appliance” without
that blast radius. See WorkloadSpec::requires_taint and
LifecycleArchetype::Appliance.
Almanac(AlmanacManifest)
Data-pipeline job with declared I/O and a readiness policy. The
orchestrator checks all inputs are reachable before each run and
verifies outputs afterward. Generalises the OpenRouter JSON-cache
refresher (spawn_almanac_refresher) to the full manifest form.
StaticAsset(StaticAssetWorkload)
Content-addressed static files uploaded to the mirror’s object_store
provider slot. Wave-0 by default — gating mesofact and container waves.
Rollback is a pointer-flip via mirror.toml [asset_aliases]; bytes are
append-only and never re-pushed on rollback. See W160.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Workload
impl<'de> Deserialize<'de> for Workload
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl StructuralPartialEq for Workload
Source§impl TS for Workload
impl TS for Workload
Source§type WithoutGenerics = Workload
type WithoutGenerics = Workload
WithoutGenerics should just be Self.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy or (). The only requirement for these dummy types is that
EXPORT_TO must be None. Read moreSource§type OptionInnerType = Workload
type OptionInnerType = Workload
std::option::Option<T>, then this associated type is set to T.
All other implementations of TS should set this type to Self instead.Source§fn docs() -> Option<String>
fn docs() -> Option<String>
TS is derived, docs are
automatically read from your doc comments or #[doc = ".."] attributesSource§fn decl_concrete(cfg: &Config) -> String
fn decl_concrete(cfg: &Config) -> String
TS::decl().
If this type is not generic, then this function is equivalent to TS::decl().Source§fn decl(cfg: &Config) -> String
fn decl(cfg: &Config) -> String
type User = { user_id: number, ... }.
This function will panic if the type has no declaration. Read moreSource§fn inline(cfg: &Config) -> String
fn inline(cfg: &Config) -> String
{ user_id: number }.
This function will panic if the type cannot be inlined.Source§fn inline_flattened(cfg: &Config) -> String
fn inline_flattened(cfg: &Config) -> String
Source§fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn output_path() -> Option<PathBuf>
fn output_path() -> Option<PathBuf>
T should be exported, relative to the output directory.
The returned path does not include any base directory. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
Source§fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export_all. Read moreSource§fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export. Read more