From 7f6abbd87d281ab6233a4e5b7f9b88df69e2a8d9 Mon Sep 17 00:00:00 2001 From: pinpox Date: Wed, 4 Jun 2025 14:25:12 +0200 Subject: [PATCH 1/3] migrate importer module --- clanServices/importer/default.nix | 8 ++++++++ clanServices/importer/flake-module.nix | 6 ++++++ docs/mkdocs.yml | 1 + 3 files changed, 15 insertions(+) create mode 100644 clanServices/importer/default.nix create mode 100644 clanServices/importer/flake-module.nix diff --git a/clanServices/importer/default.nix b/clanServices/importer/default.nix new file mode 100644 index 000000000..c3bdb6b63 --- /dev/null +++ b/clanServices/importer/default.nix @@ -0,0 +1,8 @@ +{ ... }: +{ + _class = "clan.service"; + manifest.name = "clan-core/importer"; + manifest.description = "Convenient, structured module imports for hosts."; + manifest.categories = [ "Utility" ]; + roles.default = { }; +} diff --git a/clanServices/importer/flake-module.nix b/clanServices/importer/flake-module.nix new file mode 100644 index 000000000..829039cc0 --- /dev/null +++ b/clanServices/importer/flake-module.nix @@ -0,0 +1,6 @@ +{ lib, ... }: +{ + clan.modules = { + importer = lib.modules.importApply ./default.nix { }; + }; +} diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 24aa5bfbb..a43c69ce9 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -92,6 +92,7 @@ nav: - reference/clanServices/localsend.md - reference/clanServices/mycelium.md - reference/clanServices/hello-world.md + - reference/clanServices/importer.md - reference/clanServices/wifi.md - reference/clanServices/zerotier.md - Interface for making Services: reference/clanServices/clan-service-author-interface.md From 9bf0d133c89dfa5b88b765acf5c7282bba3c3d80 Mon Sep 17 00:00:00 2001 From: pinpox Date: Wed, 4 Jun 2025 14:31:07 +0200 Subject: [PATCH 2/3] Add readme for clanServices/importer --- clanServices/importer/README.md | 26 ++++++++++++++++++++++++++ clanServices/importer/default.nix | 2 ++ docs/mkdocs.yml | 1 - 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 clanServices/importer/README.md diff --git a/clanServices/importer/README.md b/clanServices/importer/README.md new file mode 100644 index 000000000..6859a2c5e --- /dev/null +++ b/clanServices/importer/README.md @@ -0,0 +1,26 @@ +The importer module allows users to configure importing modules in a flexible and structured way. +It exposes the `extraModules` functionality of the inventory, without any added configuration. + +## Usage: + +```nix +inventory.instances = { + + zone1 = { + module.name = "@clan/importer"; + roles.default.tags = [ "zone1" ]; + roles.default.extraModules = [ "modules/zone1.nix" ]; + }; + + base = { + module.name = "@clan/importer"; + roles.default.tags = [ "all" ]; + roles.default.extraModules = [ "modules/base.nix" ]; + }; + +}; +``` + +This will import the module `modules/base.nix` to all machines that have the `all` tag, +which by default is every machine managed by the clan. +And also import for all machines tagged with `zone1` the module at `modules/zone1.nix`. diff --git a/clanServices/importer/default.nix b/clanServices/importer/default.nix index c3bdb6b63..e561fa5a2 100644 --- a/clanServices/importer/default.nix +++ b/clanServices/importer/default.nix @@ -4,5 +4,7 @@ manifest.name = "clan-core/importer"; manifest.description = "Convenient, structured module imports for hosts."; manifest.categories = [ "Utility" ]; + manifest.readme = builtins.readFile ./README.md; + roles.default = { }; } diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index a43c69ce9..24aa5bfbb 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -92,7 +92,6 @@ nav: - reference/clanServices/localsend.md - reference/clanServices/mycelium.md - reference/clanServices/hello-world.md - - reference/clanServices/importer.md - reference/clanServices/wifi.md - reference/clanServices/zerotier.md - Interface for making Services: reference/clanServices/clan-service-author-interface.md From 8263c0cc6c65756fc6fc52465dbefb3627fdc2ee Mon Sep 17 00:00:00 2001 From: pinpox Date: Thu, 5 Jun 2025 18:03:59 +0200 Subject: [PATCH 3/3] wait for mycelium port --- checks/mycelium/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/checks/mycelium/default.nix b/checks/mycelium/default.nix index f601e74b4..2f3af1d3e 100644 --- a/checks/mycelium/default.nix +++ b/checks/mycelium/default.nix @@ -47,7 +47,7 @@ nixosLib.runTest ( server.succeed("systemctl status mycelium") # Check that mycelium is listening on its default port - server.succeed("${pkgs.iproute2}/bin/ss -tulpn | grep -q 'mycelium'") + server.wait_until_succeeds("${pkgs.iproute2}/bin/ss -tulpn | grep -q 'mycelium'", 10) ''; } )