fix(3167): wire the swarm-ui package from the flake, not a pkgs attr

The option defaulted to pkgs.swarm-ui, which does not exist: this
project has no overlay - flake.nix's nixosModules.default wires package
options with mkDefault from its own package set, and swarm.controller
does exactly that. The default would have failed to evaluate on any real
deployment, not just in a test harness.

Found by the gate forcing .package: the earlier probes passed because
they only read option values that never touched it.
This commit is contained in:
atlas 2026-08-12 17:49:21 +02:00
commit 40e1ed2967
2 changed files with 10 additions and 3 deletions

View file

@ -148,6 +148,9 @@
services.hyperhive.swarm.controller.swarmctlPackage = services.hyperhive.swarm.controller.swarmctlPackage =
lib.mkDefault lib.mkDefault
self.packages.${pkgs.stdenv.hostPlatform.system}.swarmctl; self.packages.${pkgs.stdenv.hostPlatform.system}.swarmctl;
services.hyperhive.swarm.ui.package =
lib.mkDefault
self.packages.${pkgs.stdenv.hostPlatform.system}.swarm-ui;
services.hyperhive.gateway.swaggerUiTheme = services.hyperhive.gateway.swaggerUiTheme =
lib.mkDefault lib.mkDefault
self.packages.${pkgs.stdenv.hostPlatform.system}.swagger-ui-theme; self.packages.${pkgs.stdenv.hostPlatform.system}.swagger-ui-theme;

View file

@ -9,7 +9,6 @@
{ {
lib, lib,
config, config,
pkgs,
... ...
}: }:
let let
@ -57,12 +56,17 @@ in
package = lib.mkOption { package = lib.mkOption {
type = lib.types.package; type = lib.types.package;
default = pkgs.swarm-ui; defaultText = lib.literalExpression "hyperhive.packages.\${system}.swarm-ui";
defaultText = lib.literalExpression "pkgs.swarm-ui";
description = '' description = ''
Static build of the swarm UI. nginx serves this store path Static build of the swarm UI. nginx serves this store path
directly there is no server-side component beyond the directly there is no server-side component beyond the
controller's own API. controller's own API.
Wired by default from this flake's own package set (see
`flake.nix`), the same way `swarm.controller.package` is. There
is deliberately **no overlay** in this project, so a
`pkgs.swarm-ui` default here would name an attribute that does
not exist on any real deployment.
''; '';
}; };
}; };