hyperhive: make the values the meta-flake render reads swarm-wide
Five host options whose values hive-c0re renders into every agent's build move under services.hyperhive.swarm, so the swarm states each of them once instead of every hive carrying its own copy: c0re.dashboardPort -> swarm.dashboardPort c0re.claudeCodePackage -> swarm.claudeCodePackage github.enable -> swarm.github.enable otel.collector.port -> swarm.hiveOtel.collectorPort otel.extraResourceAttributes -> swarm.hiveOtel.extraResourceAttributes Every old path is a mkRenamedOptionModule alias, so a host that sets one keeps its value and gets an eval warning naming the new path. Types and defaults are unchanged, so the rendered meta flake, serve.json and hive-c0re's environment are the same as before on a host that sets none of them. The readers move with them: serve.json and its gc-root assertion, the hive-c0re environment, the hive collector's listen address and bridge port, the swarm collector's port-collision assertion, and the claude-login and review-classifier containers' claude pin. The swarm-services-switch fixture sets the swarm path and now also checks that serve.json carries the pinned claude. Part of #4857 (slice 2).
This commit is contained in:
parent
af7114eb49
commit
fc32f57481
25 changed files with 189 additions and 138 deletions
|
|
@ -17,6 +17,10 @@ in
|
|||
ruth from the swarm dashboard like any other agent; a ruth container that
|
||||
already exists keeps starting with the hive.
|
||||
'')
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "hyperhive" "github" "enable" ]
|
||||
[ "services" "hyperhive" "swarm" "github" "enable" ]
|
||||
)
|
||||
];
|
||||
|
||||
# Canonical hive DNS domain shared by every subsystem that needs a
|
||||
|
|
@ -192,15 +196,15 @@ in
|
|||
# the values it asserts. It is a deployment mode rather than a setting
|
||||
# this module's options read, so it lives with its consequences.
|
||||
|
||||
options.services.hyperhive.github.enable = lib.mkOption {
|
||||
options.services.hyperhive.swarm.github.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
example = false;
|
||||
description = ''
|
||||
Hive-wide switch for the per-agent GitHub integration (the `gh` CLI
|
||||
Swarm-wide switch for the per-agent GitHub integration (the `gh` CLI
|
||||
wrapper + git credential helper, per `services.hyperhive.agent.github.enable`). On by
|
||||
default: every agent gets the integration, inert until an operator links
|
||||
a PAT for it in the swarm UI. Set `false` to turn it off for the whole hive --- the
|
||||
a PAT for it in the swarm UI. Set `false` to turn it off for the whole swarm --- the
|
||||
meta-flake renderer (`hive-c0re/src/meta.rs`) then injects
|
||||
`services.hyperhive.agent.github.enable = false` into every agent. Exposed to hive-c0re
|
||||
as `HYPERHIVE_GITHUB_DISABLED` (set only when the integration is off).
|
||||
|
|
|
|||
Loading…
Reference in a new issue