deploy: separate "what this host deploys" from swarm-wide truth
`services.hyperhive.swarm.*` is meant to be identical on every host in a swarm — it describes the swarm, and every hive needs all of it to be a client. But it also carried the `enable` toggles, which are precisely the values that must differ per machine. The namespace that should be the same everywhere held the one thing that cannot be. Adds `services.hyperhive.deploy.*` for a host's deployment decisions, and moves the first of them (`swarm.grafana.enable` -> `deploy.grafana`) as the pattern for the rest. Flat and named for the thing deployed rather than grouped under a "swarm services" attribute: from the deploy side it does not matter what kind of thing each one is, and a grouping by service kind would re-encode the service-side taxonomy into a layer that does not care about it. Behaviour is unchanged. The move is a rename in the strict sense — same type, same meaning, new path — so `mkRenamedOptionModule` carries it and existing configs keep evaluating with one warning naming both paths. The renames live in the new module rather than the service modules, so the whole migration has a single home and a single file to delete when the deprecation window closes.
This commit is contained in:
parent
9a01906275
commit
b422367942
6 changed files with 73 additions and 16 deletions
|
|
@ -23,6 +23,7 @@
|
|||
let
|
||||
cfg = config.services.hyperhive;
|
||||
swarmCfg = cfg.swarm;
|
||||
deployCfg = cfg.deploy;
|
||||
|
||||
# Public hostnames of the swarm's own services, in declaration order.
|
||||
# `serviceDomains` below is this set sorted + deduplicated.
|
||||
|
|
@ -57,7 +58,7 @@ let
|
|||
# metrics UI and store looked fine for as long as only people opened
|
||||
# them; the collector's exporter — same defect, no human in the loop —
|
||||
# failed every POST and dropped the samples.
|
||||
++ lib.optional swarmCfg.grafana.enable swarmCfg.grafana.domain
|
||||
++ lib.optional deployCfg.grafana swarmCfg.grafana.domain
|
||||
++ lib.optional swarmCfg.victoriametrics.enable swarmCfg.victoriametrics.domain
|
||||
++ lib.optional swarmCfg.otel.enable swarmCfg.otel.domain
|
||||
# VictoriaLogs' vhost is new (was previously unpublished entirely — see
|
||||
|
|
|
|||
Loading…
Reference in a new issue