From c74145fe240c40f0903ea7de350553dcdf234c15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20=E2=80=9CNiols=E2=80=9D=20Jeannerod?= <nicolas.jeannerod@moduscreate.com> Date: Tue, 25 Feb 2025 11:50:46 +0100 Subject: [PATCH] Split machine definitions into subdirectories --- infra/flake-part.nix | 56 +++++++++++-------- infra/{ => machines}/fedi200/default.nix | 0 infra/{ => machines}/fedi201/default.nix | 0 infra/{ => machines}/vm02116/default.nix | 0 infra/{ => machines}/vm02116/forgejo.nix | 0 infra/{ => machines}/vm02179/default.nix | 0 infra/{ => machines}/vm02186/default.nix | 0 infra/{ => machines}/vm02187/default.nix | 0 infra/{ => machines}/vm02187/wiki.nix | 0 infra/{ => test-machines}/test01/default.nix | 0 .../test01/ssh_host_ed25519_key | 0 .../test01/ssh_host_ed25519_key.pub | 0 infra/{ => test-machines}/test02/default.nix | 0 .../test02/ssh_host_ed25519_key | 0 .../test02/ssh_host_ed25519_key.pub | 0 infra/{ => test-machines}/test03/default.nix | 0 .../test03/ssh_host_ed25519_key | 0 .../test03/ssh_host_ed25519_key.pub | 0 infra/{ => test-machines}/test04/default.nix | 0 .../test04/ssh_host_ed25519_key | 0 .../test04/ssh_host_ed25519_key.pub | 0 infra/{ => test-machines}/test05/default.nix | 0 .../test05/ssh_host_ed25519_key | 0 .../test05/ssh_host_ed25519_key.pub | 0 24 files changed, 33 insertions(+), 23 deletions(-) rename infra/{ => machines}/fedi200/default.nix (100%) rename infra/{ => machines}/fedi201/default.nix (100%) rename infra/{ => machines}/vm02116/default.nix (100%) rename infra/{ => machines}/vm02116/forgejo.nix (100%) rename infra/{ => machines}/vm02179/default.nix (100%) rename infra/{ => machines}/vm02186/default.nix (100%) rename infra/{ => machines}/vm02187/default.nix (100%) rename infra/{ => machines}/vm02187/wiki.nix (100%) rename infra/{ => test-machines}/test01/default.nix (100%) rename infra/{ => test-machines}/test01/ssh_host_ed25519_key (100%) rename infra/{ => test-machines}/test01/ssh_host_ed25519_key.pub (100%) rename infra/{ => test-machines}/test02/default.nix (100%) rename infra/{ => test-machines}/test02/ssh_host_ed25519_key (100%) rename infra/{ => test-machines}/test02/ssh_host_ed25519_key.pub (100%) rename infra/{ => test-machines}/test03/default.nix (100%) rename infra/{ => test-machines}/test03/ssh_host_ed25519_key (100%) rename infra/{ => test-machines}/test03/ssh_host_ed25519_key.pub (100%) rename infra/{ => test-machines}/test04/default.nix (100%) rename infra/{ => test-machines}/test04/ssh_host_ed25519_key (100%) rename infra/{ => test-machines}/test04/ssh_host_ed25519_key.pub (100%) rename infra/{ => test-machines}/test05/default.nix (100%) rename infra/{ => test-machines}/test05/ssh_host_ed25519_key (100%) rename infra/{ => test-machines}/test05/ssh_host_ed25519_key.pub (100%) diff --git a/infra/flake-part.nix b/infra/flake-part.nix index 4a4a0718..4c4e7f3a 100644 --- a/infra/flake-part.nix +++ b/infra/flake-part.nix @@ -14,17 +14,19 @@ let ; inherit (lib.attrsets) genAttrs; - ## Given a machine's name, make a resource module, except for its missing - ## provider. (Depending on the use of that resource, we will provide a - ## different one.) - makeResourceModule = vmName: { - _module.args = { inherit inputs; }; - imports = [ - ./common/resource.nix - (./. + "/${vmName}") - ]; - fediversityVm.name = vmName; - }; + ## Given a machine's name and whether it is a test VM, make a resource module, + ## except for its missing provider. (Depending on the use of that resource, we + ## will provide a different one.) + makeResourceModule = + { vmName, isTestVm }: + { + _module.args = { inherit inputs; }; + imports = [ + ./common/resource.nix + (if isTestVm then ./test-machines + "/${vmName}" else ./machines + "/${vmName}") + ]; + fediversityVm.name = vmName; + }; ## Given a list of machine names, make a deployment with those machines' ## configurations as resources. @@ -37,7 +39,10 @@ let type = providers.local.exec; imports = [ inputs.nixops4-nixos.modules.nixops4Resource.nixos - (makeResourceModule vmName) + (makeResourceModule { + inherit vmName; + isTestVm = false; + }) ]; }); }; @@ -55,7 +60,10 @@ let type = providers.local.exec; imports = [ inputs.nixops4-nixos.modules.nixops4Resource.nixos - (makeResourceModule vmName) + (makeResourceModule { + inherit vmName; + isTestVm = false; + }) { nixos.module = vmConfig; } { nixos.module = self.nixosModules.fediversity; } ]; @@ -78,25 +86,25 @@ let }; makeResourceConfig = - vmName: + vm: (evalModules { modules = [ nixops4ResourceNixosMockOptions - (makeResourceModule vmName) + (makeResourceModule vm) ]; }).config; ## Given a VM name, make a NixOS configuration for this machine. makeConfiguration = - vmName: + isTestVm: vmName: inputs.nixpkgs.lib.nixosSystem { modules = [ - (makeResourceConfig vmName).nixos.module + (makeResourceConfig { inherit vmName isTestVm; }).nixos.module ]; }; - makeVmOptions = vmName: { - inherit ((makeResourceConfig vmName).fediversityVm) + makeVmOptions = isTestVm: vmName: { + inherit ((makeResourceConfig { inherit vmName isTestVm; }).fediversityVm) proxmox vmId sockets @@ -206,8 +214,10 @@ in default = makeDeployment machines; test = makeTestDeployment testMachineConfigurations; }; - flake.nixosConfigurations = genAttrs ( - machines ++ attrNames testMachineConfigurations - ) makeConfiguration; - flake.vmOptions = genAttrs (machines ++ attrNames testMachineConfigurations) makeVmOptions; + flake.nixosConfigurations = + genAttrs machines (makeConfiguration false) + // genAttrs (attrNames testMachineConfigurations) (makeConfiguration true); + flake.vmOptions = + genAttrs machines (makeVmOptions false) + // genAttrs (attrNames testMachineConfigurations) (makeVmOptions true); } diff --git a/infra/fedi200/default.nix b/infra/machines/fedi200/default.nix similarity index 100% rename from infra/fedi200/default.nix rename to infra/machines/fedi200/default.nix diff --git a/infra/fedi201/default.nix b/infra/machines/fedi201/default.nix similarity index 100% rename from infra/fedi201/default.nix rename to infra/machines/fedi201/default.nix diff --git a/infra/vm02116/default.nix b/infra/machines/vm02116/default.nix similarity index 100% rename from infra/vm02116/default.nix rename to infra/machines/vm02116/default.nix diff --git a/infra/vm02116/forgejo.nix b/infra/machines/vm02116/forgejo.nix similarity index 100% rename from infra/vm02116/forgejo.nix rename to infra/machines/vm02116/forgejo.nix diff --git a/infra/vm02179/default.nix b/infra/machines/vm02179/default.nix similarity index 100% rename from infra/vm02179/default.nix rename to infra/machines/vm02179/default.nix diff --git a/infra/vm02186/default.nix b/infra/machines/vm02186/default.nix similarity index 100% rename from infra/vm02186/default.nix rename to infra/machines/vm02186/default.nix diff --git a/infra/vm02187/default.nix b/infra/machines/vm02187/default.nix similarity index 100% rename from infra/vm02187/default.nix rename to infra/machines/vm02187/default.nix diff --git a/infra/vm02187/wiki.nix b/infra/machines/vm02187/wiki.nix similarity index 100% rename from infra/vm02187/wiki.nix rename to infra/machines/vm02187/wiki.nix diff --git a/infra/test01/default.nix b/infra/test-machines/test01/default.nix similarity index 100% rename from infra/test01/default.nix rename to infra/test-machines/test01/default.nix diff --git a/infra/test01/ssh_host_ed25519_key b/infra/test-machines/test01/ssh_host_ed25519_key similarity index 100% rename from infra/test01/ssh_host_ed25519_key rename to infra/test-machines/test01/ssh_host_ed25519_key diff --git a/infra/test01/ssh_host_ed25519_key.pub b/infra/test-machines/test01/ssh_host_ed25519_key.pub similarity index 100% rename from infra/test01/ssh_host_ed25519_key.pub rename to infra/test-machines/test01/ssh_host_ed25519_key.pub diff --git a/infra/test02/default.nix b/infra/test-machines/test02/default.nix similarity index 100% rename from infra/test02/default.nix rename to infra/test-machines/test02/default.nix diff --git a/infra/test02/ssh_host_ed25519_key b/infra/test-machines/test02/ssh_host_ed25519_key similarity index 100% rename from infra/test02/ssh_host_ed25519_key rename to infra/test-machines/test02/ssh_host_ed25519_key diff --git a/infra/test02/ssh_host_ed25519_key.pub b/infra/test-machines/test02/ssh_host_ed25519_key.pub similarity index 100% rename from infra/test02/ssh_host_ed25519_key.pub rename to infra/test-machines/test02/ssh_host_ed25519_key.pub diff --git a/infra/test03/default.nix b/infra/test-machines/test03/default.nix similarity index 100% rename from infra/test03/default.nix rename to infra/test-machines/test03/default.nix diff --git a/infra/test03/ssh_host_ed25519_key b/infra/test-machines/test03/ssh_host_ed25519_key similarity index 100% rename from infra/test03/ssh_host_ed25519_key rename to infra/test-machines/test03/ssh_host_ed25519_key diff --git a/infra/test03/ssh_host_ed25519_key.pub b/infra/test-machines/test03/ssh_host_ed25519_key.pub similarity index 100% rename from infra/test03/ssh_host_ed25519_key.pub rename to infra/test-machines/test03/ssh_host_ed25519_key.pub diff --git a/infra/test04/default.nix b/infra/test-machines/test04/default.nix similarity index 100% rename from infra/test04/default.nix rename to infra/test-machines/test04/default.nix diff --git a/infra/test04/ssh_host_ed25519_key b/infra/test-machines/test04/ssh_host_ed25519_key similarity index 100% rename from infra/test04/ssh_host_ed25519_key rename to infra/test-machines/test04/ssh_host_ed25519_key diff --git a/infra/test04/ssh_host_ed25519_key.pub b/infra/test-machines/test04/ssh_host_ed25519_key.pub similarity index 100% rename from infra/test04/ssh_host_ed25519_key.pub rename to infra/test-machines/test04/ssh_host_ed25519_key.pub diff --git a/infra/test05/default.nix b/infra/test-machines/test05/default.nix similarity index 100% rename from infra/test05/default.nix rename to infra/test-machines/test05/default.nix diff --git a/infra/test05/ssh_host_ed25519_key b/infra/test-machines/test05/ssh_host_ed25519_key similarity index 100% rename from infra/test05/ssh_host_ed25519_key rename to infra/test-machines/test05/ssh_host_ed25519_key diff --git a/infra/test05/ssh_host_ed25519_key.pub b/infra/test-machines/test05/ssh_host_ed25519_key.pub similarity index 100% rename from infra/test05/ssh_host_ed25519_key.pub rename to infra/test-machines/test05/ssh_host_ed25519_key.pub