deploy: drop the per-option restatement of what allSwarmServices asserts

mara: "deploy.nix still says it everywhere". Seven option descriptions
each told the reader that this service derives from the swarm-services
switch — the same duplication just removed from docs/swarm/services.md,
one layer over, and rendered into the generated options doc.

Each keeps only what is true of that service and nothing else: the
metrics store is paired with grafana, the log store has clients rather
than second instances, the homeserver can be placed on its own host, a
swarm has one SSO provider. The store's paragraph about where it runs
being a separate question from that it runs survives, because that is
about the store, not about the switch.

swarm-ui keeps its positive derivation (the controller) and loses only
the "rather than from allSwarmServices" half.

Deliberately not touched, as a different question rather than an
oversight: the *mode* option's description in local-defaults.nix, whose
whole job is to name what it asserts; the module comments in
swarm-authelia.nix / swarm.nix, which are read by someone editing that
module rather than by an operator picking an option; and ui.md's
contrast, which she has not ruled on.
This commit is contained in:
atlas 2026-08-30 20:06:56 +02:00 committed by mara
commit 4bd5c51e2e

View file

@ -158,9 +158,8 @@ in
description = ''
Run the swarm's metrics store on this host.
Derives from
{option}`services.hyperhive.deploy.allSwarmServices` together
with {option}`services.hyperhive.deploy.grafana.enable`: a store
Paired with
{option}`services.hyperhive.deploy.grafana.enable`: a store
with no UI is unreadable and a UI with no store is empty, so there
is no sensible deployment that takes one and not the other from
that switch. Set either directly to run exactly one.
@ -173,10 +172,8 @@ in
description = ''
Run the swarm's log store on this host.
Derives from
{option}`services.hyperhive.deploy.allSwarmServices` for the
same reason as the metrics pair above: a hive that is not the
service host is a *client* of this store, not a second one.
A hive that is not the service host is a *client* of this store,
not a second one.
'';
};
@ -186,14 +183,10 @@ in
example = true;
description = ''
Run the swarm's secret store in a `swarm-bao` container on this
host. A swarm has one store and it has to exist somewhere, so
this is asserted from
{option}`services.hyperhive.deploy.allSwarmServices`
alongside the other once-per-swarm services.
host. A swarm has one store and it has to exist somewhere.
That assertion is a `mkDefault`, which is what keeps *where* the
store runs a separate question from *that* it runs: set this
directly to put the store on a host of its own, and clients
*Where* it runs is a separate question from *that* it runs: set
this directly to put the store on a host of its own, and clients
still reach it by name at
{option}`services.hyperhive.swarm.bao.domain` rather than at a
local address.
@ -212,9 +205,7 @@ in
example = true;
description = ''
Run the swarm's authelia in a `swarm-authelia` container on this
host. {option}`services.hyperhive.deploy.allSwarmServices`
turns this on a swarm has one SSO provider, and that says it
lives here.
host. A swarm has one SSO provider, and this says it lives here.
With it off, this hive is a *client*:
{option}`services.hyperhive.swarm.authelia.url` still points at
@ -230,10 +221,8 @@ in
description = ''
Run the **swarm's** telemetry collector on this host.
Derives from
{option}`services.hyperhive.deploy.allSwarmServices` with the
metrics pair it feeds: a swarm has one of these, and it belongs
wherever the shared services live rather than on every hive.
A swarm has one of these, and it belongs wherever the shared
services live rather than on every hive.
Named `swarm-otel` rather than `otel` because there are two
collectors and the tier is the whole distinction:
@ -252,10 +241,8 @@ in
Run the swarm's matrix homeserver matrix-tuwunel, in a
`hive-matrix` container on this host.
Derives from
{option}`services.hyperhive.deploy.allSwarmServices` with
the other once-per-swarm services. Set it here directly to put
the homeserver somewhere other than the host holding the rest.
Set it directly to put the homeserver somewhere other than the
host holding the rest of the swarm's services.
Client-side settings stay in
{option}`services.hyperhive.swarm.matrix.*`, which every hive
@ -299,10 +286,8 @@ in
Serve the swarm UI from this host.
Derived from
{option}`services.hyperhive.deploy.swarm-controller.enable` rather
than from
{option}`services.hyperhive.deploy.allSwarmServices`: the UI
is a view onto the controller's state and reaches it over that
{option}`services.hyperhive.deploy.swarm-controller.enable`: the
UI is a view onto the controller's state and reaches it over that
daemon's unix socket, so the host that runs the controller is the
host that can serve the UI. A hive that merely *uses* a swarm has
nothing to serve here.