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 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] } } # roles = { ${role_name} :: { machines :: [string] } }
allServers = lib.foldlAttrs ( allServers = lib.foldlAttrs (
acc: _instanceName: instanceConfig: acc: _instanceName: instanceConfig:

View File

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

View File

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