Inventory/interface: optional instances, allow to use modules without inventory

This commit is contained in:
Johannes Kirschbauer
2024-10-02 11:01:06 +02:00
parent 4a469ed312
commit d96cf90a52
3 changed files with 8 additions and 4 deletions

View File

@@ -5,7 +5,8 @@
...
}:
let
instances = config.clan.inventory.services.borgbackup;
# Instances might be empty, if the module is not used via the inventory
instances = config.clan.inventory.services.borgbackup or { };
# roles = { ${role_name} :: { machines :: [string] } }
allServers = lib.foldlAttrs (
acc: _instanceName: instanceConfig:

View File

@@ -4,9 +4,11 @@ let
machineDir = clanDir + "/machines/";
inherit (config.clan.core) machineName;
instances = config.clan.inventory.services.borgbackup;
# roles = { ${role_name} :: { machines :: [string] } }
# Instances might be empty, if the module is not used via the inventory
#
# Type: { ${instanceName} :: { roles :: Roles } }
# Roles :: { ${role_name} :: { machines :: [string] } }
instances = config.clan.inventory.services.borgbackup or { };
allClients = lib.foldlAttrs (
acc: _instanceName: instanceConfig:

View File

@@ -48,6 +48,7 @@ let
in
{
options.clan.inventory.services = lib.mkOption {
default = { };
description = ''
Configuration for each inventory service.