From 3270e162e6b6432bf12873db3c12550afd827789 Mon Sep 17 00:00:00 2001 From: mnv Date: Thu, 24 Oct 2024 18:20:21 +0530 Subject: [PATCH] etcd.nix: minor fixes Adds explicit network configuration for etcd service Waits for etcd to be fully healthy before running tests Makes endpoint configuration explicit in etcdctl commands --- nixos/tests/etcd/etcd.nix | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/nixos/tests/etcd/etcd.nix b/nixos/tests/etcd/etcd.nix index a32d0f9a55d1..3334cb0a4efc 100644 --- a/nixos/tests/etcd/etcd.nix +++ b/nixos/tests/etcd/etcd.nix @@ -1,15 +1,22 @@ # This test runs simple etcd node - import ../make-test-python.nix ({ pkgs, ... } : { name = "etcd"; - meta = with pkgs.lib.maintainers; { maintainers = [ offline ]; }; nodes = { node = { ... }: { - services.etcd.enable = true; + services.etcd = { + enable = true; + # Ensure etcd is ready to accept connections + extraConf = { + "initial-advertise-peer-urls" = "http://localhost:2380"; + "listen-peer-urls" = "http://localhost:2380"; + "listen-client-urls" = "http://localhost:2379"; + "advertise-client-urls" = "http://localhost:2379"; + }; + }; }; }; @@ -17,9 +24,11 @@ import ../make-test-python.nix ({ pkgs, ... } : { with subtest("should start etcd node"): node.start() node.wait_for_unit("etcd.service") + # Add additional wait for actual readiness + node.wait_until_succeeds("etcdctl endpoint health") with subtest("should write and read some values to etcd"): - node.succeed("etcdctl put /foo/bar 'Hello world'") - node.succeed("etcdctl get /foo/bar | grep 'Hello world'") + node.succeed("etcdctl --endpoints=http://localhost:2379 put /foo/bar 'Hello world'") + node.succeed("etcdctl --endpoints=http://localhost:2379 get /foo/bar | grep 'Hello world'") ''; })