diff options
author | Ilan Joselevich <personal@ilanjoselevich.com> | 2023-07-07 19:50:29 +0300 |
---|---|---|
committer | Ilan Joselevich <personal@ilanjoselevich.com> | 2023-07-07 20:03:54 +0300 |
commit | 160edcf2c5fd9aab2fd26d7e6a32b00a4afc28ca (patch) | |
tree | 1d5f4e939b4072ea27a36468bf440445ec9a6055 /nixos | |
parent | 73d174c62ba412c79358895282b6ecee9497469a (diff) | |
download | nixpkgs-160edcf2c5fd9aab2fd26d7e6a32b00a4afc28ca.tar nixpkgs-160edcf2c5fd9aab2fd26d7e6a32b00a4afc28ca.tar.gz nixpkgs-160edcf2c5fd9aab2fd26d7e6a32b00a4afc28ca.tar.bz2 nixpkgs-160edcf2c5fd9aab2fd26d7e6a32b00a4afc28ca.tar.lz nixpkgs-160edcf2c5fd9aab2fd26d7e6a32b00a4afc28ca.tar.xz nixpkgs-160edcf2c5fd9aab2fd26d7e6a32b00a4afc28ca.tar.zst nixpkgs-160edcf2c5fd9aab2fd26d7e6a32b00a4afc28ca.zip |
nixos/twingate: add package option and test
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/networking/twingate.nix | 30 | ||||
-rw-r--r-- | nixos/tests/all-tests.nix | 1 | ||||
-rw-r--r-- | nixos/tests/twingate.nix | 10 |
3 files changed, 24 insertions, 17 deletions
diff --git a/nixos/modules/services/networking/twingate.nix b/nixos/modules/services/networking/twingate.nix index 17140bffd21..1454a7431cd 100644 --- a/nixos/modules/services/networking/twingate.nix +++ b/nixos/modules/services/networking/twingate.nix @@ -1,28 +1,24 @@ { config, lib, pkgs, ... }: -with lib; - let cfg = config.services.twingate; - -in { - +in +{ options.services.twingate = { - enable = mkEnableOption (lib.mdDoc "Twingate Client daemon"); + enable = lib.mkEnableOption (lib.mdDoc "Twingate Client daemon"); + package = lib.mkPackageOptionMD pkgs "twingate" { }; }; - config = mkIf cfg.enable { - - networking.firewall.checkReversePath = lib.mkDefault false; - networking.networkmanager.enable = true; - - environment.systemPackages = [ pkgs.twingate ]; # for the CLI - systemd.packages = [ pkgs.twingate ]; + config = lib.mkIf cfg.enable { + systemd.packages = [ cfg.package ]; + systemd.services.twingate = { + preStart = "cp -r -n ${cfg.package}/etc/twingate/. /etc/twingate/"; + wantedBy = [ "multi-user.target" ]; + }; - systemd.services.twingate.preStart = '' - cp -r -n ${pkgs.twingate}/etc/twingate/. /etc/twingate/ - ''; + networking.firewall.checkReversePath = lib.mkDefault "loose"; + services.resolved.enable = !(config.networking.networkmanager.enable); - systemd.services.twingate.wantedBy = [ "multi-user.target" ]; + environment.systemPackages = [ cfg.package ]; # For the CLI. }; } diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index f7f57b3268e..587fb07ed7b 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -801,6 +801,7 @@ in { tuptime = handleTest ./tuptime.nix {}; turbovnc-headless-server = handleTest ./turbovnc-headless-server.nix {}; tuxguitar = handleTest ./tuxguitar.nix {}; + twingate = runTest ./twingate.nix; ucarp = handleTest ./ucarp.nix {}; udisks2 = handleTest ./udisks2.nix {}; ulogd = handleTest ./ulogd.nix {}; diff --git a/nixos/tests/twingate.nix b/nixos/tests/twingate.nix new file mode 100644 index 00000000000..8c7161b6fae --- /dev/null +++ b/nixos/tests/twingate.nix @@ -0,0 +1,10 @@ +{ + name = "twingate"; + + nodes.machine.services.twingate.enable = true; + + testScript = { nodes, ... }: '' + machine.wait_for_unit("twingate.service") + machine.succeed("twingate --version | grep '${nodes.machine.services.twingate.package.version}' >&2") + ''; +} |