tests: explicitly specify services to be sourced from self

See previous commit
This commit is contained in:
DavHau
2025-06-30 16:04:40 +07:00
parent f966f5b745
commit 2a3e786cfe
24 changed files with 40 additions and 5 deletions

View File

@@ -28,6 +28,7 @@ nixosLib.runTest (
borgone = { borgone = {
module.name = "@clan/borgbackup"; module.name = "@clan/borgbackup";
module.input = "self";
roles.client.machines."clientone" = { }; roles.client.machines."clientone" = { };
roles.server.machines."serverone".settings.directory = "/tmp/borg-test"; roles.server.machines."serverone".settings.directory = "/tmp/borg-test";

View File

@@ -24,6 +24,7 @@
instances."test" = { instances."test" = {
module.name = "new-service"; module.name = "new-service";
module.input = "self";
roles.peer.machines.peer1 = { }; roles.peer.machines.peer1 = { };
}; };

View File

@@ -33,6 +33,7 @@ nixosLib.runTest (
instances."test" = { instances."test" = {
module.name = "new-service"; module.name = "new-service";
module.input = "self";
roles.peer.machines.peer1 = { }; roles.peer.machines.peer1 = { };
}; };

View File

@@ -26,6 +26,7 @@ nixosLib.runTest (
instances = { instances = {
mycelium-test = { mycelium-test = {
module.name = "@clan/mycelium"; module.name = "@clan/mycelium";
module.input = "self";
roles.peer.machines."server".settings = { roles.peer.machines."server".settings = {
openFirewall = true; openFirewall = true;
addHostedPublicNodes = true; addHostedPublicNodes = true;

View File

@@ -14,6 +14,7 @@ in
instances = { instances = {
ssh-test-one = { ssh-test-one = {
module.name = "@clan/admin"; module.name = "@clan/admin";
module.input = "self";
roles.default.machines."server".settings = { roles.default.machines."server".settings = {
allowedKeys.testkey = public-key; allowedKeys.testkey = public-key;
}; };

View File

@@ -18,6 +18,7 @@
borgone = { borgone = {
module.name = "@clan/borgbackup"; module.name = "@clan/borgbackup";
module.input = "self";
roles.client.machines."clientone" = { }; roles.client.machines."clientone" = { };
roles.server.machines."serverone".settings.directory = "/tmp/borg-test"; roles.server.machines."serverone".settings.directory = "/tmp/borg-test";

View File

@@ -14,6 +14,7 @@
instances = { instances = {
garage-test = { garage-test = {
module.name = "@clan/garage"; module.name = "@clan/garage";
module.input = "self";
roles.default.machines."server".settings = { }; roles.default.machines."server".settings = { };
}; };
}; };

View File

@@ -24,6 +24,7 @@ let
inventory.instances = { inventory.instances = {
"hello" = { "hello" = {
module.name = "hello-world"; module.name = "hello-world";
module.input = "self";
roles.peer.machines.jon = { }; roles.peer.machines.jon = { };
}; };

View File

@@ -12,6 +12,7 @@
instances."test" = { instances."test" = {
module.name = "hello-service"; module.name = "hello-service";
module.input = "self";
roles.peer.machines.peer1 = { }; roles.peer.machines.peer1 = { };
}; };
}; };

View File

@@ -16,6 +16,7 @@
instances = { instances = {
mycelium-test = { mycelium-test = {
module.name = "@clan/mycelium"; module.name = "@clan/mycelium";
module.input = "self";
roles.peer.machines."server".settings = { roles.peer.machines."server".settings = {
openFirewall = true; openFirewall = true;
addHostedPublicNodes = true; addHostedPublicNodes = true;

View File

@@ -1,7 +1,3 @@
{
module,
...
}:
{ {
name = "packages"; name = "packages";
@@ -12,6 +8,7 @@
instances.default = { instances.default = {
module.name = "@clan/packages"; module.name = "@clan/packages";
module.input = "self";
roles.default.machines."server".settings = { roles.default.machines."server".settings = {
packages = [ "cbonsai" ]; packages = [ "cbonsai" ];
}; };

View File

@@ -15,6 +15,7 @@
instances = { instances = {
sshd-test = { sshd-test = {
module.name = "@clan/sshd"; module.name = "@clan/sshd";
module.input = "self";
roles.server.machines."server".settings = { roles.server.machines."server".settings = {
certificate.searchDomains = [ "example.com" ]; certificate.searchDomains = [ "example.com" ];
hostKeys.rsa.enable = true; hostKeys.rsa.enable = true;

View File

@@ -7,6 +7,7 @@
machines.server = { }; machines.server = { };
instances.default = { instances.default = {
module.name = "@clan/state-version"; module.name = "@clan/state-version";
module.input = "self";
roles.default.machines."server" = { }; roles.default.machines."server" = { };
}; };
}; };

View File

@@ -9,6 +9,7 @@
instances = { instances = {
trusted-nix-caches = { trusted-nix-caches = {
module.name = "@clan/trusted-nix-caches"; module.name = "@clan/trusted-nix-caches";
module.input = "self";
roles.default.machines."server" = { }; roles.default.machines."server" = { };
}; };
}; };

View File

@@ -9,6 +9,7 @@
instances = { instances = {
root-password-test = { root-password-test = {
module.name = "@clan/users"; module.name = "@clan/users";
module.input = "self";
roles.default.machines."server".settings = { roles.default.machines."server".settings = {
user = "root"; user = "root";
prompt = false; prompt = false;
@@ -16,6 +17,7 @@
}; };
user-password-test = { user-password-test = {
module.name = "@clan/users"; module.name = "@clan/users";
module.input = "self";
roles.default.machines."server".settings = { roles.default.machines."server".settings = {
user = "testuser"; user = "testuser";
prompt = false; prompt = false;

View File

@@ -24,6 +24,7 @@ let
inventory.instances = { inventory.instances = {
"default" = { "default" = {
module.name = "wifi"; module.name = "wifi";
module.input = "self";
roles.default.tags.all = { }; roles.default.tags.all = { };
roles.default.settings.networks.one = { }; roles.default.settings.networks.one = { };
roles.default.settings.networks.two = { }; roles.default.settings.networks.two = { };

View File

@@ -11,6 +11,7 @@
instances = { instances = {
wg-test-one = { wg-test-one = {
module.name = "@clan/wifi"; module.name = "@clan/wifi";
module.input = "self";
roles.default.machines = { roles.default.machines = {
test.settings.networks.one = { }; test.settings.networks.one = { };

View File

@@ -22,6 +22,7 @@ let
inventory.instances = { inventory.instances = {
zerotier = { zerotier = {
module.name = "zerotier"; module.name = "zerotier";
module.input = "self";
roles.peer.tags.all = { }; roles.peer.tags.all = { };
roles.moon.machines.sara.settings.stableEndpoints = [ "10.0.0.3/9993" ]; roles.moon.machines.sara.settings.stableEndpoints = [ "10.0.0.3/9993" ];

View File

@@ -12,6 +12,7 @@
instances = { instances = {
"zerotier" = { "zerotier" = {
module.name = "zerotier"; module.name = "zerotier";
module.input = "self";
roles.peer.tags.all = { }; roles.peer.tags.all = { };
roles.controller.machines.bam = { }; roles.controller.machines.bam = { };

View File

@@ -151,16 +151,19 @@ in
instances."instance_foo" = { instances."instance_foo" = {
module = { module = {
name = "A"; name = "A";
input = "self";
}; };
}; };
instances."instance_bar" = { instances."instance_bar" = {
module = { module = {
name = "A"; name = "A";
input = "self";
}; };
}; };
instances."instance_zaza" = { instances."instance_zaza" = {
module = { module = {
name = "B"; name = "B";
input = "self";
}; };
}; };
}; };
@@ -186,6 +189,7 @@ in
_class = "clan.service"; _class = "clan.service";
manifest = { manifest = {
name = "network"; name = "network";
input = "self";
}; };
# Define a role without special behavior # Define a role without special behavior
roles.peer = { }; roles.peer = { };
@@ -200,18 +204,21 @@ in
instances."instance_foo" = { instances."instance_foo" = {
module = { module = {
name = "A"; name = "A";
input = "self";
}; };
roles.peer.machines.jon = { }; roles.peer.machines.jon = { };
}; };
instances."instance_bar" = { instances."instance_bar" = {
module = { module = {
name = "A"; name = "A";
input = "self";
}; };
roles.peer.machines.sara = { }; roles.peer.machines.sara = { };
}; };
instances."instance_zaza" = { instances."instance_zaza" = {
module = { module = {
name = "B"; name = "B";
input = "self";
}; };
roles.peer.tags.all = { }; roles.peer.tags.all = { };
}; };
@@ -256,12 +263,14 @@ in
instances."instance_foo" = { instances."instance_foo" = {
module = { module = {
name = "A"; name = "A";
input = "self";
}; };
roles.peer.tags.foo = { }; roles.peer.tags.foo = { };
}; };
instances."instance_zaza" = { instances."instance_zaza" = {
module = { module = {
name = "B"; name = "B";
input = "self";
}; };
roles.peer.tags.all = { }; roles.peer.tags.all = { };
}; };

View File

@@ -32,7 +32,11 @@ let
in in
{ {
test_import_local_module_by_name = { test_import_local_module_by_name = {
expr = (resolve { name = "A"; }).importedModuleWithInstances.instance_foo.resolvedModule; expr =
(resolve {
name = "A";
input = "self";
}).importedModuleWithInstances.instance_foo.resolvedModule;
expected = { expected = {
_class = "clan.service"; _class = "clan.service";
manifest = { manifest = {

View File

@@ -62,6 +62,7 @@ let
instances."instance_foo" = { instances."instance_foo" = {
module = { module = {
name = "A"; name = "A";
input = "self";
}; };
roles.peer.machines.jon = { roles.peer.machines.jon = {
settings.timeout = lib.mkForce "foo-peer-jon"; settings.timeout = lib.mkForce "foo-peer-jon";
@@ -74,6 +75,7 @@ let
instances."instance_bar" = { instances."instance_bar" = {
module = { module = {
name = "A"; name = "A";
input = "self";
}; };
roles.peer.machines.jon = { roles.peer.machines.jon = {
settings.timeout = "bar-peer-jon"; settings.timeout = "bar-peer-jon";

View File

@@ -44,6 +44,7 @@ let
instances."instance_foo" = { instances."instance_foo" = {
module = { module = {
name = "A"; name = "A";
input = "self";
}; };
roles.peer.machines.jon = { roles.peer.machines.jon = {
settings.timeout = lib.mkForce "foo-peer-jon"; settings.timeout = lib.mkForce "foo-peer-jon";
@@ -55,6 +56,7 @@ let
instances."instance_bar" = { instances."instance_bar" = {
module = { module = {
name = "A"; name = "A";
input = "self";
}; };
roles.peer.machines.jon = { roles.peer.machines.jon = {
settings.timeout = "bar-peer-jon"; settings.timeout = "bar-peer-jon";
@@ -63,6 +65,7 @@ let
instances."instance_zaza" = { instances."instance_zaza" = {
module = { module = {
name = "B"; name = "B";
input = "self";
}; };
roles.peer.tags.all = { }; roles.peer.tags.all = { };
}; };

View File

@@ -17,6 +17,7 @@
machines.server = { }; machines.server = { };
instances.importer = { instances.importer = {
module.name = "@clan/importer"; module.name = "@clan/importer";
module.input = "self";
roles.default.tags.all = { }; roles.default.tags.all = { };
roles.default.extraModules = [ roles.default.extraModules = [
{ {