meta: new hive-c0re module owns /var/lib/hyperhive/meta/

leaf module with no runtime callers yet (every public item is
#[allow(dead_code)] until lifecycle / actions / auto_update
rewire to use it). API surface:

- sync_agents — idempotent: render flake.nix for the given
  agent set, git-init on first call, nix flake lock, commit if
  anything changed.
- prepare_deploy / finalize_deploy / abort_deploy — two-phase
  for the request_apply_commit path. prepare runs nix flake
  lock --update-input agent-<n> without committing; finalize
  commits with a 'deploy <n> deployed/<id> <sha12>' message;
  abort git-restores the lock so a failed build leaves no
  orphan commit.
- lock_update_hyperhive — one-shot for the auto-update path.

flake.nix template defines mkAgent that pulls each agent's
nixosModules.default from its input and wraps with the
identity / HIVE_PORT / HIVE_LABEL / HIVE_DASHBOARD_PORT
module — what setup_applied used to generate inline. nix
invocations carry --extra-experimental-features as a belt
in case flakes aren't enabled in nix.conf.
This commit is contained in:
müde 2026-05-16 00:22:37 +02:00
parent 5b5a93e0c6
commit 92822efe16
3 changed files with 265 additions and 2 deletions

View file

@ -17,6 +17,7 @@ mod dashboard;
mod events_vacuum;
mod lifecycle;
mod manager_server;
mod meta;
mod operator_questions;
mod server;