diff --git a/lib/inventory/build-inventory/builder/default.nix b/lib/inventory/build-inventory/builder/default.nix index e4648354d..01e7d6b6b 100644 --- a/lib/inventory/build-inventory/builder/default.nix +++ b/lib/inventory/build-inventory/builder/default.nix @@ -50,7 +50,10 @@ let { machineImports = [ (lib.optionalAttrs (machineConfig.deploy.targetHost or null != null) { - config.clan.core.networking.targetHost = machineConfig.deploy.targetHost; + config.clan.core.networking.targetHost = lib.mkForce machineConfig.deploy.targetHost; + }) + (lib.optionalAttrs (machineConfig.deploy.buildHost or null != null) { + config.clan.core.networking.buildHost = lib.mkForce machineConfig.deploy.buildHost; }) ]; assertions = { }; diff --git a/lib/inventory/build-inventory/interface.nix b/lib/inventory/build-inventory/interface.nix index d1caca220..cd7cc628a 100644 --- a/lib/inventory/build-inventory/interface.nix +++ b/lib/inventory/build-inventory/interface.nix @@ -347,7 +347,12 @@ in type = types.listOf types.str; }; deploy.targetHost = lib.mkOption { - description = "Configuration for the deployment of the machine"; + description = "SSH address of the host to deploy the machine to"; + default = null; + type = types.nullOr types.str; + }; + deploy.buildHost = lib.mkOption { + description = "SSH address of the host to build the machine on"; default = null; type = types.nullOr types.str; }; diff --git a/pkgs/clan-cli/clan_lib/nix_models/clan.py b/pkgs/clan-cli/clan_lib/nix_models/clan.py index f68db5c8a..b3d045f61 100644 --- a/pkgs/clan-cli/clan_lib/nix_models/clan.py +++ b/pkgs/clan-cli/clan_lib/nix_models/clan.py @@ -58,9 +58,11 @@ class InventoryInstance(TypedDict): +InventoryMachineDeployBuildhostType = str | None InventoryMachineDeployTargethostType = str | None class InventoryMachineDeploy(TypedDict): + buildHost: NotRequired[InventoryMachineDeployBuildhostType] targetHost: NotRequired[InventoryMachineDeployTargethostType] diff --git a/pkgs/clan-cli/clan_lib/nix_models/inventory.py b/pkgs/clan-cli/clan_lib/nix_models/inventory.py index 1d57a281b..fa6f459f5 100644 --- a/pkgs/clan-cli/clan_lib/nix_models/inventory.py +++ b/pkgs/clan-cli/clan_lib/nix_models/inventory.py @@ -58,9 +58,11 @@ class Instance(TypedDict): +MachineDeployBuildhostType = str MachineDeployTargethostType = str class MachineDeploy(TypedDict): + buildHost: NotRequired[MachineDeployBuildhostType] targetHost: NotRequired[MachineDeployTargethostType]