From 27c59e1af849ae6da7c54bf4231bc498ef1d84e5 Mon Sep 17 00:00:00 2001 From: Kiara Grouwstra Date: Sat, 9 Aug 2025 23:31:25 +0200 Subject: [PATCH] un-nixops --- deployment/check/common/deployerNode.nix | 4 +- .../check/data-model/common-nixosTest.nix | 52 ++++------------- deployment/check/data-model/default.nix | 4 +- deployment/check/data-model/deployment.nix | 58 ++++++++++--------- .../check/data-model/flake-under-test.nix | 22 ------- deployment/check/data-model/nixosTest.nix | 8 +-- 6 files changed, 49 insertions(+), 99 deletions(-) delete mode 100644 deployment/check/data-model/flake-under-test.nix diff --git a/deployment/check/common/deployerNode.nix b/deployment/check/common/deployerNode.nix index dcb5deef..d63591c3 100644 --- a/deployment/check/common/deployerNode.nix +++ b/deployment/check/common/deployerNode.nix @@ -54,9 +54,7 @@ in system.extraDependencies = [ - inputs.nixops4 - inputs.nixops4-nixos - inputs.nixpkgs + sources.nixpkgs sources.flake-parts sources.nixpkgs diff --git a/deployment/check/data-model/common-nixosTest.nix b/deployment/check/data-model/common-nixosTest.nix index cb52ed9f..aa912dc3 100644 --- a/deployment/check/data-model/common-nixosTest.nix +++ b/deployment/check/data-model/common-nixosTest.nix @@ -21,25 +21,17 @@ let optionalString ; inherit (hostPkgs) - runCommandNoCC writeText - system ; forConcat = xs: f: concatStringsSep "\n" (map f xs); - ## We will need to override some inputs by the empty flake, so we make one. - emptyFlake = runCommandNoCC "empty-flake" { } '' - mkdir $out - echo "{ outputs = { self }: {}; }" > $out/flake.nix - ''; - in { _class = "nixosTest"; imports = [ - ./sharedOptions.nix + ../common/sharedOptions.nix ]; options = { @@ -67,16 +59,15 @@ in config = { sourceFileset = fileset.unions [ - # NOTE: not the flake itself; it will be overridden. ../../../mkFlake.nix ../../../flake.lock ../../../npins + ../../data-model.nix + ../../function.nix - ./sharedOptions.nix - ./targetNode.nix - ./targetResource.nix - - (config.pathToCwd + "/flake-under-test.nix") + ../common/sharedOptions.nix + ../common/targetNode.nix + ../common/targetResource.nix ]; acmeNodeIP = config.nodes.acme.networking.primaryIPAddress; @@ -84,7 +75,7 @@ in nodes = { deployer = { - imports = [ ./deployerNode.nix ]; + imports = [ ../common/deployerNode.nix ]; _module.args = { inherit inputs sources; }; enableAcme = config.enableAcme; acmeNodeIP = config.nodes.acme.networking.primaryIPAddress; @@ -111,7 +102,7 @@ in // genAttrs config.targetMachines (_: { - imports = [ ./targetNode.nix ]; + imports = [ ../common/targetNode.nix ]; _module.args = { inherit inputs sources; }; enableAcme = config.enableAcme; acmeNodeIP = if config.enableAcme then config.nodes.acme.networking.primaryIPAddress else null; @@ -163,31 +154,8 @@ in deployer.succeed(f"echo '{host_key}' > ${config.pathFromRoot}/${tm}_host_key.pub") '')} - ## NOTE: This is super slow. It could probably be optimised in Nix, for - ## instance by allowing to grab things directly from the host's store. - ## - ## NOTE: We use the repository as-is (cf `src` above), overriding only - ## `flake.nix` by our `flake-under-test.nix`. We also override the flake - ## lock file to use locally available inputs, as we cannot download them. - ## - with subtest("Override the flake and its lock"): - deployer.succeed("cp ${config.pathFromRoot}/flake-under-test.nix flake.nix") - deployer.succeed(""" - nix flake lock --extra-experimental-features 'flakes nix-command' \ - --offline -v \ - --override-input nixops4 ${inputs.nixops4.packages.${system}.flake-in-a-bottle} \ - \ - --override-input nixops4-nixos ${inputs.nixops4-nixos} \ - --override-input nixops4-nixos/flake-parts ${inputs.nixops4-nixos.inputs.flake-parts} \ - --override-input nixops4-nixos/flake-parts/nixpkgs-lib ${inputs.nixops4-nixos.inputs.flake-parts.inputs.nixpkgs-lib} \ - --override-input nixops4-nixos/nixops4-nixos ${emptyFlake} \ - --override-input nixops4-nixos/nixpkgs ${inputs.nixops4-nixos.inputs.nixpkgs} \ - --override-input nixops4-nixos/nixops4 ${ - inputs.nixops4-nixos.inputs.nixops4.packages.${system}.flake-in-a-bottle - } \ - --override-input nixops4-nixos/git-hooks-nix ${emptyFlake} \ - ; - """) + # with subtest("Override the flake and its lock"): + # deployer.succeed("cp ${config.pathFromRoot}/flake-under-test.nix flake.nix") ${optionalString config.enableAcme '' with subtest("Set up handmade DNS"): diff --git a/deployment/check/data-model/default.nix b/deployment/check/data-model/default.nix index 6479b6be..5eafbbbc 100644 --- a/deployment/check/data-model/default.nix +++ b/deployment/check/data-model/default.nix @@ -6,7 +6,9 @@ runNixOSTest { imports = [ - ../common/nixosTest.nix + ../../data-model.nix + ../../function.nix + ./common-nixosTest.nix ./nixosTest.nix ]; _module.args = { inherit inputs sources; }; diff --git a/deployment/check/data-model/deployment.nix b/deployment/check/data-model/deployment.nix index 14a35ac6..2074edc0 100644 --- a/deployment/check/data-model/deployment.nix +++ b/deployment/check/data-model/deployment.nix @@ -1,36 +1,40 @@ { inputs, - sources, + # sources, lib, - providers, + # providers, ... }: let - inherit (import ./constants.nix) targetMachines pathToRoot pathFromRoot; -in - -{ - providers = { - inherit (inputs.nixops4.modules.nixops4Provider) local; - }; - - resources = lib.genAttrs targetMachines (nodeName: { - type = providers.local.exec; - - imports = [ - inputs.nixops4-nixos.modules.nixops4Resource.nixos - ../common/targetResource.nix - ]; - - _module.args = { inherit inputs sources; }; - - inherit nodeName pathToRoot pathFromRoot; - - nixos.module = - { pkgs, ... }: - { - environment.systemPackages = [ pkgs.${nodeName} ]; + # inherit (import ./constants.nix) targetMachines pathToRoot pathFromRoot; + eval = + module: + (lib.evalModules { + specialArgs = { + inherit inputs; }; - }); + modules = [ + module + ../../data-model.nix + ]; + }).config; + fediversity = eval ( + { ... }: + { + config = { + environments.single-nixos-vm = + { ... }: + { + implementation = requests: { + input = requests; + output = { }; + }; + }; + }; + } + ); +in +fediversity.environments.single-nixos-vm.deployment { + enable = true; } diff --git a/deployment/check/data-model/flake-under-test.nix b/deployment/check/data-model/flake-under-test.nix deleted file mode 100644 index b9e3fb4b..00000000 --- a/deployment/check/data-model/flake-under-test.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - inputs = { - nixops4.follows = "nixops4-nixos/nixops4"; - nixops4-nixos.url = "github:nixops4/nixops4-nixos"; - }; - - outputs = - inputs: - import ./mkFlake.nix inputs ( - { inputs, sources, ... }: - { - imports = [ - inputs.nixops4.modules.flake.default - ]; - - nixops4Deployments.check-deployment-basic = { - imports = [ ./deployment/check/basic/deployment.nix ]; - _module.args = { inherit inputs sources; }; - }; - } - ); -} diff --git a/deployment/check/data-model/nixosTest.nix b/deployment/check/data-model/nixosTest.nix index d17ee833..b07b376f 100644 --- a/deployment/check/data-model/nixosTest.nix +++ b/deployment/check/data-model/nixosTest.nix @@ -1,4 +1,7 @@ -{ inputs, lib, ... }: +{ + lib, + ... +}: { _class = "nixosTest"; @@ -15,9 +18,6 @@ nodes.deployer = { pkgs, ... }: { - environment.systemPackages = [ - inputs.nixops4.packages.${pkgs.system}.default - ]; # FIXME: sad times system.extraDependencies = with pkgs; [