diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index df47807b44b7..7e911dc85a88 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -516,8 +516,7 @@ in ergochat = runTest ./ergochat.nix; esphome = runTest ./esphome.nix; etc = pkgs.callPackage ../modules/system/etc/test.nix { inherit evalMinimalConfig; }; - etcd = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./etcd/etcd.nix; - etcd-cluster = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./etcd/etcd-cluster.nix; + etcd = import ./etcd/default.nix { inherit pkgs runTest; }; etebase-server = runTest ./etebase-server.nix; etesync-dav = runTest ./etesync-dav.nix; evcc = runTest ./evcc.nix; diff --git a/nixos/tests/etcd/default.nix b/nixos/tests/etcd/default.nix new file mode 100644 index 000000000000..96add9670a95 --- /dev/null +++ b/nixos/tests/etcd/default.nix @@ -0,0 +1,43 @@ +{ + pkgs, + runTest, + ... +}: + +let + testEtcd = + path: oPkgs: + runTest ( + let + etcdPkgs = pkgs // oPkgs; + in + pkgs.lib.recursiveUpdate { + meta = { + maintainers = etcdPkgs.etcd.meta.maintainers; + platforms = [ + "aarch64-linux" + "x86_64-linux" + ]; + }; + } (import path etcdPkgs) + ); + testEtcdPkg = pkg: path: testEtcd path { etcd = pkg; }; + testEtcd_3_4 = testEtcdPkg pkgs.etcd_3_4; + testEtcd_3_5 = testEtcdPkg pkgs.etcd_3_5; + testEtcd_3_6 = testEtcdPkg pkgs.etcd_3_6; +in + +{ + "3_4" = { + multi-node = testEtcd_3_4 ./multi-node.nix; + single-node = testEtcd_3_4 ./single-node.nix; + }; + "3_5" = { + multi-node = testEtcd_3_5 ./multi-node.nix; + single-node = testEtcd_3_5 ./single-node.nix; + }; + "3_6" = { + multi-node = testEtcd_3_6 ./multi-node.nix; + single-node = testEtcd_3_6 ./single-node.nix; + }; +} diff --git a/nixos/tests/etcd/etcd-cluster.nix b/nixos/tests/etcd/multi-node.nix similarity index 97% rename from nixos/tests/etcd/etcd-cluster.nix rename to nixos/tests/etcd/multi-node.nix index aa66c8498356..0ce36d0f14b6 100644 --- a/nixos/tests/etcd/etcd-cluster.nix +++ b/nixos/tests/etcd/multi-node.nix @@ -1,6 +1,5 @@ -# This test runs simple etcd cluster +{ pkgs, etcd, ... }: -{ lib, pkgs, ... }: let runWithOpenSSL = file: cmd: @@ -77,6 +76,7 @@ let services = { etcd = { enable = true; + package = etcd; keyFile = etcd_key; certFile = etcd_cert; trustedCaFile = ca_pem; @@ -99,10 +99,9 @@ let networking.firewall.allowedTCPPorts = [ 2380 ]; }; in -{ - name = "etcd-cluster"; - meta.maintainers = with lib.maintainers; [ offline ]; +{ + name = "etcd-multi-node"; nodes = { node1 = @@ -170,4 +169,5 @@ in node1.succeed("etcdctl put /foo/bar 'Hello degraded world'") node1.succeed("etcdctl get /foo/bar | grep 'Hello degraded world'") ''; + } diff --git a/nixos/tests/etcd/etcd.nix b/nixos/tests/etcd/single-node.nix similarity index 74% rename from nixos/tests/etcd/etcd.nix rename to nixos/tests/etcd/single-node.nix index 9c423ef35185..0d2bdea166d9 100644 --- a/nixos/tests/etcd/etcd.nix +++ b/nixos/tests/etcd/single-node.nix @@ -1,11 +1,13 @@ -# This test runs simple etcd node -{ lib, ... }: +{ etcd, ... }: + { - name = "etcd"; - meta.maintainers = with lib.maintainers; [ offline ]; + name = "etcd-single-node"; nodes.node = { - services.etcd.enable = true; + services.etcd = { + enable = true; + package = etcd; + }; }; testScript = '' @@ -19,4 +21,5 @@ node.succeed("etcdctl put /foo/bar 'Hello world'") node.succeed("etcdctl get /foo/bar | grep 'Hello world'") ''; + } diff --git a/pkgs/by-name/et/etcd_3_4/package.nix b/pkgs/by-name/et/etcd_3_4/package.nix index 19e6a6c62411..50397a79c6f3 100644 --- a/pkgs/by-name/et/etcd_3_4/package.nix +++ b/pkgs/by-name/et/etcd_3_4/package.nix @@ -2,6 +2,7 @@ lib, buildGoModule, fetchFromGitHub, + nixosTests, }: buildGoModule rec { @@ -36,6 +37,8 @@ buildGoModule rec { install -Dm755 bin/* bin/functional/cmd/* -t $out/bin ''; + passthru.tests = nixosTests.etcd."3_4"; + meta = { description = "Distributed reliable key-value store for the most critical data of a distributed system"; downloadPage = "https://github.com/etcd-io/etcd/"; diff --git a/pkgs/by-name/et/etcd_3_5/package.nix b/pkgs/by-name/et/etcd_3_5/package.nix index 5ca80ba041c5..b5b67dc32c4b 100644 --- a/pkgs/by-name/et/etcd_3_5/package.nix +++ b/pkgs/by-name/et/etcd_3_5/package.nix @@ -101,11 +101,7 @@ symlinkJoin { deps = { inherit etcdserver etcdutl etcdctl; }; - - tests = { - inherit (nixosTests) etcd etcd-cluster; - k3s = k3s.passthru.tests.etcd; - }; + tests = nixosTests.etcd."3_5"; updateScript = ./update.sh; }; diff --git a/pkgs/by-name/et/etcd_3_6/package.nix b/pkgs/by-name/et/etcd_3_6/package.nix index c7f75ac9d091..f4bfc90780bc 100644 --- a/pkgs/by-name/et/etcd_3_6/package.nix +++ b/pkgs/by-name/et/etcd_3_6/package.nix @@ -132,11 +132,7 @@ symlinkJoin { deps = { inherit etcdserver etcdutl etcdctl; }; - # Fix-Me: Tests for etcd 3.6 needs work. - # tests = { - # inherit (nixosTests) etcd etcd-cluster; - # k3s = k3s.passthru.tests.etcd; - # }; + tests = nixosTests.etcd."3_6"; updateScript = ./update.sh; };