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