feat(inventory/instances): add extendSettings as argument to perInstance, perMachine

This commit is contained in:
Johannes Kirschbauer
2025-04-08 13:09:51 +02:00
parent 9a34977842
commit 4913d2db87
2 changed files with 28 additions and 35 deletions

View File

@@ -132,6 +132,11 @@ let
in
makeModuleExtensible (f args);
# Extend evalModules result by a module, returns .config.
extendEval =
eval: m:
(eval.extendModules { modules = lib.toList m; } ).config;
/**
Apply the settings to the instance
@@ -147,19 +152,19 @@ let
# TODO: evaluate the settings against the interface
# settings = (evalMachineSettings { inherit roleName instanceName; inherit (v) settings; }).config;
settings = (
makeExtensibleConfig evalMachineSettings {
evalMachineSettings {
inherit roleName instanceName machineName;
inherit (v) settings;
}
);
).config;
}) role.machines;
# TODO: evaluate the settings against the interface
settings = (
makeExtensibleConfig evalMachineSettings {
evalMachineSettings {
inherit roleName instanceName;
inherit (role) settings;
}
);
).config;
}) instance.roles;
in
{
@@ -328,7 +333,14 @@ in
roles = lib.attrNames (lib.filterAttrs (_n: v: v.machines ? ${machineName}) roles);
};
settings = (
makeExtensibleConfig evalMachineSettings {
evalMachineSettings {
inherit roleName instanceName machineName;
settings =
config.instances.${instanceName}.roles.${roleName}.machines.${machineName}.settings or { };
}
).config;
extendSettings = extendEval (
evalMachineSettings {
inherit roleName instanceName machineName;
settings =
config.instances.${instanceName}.roles.${roleName}.machines.${machineName}.settings or { };
@@ -396,6 +408,7 @@ in
in
uniqueStrings (collectRoles machineScope.instances);
};
# TODO: instances.<instanceName>.roles should contain all roles, even if nobody has the role
inherit (machineScope) instances;
# There are no machine settings.