nix: run swarm-ui wherever swarm-controller runs
Remove deploy.swarm-ui.enable. Every reader (the swarm-ui vhost, the authelia operator rule for the swarm apex, hive-network's anyServiceEnabled) now reads deploy.swarm-controller.enable, and the controller's webhook public URL is gated on the swarm domain alone, since the vhost it names exists wherever the daemon does. Both spellings of the old switch (deploy.swarm-ui.enable and the already-renamed swarm.ui.enable) become mkRemovedOptionModule entries, so a host that still sets either fails evaluation with a message naming the controller toggle instead of silently changing. Ruling (mara, #3742): "swarm-ui always runs wherever controller runs". Part of #3742
This commit is contained in:
parent
70c13aee7a
commit
f9954b91b4
10 changed files with 83 additions and 59 deletions
|
|
@ -66,10 +66,10 @@ let
|
|||
apex = if swarmCfg.domain == null then "swarm.invalid" else swarmCfg.domain;
|
||||
in
|
||||
{
|
||||
# `enable` is `services.hyperhive.deploy.swarm-ui.enable` — see
|
||||
# ./deploy.nix, where it derives from the controller's own deploy
|
||||
# toggle for the same reason. There is no `domain` option: the UI answers
|
||||
# on the swarm apex, which the swarm already declares once.
|
||||
# No `enable` of its own: the UI is on wherever
|
||||
# `services.hyperhive.deploy.swarm-controller.enable` is, because it reaches
|
||||
# that daemon over its unix socket. There is no `domain` option: the UI
|
||||
# answers on the swarm apex, which the swarm already declares once.
|
||||
imports = [
|
||||
(lib.mkRemovedOptionModule [ "services" "hyperhive" "swarm" "ui" "domain" ] ''
|
||||
The swarm UI answers on services.hyperhive.swarm.domain and nothing
|
||||
|
|
@ -83,9 +83,9 @@ in
|
|||
'')
|
||||
];
|
||||
|
||||
# ⚠️ `services.hyperhive.swarm.ui` is not a namespace. Its two options,
|
||||
# `enable` and `package`, live under `deploy.swarm-ui`, and the `swarm.ui`
|
||||
# paths survive purely as renames in ./deploy.nix.
|
||||
# ⚠️ `services.hyperhive.swarm.ui` is not a namespace. Its `package` lives
|
||||
# under `deploy.swarm-ui`, and the `swarm.ui` paths survive purely as
|
||||
# rename/removal entries in ./deploy.nix.
|
||||
options.services.hyperhive.deploy.swarm-ui.package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
defaultText = lib.literalExpression "hyperhive.packages.\${system}.swarm-ui";
|
||||
|
|
@ -102,7 +102,7 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
config = lib.mkIf deployCfg.swarm-ui.enable {
|
||||
config = lib.mkIf deployCfg.swarm-controller.enable {
|
||||
assertions = [
|
||||
{
|
||||
# The `_` default server already answers for the hive domain
|
||||
|
|
|
|||
Loading…
Reference in a new issue