summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorDomen Kožar <domen@dev.si>2022-09-20 13:44:22 +0100
committerGitHub <noreply@github.com>2022-09-20 13:44:22 +0100
commitcaea6653b1acc4f3cf709830e4af32dbbb2b39f0 (patch)
treeb96b3bca08aaedb2c4cc824b9046f1b8690c6688 /modules
parentb3de9dded8476b85e0210c8deab17895180ad2c3 (diff)
parentbdd5d81b13cd5886eab49d23472233b9b6e7f606 (diff)
Merge pull request #531 from Enzime/fix-tailscale
Fix Tailscale module
Diffstat (limited to 'modules')
-rw-r--r--modules/services/tailscale.nix21
1 files changed, 16 insertions, 5 deletions
diff --git a/modules/services/tailscale.nix b/modules/services/tailscale.nix
index fb63af9..6e1a86d 100644
--- a/modules/services/tailscale.nix
+++ b/modules/services/tailscale.nix
@@ -29,20 +29,31 @@ in
};
config = mkIf cfg.enable {
- warnings = [
- (mkIf (cfg.magicDNS.enable && cfg.domain == "") "${showOption cfg.domain} isn't empty, Tailscale MagicDNS search path won't be configured.")
- ];
+ assertions = [ {
+ assertion = !cfg.magicDNS.enable || config.networking.dns != [ "100.100.100.100" ];
+ message = ''
+ When MagicDNS is enabled, fallback DNS servers need to be set with `networking.dns`.
+
+ Otherwise, Tailscale will take a long time to connect and all DNS queries
+ will fail until Tailscale has connected.
+ '';
+ } ];
environment.systemPackages = [ cfg.package ];
- launchd.user.agents.tailscaled = {
+
+ launchd.daemons.tailscaled = {
# derived from
# https://github.com/tailscale/tailscale/blob/main/cmd/tailscaled/install_darwin.go#L30
serviceConfig = {
Label = "com.tailscale.tailscaled";
- ProgramArguments = [ "${lib.getBin cfg.package}/bin/tailscaled" ];
+ ProgramArguments = [
+ "/bin/sh" "-c"
+ "/bin/wait4path ${cfg.package} &amp;&amp; ${cfg.package}/bin/tailscaled"
+ ];
RunAtLoad = true;
};
};
+
networking = mkIf cfg.magicDNS.enable {
dns = [ "100.100.100.100" ];
search =