deploy: rename enableAllLocalDefaults to deploy.singleHostSwarm
Same defect as the switch below it, one tier up: it sat at the TOP of `services.hyperhive`, a namespace that is meant to be everything about hyperhive rather than the settings of a single hive. Whether this box is the whole deployment is as per-host as a decision gets. The name follows mara's sentence for what it means — "everything in the swarm is running on this host" — rather than naming its mechanism. "Defaults" was doing no work: it is not a defaults toggle, it is a claim about where the swarm lives, and the pair now reads as the containment it already was, singleHostSwarm implying allSwarmServices plus this hive. One site was a setter rather than a reference: module-eval's `allLocal` fixture passes an attrset merged into `services.hyperhive`, so its key carries the path and had to become `deploy.singleHostSwarm`. A rename by bare identifier is right for the twelve prose mentions and wrong for exactly this one, which is worth knowing before the next rename.
This commit is contained in:
parent
585269b8a3
commit
97a7b518ea
13 changed files with 35 additions and 25 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# The all-local deployment mode.
|
||||
#
|
||||
# `enableAllLocalDefaults` is a *mode*, not a default other options read:
|
||||
# `singleHostSwarm` is a *mode*, not a default other options read:
|
||||
# it says "this box is the whole deployment" and then asserts the values
|
||||
# that follow from that. mara, on the issue: it is "more of a deployment
|
||||
# mode via settings set, less a default setting".
|
||||
|
|
@ -23,7 +23,7 @@ let
|
|||
cfg = config.services.hyperhive;
|
||||
in
|
||||
{
|
||||
options.services.hyperhive.enableAllLocalDefaults = lib.mkOption {
|
||||
options.services.hyperhive.deploy.singleHostSwarm = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
example = true;
|
||||
|
|
@ -69,23 +69,23 @@ in
|
|||
# every agent at its own netns. That guard already existing is what
|
||||
# makes turning this on by default safe; without it this line would
|
||||
# break every agent's access to the forge.
|
||||
config.services.hyperhive.gateway.localHostsEntry = lib.mkDefault cfg.enableAllLocalDefaults;
|
||||
config.services.hyperhive.gateway.localHostsEntry = lib.mkDefault cfg.deploy.singleHostSwarm;
|
||||
|
||||
# Out of the `swarm` attrset below, because it is a `deploy.*` option now
|
||||
# (./deploy.nix): "does THIS host run the swarm's services" is a per-host
|
||||
# decision. Written as a path rather than folded into a second
|
||||
# `config.services.hyperhive.deploy = { … }` attrset, for the same reason
|
||||
# the ⚠️ below gives about `swarm`.
|
||||
config.services.hyperhive.deploy.allSwarmServices = lib.mkDefault cfg.enableAllLocalDefaults;
|
||||
config.services.hyperhive.deploy.allSwarmServices = lib.mkDefault cfg.deploy.singleHostSwarm;
|
||||
|
||||
config.services.hyperhive.swarm = {
|
||||
ca.autoConfigure = lib.mkDefault cfg.enableAllLocalDefaults;
|
||||
ca.autoConfigure = lib.mkDefault cfg.deploy.singleHostSwarm;
|
||||
# The queue's auth-callout nkeys. Generating them is safe exactly
|
||||
# when one operator owns both the queue and its responder, which is
|
||||
# what this mode asserts. On any other topology the seeds have to
|
||||
# reach whoever runs the responder, and minting them here would move
|
||||
# that hand-off somewhere less visible rather than removing it.
|
||||
nats.autoGenerateCallout = lib.mkDefault cfg.enableAllLocalDefaults;
|
||||
nats.autoGenerateCallout = lib.mkDefault cfg.deploy.singleHostSwarm;
|
||||
# The controller's queue coordinates. Co-location is what makes these
|
||||
# derivable at all — loopback only reaches the queue when the queue is
|
||||
# here, and the minted client secret only exists on the host authelia
|
||||
|
|
@ -107,10 +107,10 @@ in
|
|||
# The *requirement* stays in `swarm-controller.nix` as an assertion:
|
||||
# needing a queue is the controller's own property in every topology,
|
||||
# and only the convenience is local.
|
||||
controller.queue.natsUrl = lib.mkIf cfg.enableAllLocalDefaults (
|
||||
controller.queue.natsUrl = lib.mkIf cfg.deploy.singleHostSwarm (
|
||||
lib.mkDefault "nats://127.0.0.1:${toString config.services.hyperhive.swarm.nats.port}"
|
||||
);
|
||||
controller.queue.clientSecretFile = lib.mkIf cfg.enableAllLocalDefaults (
|
||||
controller.queue.clientSecretFile = lib.mkIf cfg.deploy.singleHostSwarm (
|
||||
lib.mkDefault "${config.services.hyperhive.swarm.authelia.hostClientSecretDir}/swarm-controller.secret"
|
||||
);
|
||||
};
|
||||
|
|
@ -128,5 +128,5 @@ in
|
|||
# the per-host fact `swarm.*` may not carry. The ⚠️ collision note above
|
||||
# does not apply here — that one is about two definitions of `swarm`
|
||||
# itself, and this is a different top-level path.
|
||||
config.services.hyperhive.deploy.swarm-controller.enable = lib.mkDefault cfg.enableAllLocalDefaults;
|
||||
config.services.hyperhive.deploy.swarm-controller.enable = lib.mkDefault cfg.deploy.singleHostSwarm;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue