Watch
0
0
Fork
You've already forked hyperhive
0

module-eval: the always-on hive collector put a scrape target and an identity demand on hives that assumed none

This commit is contained in:
atlas 2026-10-18 23:44:32 +02:00 • committed by mara
commit 249aab6642
2 changed files with 15 additions and 3 deletions

View file

@ -156,7 +156,12 @@ let
let let
es = swarmServiceEnables bare; es = swarmServiceEnables bare;
in in
lib.length (lib.attrNames es) == 9 && !lib.any lib.id (lib.attrValues es); # `otel` is the hive tier, which every hive runs and so `bare` does
# too: it is the control that the lookup finds what is there, and the
# other eight are the swarm's shared services.
lib.length (lib.attrNames es) == 9
&& es.otel
&& !lib.any lib.id (lib.attrValues (removeAttrs es [ "otel" ]));
} }
{ {
name = "the all-local mode turns the swarm controller on"; name = "the all-local mode turns the swarm controller on";
@ -1003,7 +1008,9 @@ let
# passes every arm above while handing a collector-less hive a scrape # passes every arm above while handing a collector-less hive a scrape
# target for a port nothing binds. # target for a port nothing binds.
name = "a hive with no collector declares no self-scrape target"; name = "a hive with no collector declares no self-scrape target";
ok = bare.services.hyperhive.otel.scrapeTargets == { }; ok =
centralToggleOff.services.hyperhive.otel.scrapeTargets == { }
&& bare.services.hyperhive.otel.scrapeTargets ? collector;
} }
{ {
# Absence arm, and the one that matters: claiming a name this host does # Absence arm, and the one that matters: claiming a name this host does

View file

@ -67,7 +67,12 @@ let
deploy.swarm-controller.baoClientKeyFile = "/var/lib/swarm-controller/bao-client-key.pem"; deploy.swarm-controller.baoClientKeyFile = "/var/lib/swarm-controller/bao-client-key.pem";
}; };
remote = hiveWithController ( remote = hiveWithController (
lib.recursiveUpdate remoteSecrets { deploy.swarm-controller.enable = true; } lib.recursiveUpdate remoteSecrets {
deploy.swarm-controller.enable = true;
# The hive collector every hive runs demands an identity to present to
# the swarm; a hive with no store leaf names the secret file by hand.
otel.clientSecretFile = "/var/lib/hive-otel-oidc/client.secret";
}
); );
# The same hive given its own store leaf by hand, which is what turns # The same hive given its own store leaf by hand, which is what turns