swarm-controller: render, lock and commit internal/meta
A new update_meta node renders internal/meta's flake.nix with hive-meta-flake, the renderer hive-c0re uses: hyperhive pinned to its forge main, each custom agent a hive places pinned to its agent-configs main, all over https, and the swarm-wide values from SWARM_CONTROLLER_META_FLAKE (set by swarm-controller.nix from services.hyperhive.swarm.*). The swarm builder locks it, and the controller commits flake.nix and flake.lock in one commit and gives every hive's forge account read on the repo. A render equal to the committed flake.nix sends no lock and commits nothing. It runs at start, when hyperhive's main moves, before the deploy of a merged config PR and before the first deploy of a new agent; those deploys now wait for it. agent_web_port moves into hive-meta-flake so both callers compute the same port; hive-c0re re-exports it. On deploy: internal/meta appears on the forge and follows every merge. No hive builds from it yet. Refs #4857
This commit is contained in:
parent
f3c0a87c0f
commit
5950363a10
16 changed files with 970 additions and 41 deletions
|
|
@ -39,3 +39,10 @@ every `hyperhiveArchetypes` entry in this host's hyperhive source, with
|
|||
nixpkgs pointed at this host's. It fetches nothing and uses no token, and it
|
||||
doesn't wait for a running build. See
|
||||
[`docs/swarm/archetypes.md`](../docs/swarm/archetypes.md).
|
||||
|
||||
## Meta-flake lock
|
||||
|
||||
The service also locks the swarm meta flake on request: `nix flake lock` of
|
||||
the `flake.nix` it was sent, in a scratch directory, with the build's forge
|
||||
credential. It answers with the lock and commits nothing. See
|
||||
[`docs/swarm/builder.md`](../docs/swarm/builder.md#meta-flake-lock).
|
||||
|
|
|
|||
Loading…
Reference in a new issue