pub struct ProjectConfig {
pub description: Option<String>,
pub commands: BTreeMap<String, CommandSpec>,
pub cluster: Option<ClusterConfig>,
pub join: Option<WorkerJoin>,
pub publish: Option<PublishBlock>,
}Expand description
Root fdl.yaml at project root.
deny_unknown_fields: a mistyped key (e.g. comands:) errors at
load, naming the field and listing the valid ones, instead of
silently configuring nothing. Same rigor as the CLI’s unknown-flag
rejection; applies to every user-facing config struct below.
Fields§
§description: Option<String>§commands: BTreeMap<String, CommandSpec>Commands defined at this level. Each value is a CommandSpec that
encodes the kind of command (inline run script, path pointer to
a child fdl.yml, or inline preset reusing the parent entry).
cluster: Option<ClusterConfig>Multi-host cluster topology. When present, commands marked
cluster: true are dispatched across every worker in
ClusterConfig::workers. Lives at the project root because the
topology is shared across all sub-command fdl.yml files; the
canonical author pattern is to put the cluster block in a
fdl.<env>.yml overlay (e.g. fdl.vm.yml) that deep-merges over
the base fdl.yml.
join: Option<WorkerJoin>Worker-side dial-in defaults for fdl join (self-deployed
workers joining a discovery window). The mirror image of
cluster.controller.join: — that block opens the window, this
one walks in. Typically lives in the fdl.yml of a golden image
so a boot-time fdl join needs no flags.
publish: Option<PublishBlock>Controller-side standing answers for fdl publish, so chaining
runs on a fleet is one bare command. Flags win over the block;
a -- tail replaces its args:.