The fleet's desired state: the programs that should run, lockstep groups and placement requests, as the Rust's text document
$ sexc add @ajax/mesh-fleet-doc- total 3
- drwxr-xr-x-../
- drwxr-xr-x-Oct 27 04:08v/# 1 version
- drwxr-xr-x-Oct 27 04:08files/# the files of 0.1.0
- latest
- 0.1.0, published Oct 27 04:08 by ajax
- owners
- ajax
- license
- MIT
- dependencies
- @ajax/mesh-check ^0.1.0, @ajax/mesh-mt ^0.1.0, @ajax/mesh-parse ^0.1.0, @ajax/rust-fmt ^0.1.0, @ajax/mesh-member-list ^0.1.0, @ajax/mesh-sched-needs ^0.1.0, @ajax/mesh-abi-base ^0.1.0, @ajax/mesh-abi-backend ^0.1.0
- dependents
- @ajax/mesh-fleet-core, @ajax/mesh-fleet-edit, @ajax/mesh-fleet-groups, @ajax/mesh-fleet-persist, @ajax/mesh-fleet-plan, @ajax/mesh-jobd, @ajax/mesh-peer-codec, @ajax/mesh-peer-relay, @ajax/mesh-reconcile, @ajax/mesh-sched-place, @ajax/mesh-sched-tracker
- keywords
- mesh alphaos fleet fleet desired-state document
- homepage
- https://github.com/thomasdavis/alpha-c-mesh/tree/main/packages/mesh-fleet-doc
- repository
- https://github.com/thomasdavis/alpha-c-mesh
1# @ajax/mesh-fleet-doc 2 3The fleet's desired state (`mfd_doc`): the programs that should be loaded (catalog dir, image hash, run 4state, reset generation, the previous image for a rollback, the scheduling needs, the scheduler's 5placement, a migration in flight, the operator's pin, why it is where it is), the lockstep groups 6(program, ordered members, epoch, cycle, state, on-loss policy), the placement requests and the 7scheduler's switches (paused, autoreform, cordon). `mfd_encode` / `mfd_decode` are the Rust's text 8document, one line per item, byte for byte; the leader sends it whole. 9 10Programs and placement requests are kept sorted by name (the Rust's `BTreeMap` order); groups keep 11their order. 12 13## Ported from 14 15[alpha-rust-mesh](https://github.com/rsafier/alpha-rust-mesh) `crates/mesh-host/src/fleet.rs`: 16`ProgSpec` (`here`), `CycleOp`, `GroupState`, `OnLoss`, `Group` (`mask`, `rank`, `order`), `Doc` 17(`id`, `group_of`, `encode`, `decode`), `can_run`. 18 19## Tests 20 21`tests/doc.c`: the document part of the Rust's `document_round_trips` (with every scheduler field), 22the exact text, decode errors in the Rust's words and order, ranks, `here`, `can_run`. 23 24## Licence 25 26MIT. See the repository's LICENSE.