about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/modules/services/misc/etcd.nix7
-rw-r--r--nixos/tests/etcd.nix6
2 files changed, 8 insertions, 5 deletions
diff --git a/nixos/modules/services/misc/etcd.nix b/nixos/modules/services/misc/etcd.nix
index 550d351ccfbe..284361a04d9e 100644
--- a/nixos/modules/services/misc/etcd.nix
+++ b/nixos/modules/services/misc/etcd.nix
@@ -46,7 +46,7 @@ in {
 
     initialCluster = mkOption {
       description = "Etcd initial cluster configuration for bootstrapping.";
-      default = ["${cfg.name}=http://localhost:2380" "${cfg.name}=http://localhost:7001"];
+      default = ["${cfg.name}=http://localhost:7001"];
       type = types.listOf types.str;
     };
 
@@ -123,7 +123,10 @@ in {
         if [ "$(id -u)" = 0 ]; then chown etcd ${cfg.dataDir}; fi
       '';
       postStart = ''
-        until ${pkgs.curl}/bin/curl -s -o /dev/null '${head cfg.listenClientUrls}/version'; do
+        until ${pkgs.etcdctl}/bin/etcdctl set /nixos/state 'up'; do
+          sleep 1;
+        done
+        until ${pkgs.etcdctl}/bin/etcdctl get /nixos/state | grep up; do
           sleep 1;
         done
       '';
diff --git a/nixos/tests/etcd.nix b/nixos/tests/etcd.nix
index 6c6dd84f558d..ace5e05b170a 100644
--- a/nixos/tests/etcd.nix
+++ b/nixos/tests/etcd.nix
@@ -80,7 +80,7 @@ import ./make-test.nix {
       $simple->start();
       $simple->waitForUnit("etcd.service");
       $simple->succeed("etcdctl set /foo/bar 'Hello world'");
-      $simple->succeed("etcdctl get /foo/bar | grep 'Hello world'");
+      $simple->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
     };
 
     subtest "multy node", sub {
@@ -89,7 +89,7 @@ import ./make-test.nix {
       $node1->waitForUnit("etcd.service");
       $node2->waitForUnit("etcd.service");
       $node1->succeed("etcdctl set /foo/bar 'Hello world'");
-      $node2->succeed("etcdctl get /foo/bar | grep 'Hello world'");
+      $node2->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
       $node1->shutdown();
       $node2->shutdown();
     };
@@ -102,7 +102,7 @@ import ./make-test.nix {
       $discovery1->waitForUnit("etcd.service");
       $discovery2->waitForUnit("etcd.service");
       $discovery1->succeed("etcdctl set /foo/bar 'Hello world'");
-      $discovery2->succeed("etcdctl get /foo/bar | grep 'Hello world'");
+      $discovery2->waitUntilSucceeds("etcdctl get /foo/bar | grep 'Hello world'");
     };
   '';
 }