From 9aa1f29e240e4491e7c61461425db072f69df2f3 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 17 Jul 2024 16:32:56 +0200 Subject: [PATCH] modules: use consul-ready when waiting for consul --- modules/ascensions/default.nix | 3 ++- modules/consul-distributed-services/default.nix | 4 ++++ modules/consul-service-registry/default.nix | 6 ++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/ascensions/default.nix b/modules/ascensions/default.nix index ea5bebc..cc0e844 100644 --- a/modules/ascensions/default.nix +++ b/modules/ascensions/default.nix @@ -87,7 +87,8 @@ in description = "Ascension for ${name}"; wantedBy = [ "multi-user.target" ]; inherit (asc) requiredBy before; - after = asc.after ++ (lib.optional asc.distributed "consul.service"); + after = asc.after ++ (lib.optional asc.distributed "consul-ready.service"); + requires = lib.optional asc.distributed "consul-ready.service"; serviceConfig.Type = "oneshot"; distributed.enable = asc.distributed; script = '' diff --git a/modules/consul-distributed-services/default.nix b/modules/consul-distributed-services/default.nix index c9094a4..62df256 100644 --- a/modules/consul-distributed-services/default.nix +++ b/modules/consul-distributed-services/default.nix @@ -42,6 +42,10 @@ in hasSpecialPrefix = elem (substring 0 1 ExecStart) [ "@" "-" ":" "+" "!" ]; in assert !hasSpecialPrefix; pkgs.writeTextDir "etc/systemd/system/${n}.service.d/distributed.conf" '' + [Unit] + Requires=consul-ready.service + After=consul-ready.service + [Service] ExecStartPre=${waitForConsul} 'services/${n}%i' ExecStart= diff --git a/modules/consul-service-registry/default.nix b/modules/consul-service-registry/default.nix index bf7d127..f0b20b5 100644 --- a/modules/consul-service-registry/default.nix +++ b/modules/consul-service-registry/default.nix @@ -81,14 +81,16 @@ let }.${mode}; value = { direct = { - after = [ "consul.service" ]; + after = [ "consul-ready.service" ]; + requires = [ "consul-ready.service" ]; serviceConfig = { ExecStartPost = register servicesJson; ExecStopPost = deregister servicesJson; }; }; external = { - after = [ "consul.service" "${unit}.service" ]; + after = [ "consul-ready.service" "${unit}.service" ]; + requires = [ "consul-ready.service" ]; wantedBy = [ "${unit}.service" ]; unitConfig.BindsTo = "${unit}.service"; serviceConfig = {