nixos/iodine: add test
This commit is contained in:
parent
00a91d919d
commit
b7f27cb61a
|
@ -130,6 +130,7 @@ in
|
||||||
initrd-network-ssh = handleTest ./initrd-network-ssh {};
|
initrd-network-ssh = handleTest ./initrd-network-ssh {};
|
||||||
initrdNetwork = handleTest ./initrd-network.nix {};
|
initrdNetwork = handleTest ./initrd-network.nix {};
|
||||||
installer = handleTest ./installer.nix {};
|
installer = handleTest ./installer.nix {};
|
||||||
|
iodine = handleTest ./iodine.nix {};
|
||||||
ipv6 = handleTest ./ipv6.nix {};
|
ipv6 = handleTest ./ipv6.nix {};
|
||||||
jackett = handleTest ./jackett.nix {};
|
jackett = handleTest ./jackett.nix {};
|
||||||
jellyfin = handleTest ./jellyfin.nix {};
|
jellyfin = handleTest ./jellyfin.nix {};
|
||||||
|
|
63
nixos/tests/iodine.nix
Normal file
63
nixos/tests/iodine.nix
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
import ./make-test-python.nix (
|
||||||
|
{ pkgs, ... }: let
|
||||||
|
domain = "whatever.example.com";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
name = "iodine";
|
||||||
|
nodes = {
|
||||||
|
server =
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
networking.firewall = {
|
||||||
|
allowedUDPPorts = [ 53 ];
|
||||||
|
trustedInterfaces = [ "dns0" ];
|
||||||
|
};
|
||||||
|
boot.kernel.sysctl = {
|
||||||
|
"net.ipv4.ip_forward" = 1;
|
||||||
|
"net.ipv6.ip_forward" = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.iodine.server = {
|
||||||
|
enable = true;
|
||||||
|
ip = "10.53.53.1/24";
|
||||||
|
passwordFile = "${builtins.toFile "password" "foo"}";
|
||||||
|
inherit domain;
|
||||||
|
};
|
||||||
|
|
||||||
|
# test resource: accessible only via tunnel
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
client =
|
||||||
|
{ ... }: {
|
||||||
|
services.iodine.clients.testClient = {
|
||||||
|
# test that ProtectHome is "read-only"
|
||||||
|
passwordFile = "/root/pw";
|
||||||
|
relay = "server";
|
||||||
|
server = domain;
|
||||||
|
};
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"f /root/pw 0666 root root - foo"
|
||||||
|
];
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.nagiosPluginsOfficial
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
start_all()
|
||||||
|
|
||||||
|
server.wait_for_unit("sshd")
|
||||||
|
server.wait_for_unit("iodined")
|
||||||
|
client.wait_for_unit("iodine-testClient")
|
||||||
|
|
||||||
|
client.succeed("check_ssh -H 10.53.53.1")
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
)
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub, zlib, nettools }:
|
{ stdenv, fetchFromGitHub, zlib, nettools, nixosTests }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "iodine";
|
pname = "iodine";
|
||||||
|
@ -19,6 +19,10 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
installFlags = [ "prefix=\${out}" ];
|
installFlags = [ "prefix=\${out}" ];
|
||||||
|
|
||||||
|
passthru.tests = {
|
||||||
|
inherit (nixosTests) iodine;
|
||||||
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = http://code.kryo.se/iodine/;
|
homepage = http://code.kryo.se/iodine/;
|
||||||
description = "Tool to tunnel IPv4 data through a DNS server";
|
description = "Tool to tunnel IPv4 data through a DNS server";
|
||||||
|
|
Loading…
Reference in a new issue