From 96067a789dbe02f361db0113f5d9e016d072075d Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 1 Aug 2023 15:36:33 +0200 Subject: [PATCH 1/3] move modules into nixosModules, add autoimport --- flake-parts/modules.nix | 5 ++++- flake-parts/nixosModules.nix | 6 ++++++ flake-parts/packages.nix | 1 + flake.nix | 17 ++--------------- lib/default.nix | 17 +++++++++++++++++ lib/flake-module.nix | 5 +++++ .../hidden-ssh-announce.nix | 0 .../installer/default.nix | 0 8 files changed, 35 insertions(+), 16 deletions(-) create mode 100644 flake-parts/nixosModules.nix create mode 100644 lib/default.nix create mode 100644 lib/flake-module.nix rename {modules => nixosModules}/hidden-ssh-announce.nix (100%) rename modules/installer.nix => nixosModules/installer/default.nix (100%) diff --git a/flake-parts/modules.nix b/flake-parts/modules.nix index 098af10..7cccc93 100644 --- a/flake-parts/modules.nix +++ b/flake-parts/modules.nix @@ -1,7 +1,10 @@ # export some of our flake moduels for re-use in other projects -{ ... +{ lib +, self +, ... }: { flake.modules.flake-parts = { writers = ./writers; }; + flake.nixosModules = lib.mapAttrs (_: nix: { imports = [ nix ]; }) (self.lib.findNixFiles ../nixosModules); } diff --git a/flake-parts/nixosModules.nix b/flake-parts/nixosModules.nix new file mode 100644 index 0000000..add2463 --- /dev/null +++ b/flake-parts/nixosModules.nix @@ -0,0 +1,6 @@ +{ lib +, self +, ... +}: { + flake.nixosModules = lib.mapAttrs (_: nix: { imports = [ nix ]; }) (self.lib.findNixFiles ../nixosModules); +} diff --git a/flake-parts/packages.nix b/flake-parts/packages.nix index c379078..dc776dd 100644 --- a/flake-parts/packages.nix +++ b/flake-parts/packages.nix @@ -5,6 +5,7 @@ system = "x86_64-linux"; modules = [ self.nixosModules.installer + self.nixosModules.hidden-ssh-announce self.inputs.nixos-generators.nixosModules.all-formats self.inputs.disko.nixosModules.disko ]; diff --git a/flake.nix b/flake.nix index a3d66e7..bf73633 100644 --- a/flake.nix +++ b/flake.nix @@ -25,27 +25,14 @@ ./flake-parts/formatting.nix ./flake-parts/merge-after-ci ./flake-parts/modules.nix + ./flake-parts/nixosModules.nix ./flake-parts/packages.nix ./flake-parts/tea-create-pr ./flake-parts/writers ./templates/flake-module.nix ./templates/python-project/flake-module.nix ./pkgs/clan-cli/flake-module.nix + ./lib/flake-module.nix ]; - flake = { - nixosModules = { - installer = { - imports = [ - ./modules/installer.nix - ./modules/hidden-ssh-announce.nix - ]; - }; - hidden-announce = { - imports = [ - ./modules/hidden-ssh-announce.nix - ]; - }; - }; - }; }); } diff --git a/lib/default.nix b/lib/default.nix new file mode 100644 index 0000000..b0c2432 --- /dev/null +++ b/lib/default.nix @@ -0,0 +1,17 @@ +{ lib, ... }: +let + clanLib = { + findNixFiles = folder: + lib.mapAttrs' + (name: type: + if + type == "directory" + then + lib.nameValuePair name "${folder}/${name}" + else + lib.nameValuePair (lib.removeSuffix ".nix" name) "${folder}/${name}" + ) + (builtins.readDir folder); + }; +in +clanLib diff --git a/lib/flake-module.nix b/lib/flake-module.nix new file mode 100644 index 0000000..38d84a8 --- /dev/null +++ b/lib/flake-module.nix @@ -0,0 +1,5 @@ +{ lib +, ... +}: { + flake.lib = import ./default.nix { inherit lib; }; +} diff --git a/modules/hidden-ssh-announce.nix b/nixosModules/hidden-ssh-announce.nix similarity index 100% rename from modules/hidden-ssh-announce.nix rename to nixosModules/hidden-ssh-announce.nix diff --git a/modules/installer.nix b/nixosModules/installer/default.nix similarity index 100% rename from modules/installer.nix rename to nixosModules/installer/default.nix From 1355ceff4a4f031048609a5a73d0b4c41c6bb4b2 Mon Sep 17 00:00:00 2001 From: lassulus Date: Wed, 2 Aug 2023 10:32:09 +0200 Subject: [PATCH 2/3] fixup! move modules into nixosModules, add autoimport --- flake-parts/nixosModules.nix | 6 ------ flake.nix | 1 - 2 files changed, 7 deletions(-) delete mode 100644 flake-parts/nixosModules.nix diff --git a/flake-parts/nixosModules.nix b/flake-parts/nixosModules.nix deleted file mode 100644 index add2463..0000000 --- a/flake-parts/nixosModules.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ lib -, self -, ... -}: { - flake.nixosModules = lib.mapAttrs (_: nix: { imports = [ nix ]; }) (self.lib.findNixFiles ../nixosModules); -} diff --git a/flake.nix b/flake.nix index bf73633..9d5696a 100644 --- a/flake.nix +++ b/flake.nix @@ -25,7 +25,6 @@ ./flake-parts/formatting.nix ./flake-parts/merge-after-ci ./flake-parts/modules.nix - ./flake-parts/nixosModules.nix ./flake-parts/packages.nix ./flake-parts/tea-create-pr ./flake-parts/writers From 572213f1e76c9e5b0df7b95b1e68a9c4e6544ae7 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 1 Aug 2023 16:48:07 +0200 Subject: [PATCH 3/3] clanModules: add zerotier --- clanModules/zerotier.nix | 29 +++++++++++++++++++++++++++++ flake-parts/modules.nix | 1 + 2 files changed, 30 insertions(+) create mode 100644 clanModules/zerotier.nix diff --git a/clanModules/zerotier.nix b/clanModules/zerotier.nix new file mode 100644 index 0000000..180b64d --- /dev/null +++ b/clanModules/zerotier.nix @@ -0,0 +1,29 @@ +{ config, lib, ... }: +{ + options.clan.networking.zerotier = { + networkId = lib.mkOption { + type = lib.types.str; + description = '' + zerotier networking id + ''; + }; + }; + config = { + systemd.network.networks.zerotier = { + matchConfig.Name = "zt*"; + networkConfig = { + LLMNR = true; + LLDP = true; + MulticastDNS = true; + KeepConfiguration = "static"; + }; + }; + networking.firewall.allowedUDPPorts = [ 9993 ]; + networking.firewall.interfaces."zt+".allowedTCPPorts = [ 5353 ]; + networking.firewall.interfaces."zt+".allowedUDPPorts = [ 5353 ]; + services.zerotierone = { + enable = true; + joinNetworks = [ config.clan.networking.zerotier.networkId ]; + }; + }; +} diff --git a/flake-parts/modules.nix b/flake-parts/modules.nix index 7cccc93..da9e465 100644 --- a/flake-parts/modules.nix +++ b/flake-parts/modules.nix @@ -7,4 +7,5 @@ writers = ./writers; }; flake.nixosModules = lib.mapAttrs (_: nix: { imports = [ nix ]; }) (self.lib.findNixFiles ../nixosModules); + flake.clanModules = lib.mapAttrs (_: nix: { imports = [ nix ]; }) (self.lib.findNixFiles ../clanModules); }