summary refs log tree commit diff
path: root/nixos/tests/systemd-networkd-wireguard.nix
diff options
context:
space:
mode:
authorWilliButz <wbutz@cyberfnord.de>2019-11-25 10:47:31 +0100
committerWilliButz <wbutz@cyberfnord.de>2019-11-25 10:47:31 +0100
commitec16f4fd5b78edcd11f68cb96b41b9a810af315e (patch)
treeb327fd1d3d6774481950cb0117a22f1e948f3765 /nixos/tests/systemd-networkd-wireguard.nix
parentfc91467b0d22603de22c698f80d6217b215e688b (diff)
downloadnixpkgs-ec16f4fd5b78edcd11f68cb96b41b9a810af315e.tar
nixpkgs-ec16f4fd5b78edcd11f68cb96b41b9a810af315e.tar.gz
nixpkgs-ec16f4fd5b78edcd11f68cb96b41b9a810af315e.tar.bz2
nixpkgs-ec16f4fd5b78edcd11f68cb96b41b9a810af315e.tar.lz
nixpkgs-ec16f4fd5b78edcd11f68cb96b41b9a810af315e.tar.xz
nixpkgs-ec16f4fd5b78edcd11f68cb96b41b9a810af315e.tar.zst
nixpkgs-ec16f4fd5b78edcd11f68cb96b41b9a810af315e.zip
tests/systemd-networkd: add regression test for service group
Previously systemd-networkd.service ran as systemd-network:nogroup.
The wireguard private key file is now owned by root:systemd-network with
mode 0640. It is therefore required that the systemd-network user is in the group
with the same name, so that it is able to read the key file.
Diffstat (limited to 'nixos/tests/systemd-networkd-wireguard.nix')
-rw-r--r--nixos/tests/systemd-networkd-wireguard.nix11
1 files changed, 7 insertions, 4 deletions
diff --git a/nixos/tests/systemd-networkd-wireguard.nix b/nixos/tests/systemd-networkd-wireguard.nix
index b83e9c7ce19..be5c0da981d 100644
--- a/nixos/tests/systemd-networkd-wireguard.nix
+++ b/nixos/tests/systemd-networkd-wireguard.nix
@@ -1,4 +1,4 @@
-let generateNodeConf = { lib, pkgs, config, privkpath, pubk, peerId, nodeId, ...}: {
+let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
       imports = [ common/user-account.nix ];
       systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug";
       networking.useNetworkd = true;
@@ -7,13 +7,16 @@ let generateNodeConf = { lib, pkgs, config, privkpath, pubk, peerId, nodeId, ...
       virtualisation.vlans = [ 1 ];
       environment.systemPackages = with pkgs; [ wireguard-tools ];
       boot.extraModulePackages = [ config.boot.kernelPackages.wireguard ];
+      systemd.tmpfiles.rules = [
+        "f /run/wg_priv 0640 root systemd-network - ${privk}"
+      ];
       systemd.network = {
         enable = true;
         netdevs = {
           "90-wg0" = {
             netdevConfig = { Kind = "wireguard"; Name = "wg0"; };
             wireguardConfig = {
-              PrivateKeyFile = privkpath ;
+              PrivateKeyFile = "/run/wg_priv";
               ListenPort = 51820;
               FwMark = 42;
             };
@@ -53,7 +56,7 @@ in import ./make-test-python.nix ({pkgs, ... }: {
   nodes = {
     node1 = { pkgs, ... }@attrs:
     let localConf = {
-        privkpath = pkgs.writeText "priv.key" "GDiXWlMQKb379XthwX0haAbK6hTdjblllpjGX0heP00=";
+        privk = "GDiXWlMQKb379XthwX0haAbK6hTdjblllpjGX0heP00=";
         pubk = "iRxpqj42nnY0Qz8MAQbSm7bXxXP5hkPqWYIULmvW+EE=";
         nodeId = "1";
         peerId = "2";
@@ -62,7 +65,7 @@ in import ./make-test-python.nix ({pkgs, ... }: {
 
     node2 = { pkgs, ... }@attrs:
     let localConf = {
-        privkpath = pkgs.writeText "priv.key" "eHxSI2jwX/P4AOI0r8YppPw0+4NZnjOxfbS5mt06K2k=";
+        privk = "eHxSI2jwX/P4AOI0r8YppPw0+4NZnjOxfbS5mt06K2k=";
         pubk = "27s0OvaBBdHoJYkH9osZpjpgSOVNw+RaKfboT/Sfq0g=";
         nodeId = "2";
         peerId = "1";