This commit is contained in:
Abel Luck 2026-02-27 14:49:50 +01:00
parent 93749a66a9
commit f6e47d592c
2 changed files with 30 additions and 4 deletions

View file

@ -6,14 +6,24 @@
}: }:
let let
cfg = config.services.buildbot-nix.nix-build-autoscaler; cfg = config.services.buildbot-nix.nix-build-autoscaler;
defaultExtensionPackage =
if builtins.hasAttr "buildbot-autoscale-ext" pkgs then
pkgs."buildbot-autoscale-ext"
else if
builtins.hasAttr "python3Packages" pkgs
&& builtins.hasAttr "buildbot-autoscale-ext" pkgs.python3Packages
then
pkgs.python3Packages."buildbot-autoscale-ext"
else
null;
in in
{ {
options.services.buildbot-nix.nix-build-autoscaler = { options.services.buildbot-nix.nix-build-autoscaler = {
enable = lib.mkEnableOption "buildbot-nix autoscaler gate integration"; enable = lib.mkEnableOption "buildbot-nix autoscaler gate integration";
extensionPackage = lib.mkOption { extensionPackage = lib.mkOption {
type = lib.types.package; type = lib.types.nullOr lib.types.package;
default = pkgs.buildbot-autoscale-ext; default = defaultExtensionPackage;
description = "Package providing buildbot_autoscale_ext."; description = "Package providing buildbot_autoscale_ext.";
}; };
@ -125,6 +135,13 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
assertions = [ assertions = [
{
assertion = cfg.extensionPackage != null;
message = ''
services.buildbot-nix.nix-build-autoscaler.extensionPackage is not set and
pkgs.buildbot-autoscale-ext was not found. Configure extensionPackage explicitly.
'';
}
{ {
assertion = cfg.builderClusterHost != null; assertion = cfg.builderClusterHost != null;
message = "services.buildbot-nix.nix-build-autoscaler.builderClusterHost must be set."; message = "services.buildbot-nix.nix-build-autoscaler.builderClusterHost must be set.";

View file

@ -6,6 +6,8 @@
}: }:
let let
cfg = config.services.nix-builder-autoscaler; cfg = config.services.nix-builder-autoscaler;
defaultAutoscalerPackage =
if builtins.hasAttr "nix-builder-autoscaler" pkgs then pkgs."nix-builder-autoscaler" else null;
generatedConfigPath = "/run/nix-builder-autoscaler/config.toml"; generatedConfigPath = "/run/nix-builder-autoscaler/config.toml";
tomlStringList = values: "[${lib.concatMapStringsSep ", " (value: ''"${value}"'') values}]"; tomlStringList = values: "[${lib.concatMapStringsSep ", " (value: ''"${value}"'') values}]";
in in
@ -14,8 +16,8 @@ in
enable = lib.mkEnableOption "nix-builder-autoscaler daemon"; enable = lib.mkEnableOption "nix-builder-autoscaler daemon";
package = lib.mkOption { package = lib.mkOption {
type = lib.types.package; type = lib.types.nullOr lib.types.package;
default = pkgs.nix-builder-autoscaler; default = defaultAutoscalerPackage;
description = "Package providing nix_builder_autoscaler."; description = "Package providing nix_builder_autoscaler.";
}; };
@ -209,6 +211,13 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
assertions = [ assertions = [
{
assertion = cfg.package != null;
message = ''
services.nix-builder-autoscaler.package is not set and pkgs.nix-builder-autoscaler
was not found. Configure package explicitly.
'';
}
{ {
assertion = cfg.aws.launchTemplateIdFile != null; assertion = cfg.aws.launchTemplateIdFile != null;
message = "services.nix-builder-autoscaler.aws.launchTemplateIdFile must be set."; message = "services.nix-builder-autoscaler.aws.launchTemplateIdFile must be set.";