Watch
0
0
Fork
You've already forked hyperhive
0

move hiveName to deploy.hive-controller; only a hive host needs a name

This commit is contained in:
atlas 2026-10-26 16:06:11 +01:00 • committed by mara
commit 0c6e8fc5a2
37 changed files with 402 additions and 215 deletions

View file

@ -143,6 +143,12 @@ in
#
# The runner moved from `deploy.forgejo.ci` to `deploy.ci-runner` with
# every option keeping its type and meaning, so the old paths forward.
# `hiveName` names the hive a host runs, so it moved under the service
# that runs one. Same type and meaning.
(lib.mkRenamedOptionModule
[ "services" "hyperhive" "hiveName" ]
[ "services" "hyperhive" "deploy" "hive-controller" "hiveName" ]
)
(lib.mkRenamedOptionModule
[ "services" "hyperhive" "deploy" "forgejo" "ci" "enable" ]
[ "services" "hyperhive" "deploy" "ci-runner" "enable" ]
@ -514,6 +520,39 @@ in
'';
};
hive-controller.hiveName = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
example = "pr1ma";
description = ''
Name of the hive this host runs, and the key of its entry in
{option}`services.hyperhive.swarm.hives`. **Required** when
{option}`services.hyperhive.deploy.hive-controller.enable` is set;
a host that runs no hive needs none.
Not merely a display name: the hive occupies
`<hiveName>.<swarm.domain>`, and the name is the hive's identity to
the swarm (its secret-store certificate subject, its OIDC client, its
status key). Distinct from {option}`services.hyperhive.domain`, the
machine-addressable DNS name. Exposed to agents as
`HYPERHIVE_HIVE_NAME`; surfaced in the dashboard chrome and per-agent
system prompt. The identity surfaces are listed in
`docs/process/conventions.md`, § Hive identity.
'';
};
hive-controller.dashboardDomain = lib.mkOption {
type = lib.types.nullOr lib.types.str;
readOnly = true;
internal = true;
description = ''
Read-only: this hive's entry in
{option}`services.hyperhive.swarm.dashboardDomains`, or null where
`hiveName` has no entry in {option}`services.hyperhive.swarm.hives`
(asserted).
'';
};
swarm-controller.enable = lib.mkOption {
type = lib.types.bool;
default = false;