From 9d9ffd6449e44dcd93e40a58c9a2ba759efdb078 Mon Sep 17 00:00:00 2001 From: Damien Date: Sat, 20 Jun 2026 10:44:13 +0200 Subject: [PATCH] gitea-runner: wait for Tailscale MagicDNS before starting act_runner OpenRC's `tailscale [started]` dependency only guarantees the tailscaled process is up, not that MagicDNS is operational. At boot this creates a race condition where act_runner starts before gitea.taila5ad8.ts.net is resolvable, causing the runner to fail to connect to Gitea. Add an active DNS poll in start_pre() using getent, with a 30-second timeout and an explicit eerror on expiry. depend() is unchanged. --- gitea-runner/install.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gitea-runner/install.sh b/gitea-runner/install.sh index a46d2ab..2e125ff 100644 --- a/gitea-runner/install.sh +++ b/gitea-runner/install.sh @@ -195,6 +195,20 @@ start_pre() { export PATH="/usr/local/bin:$PATH" checkpath --directory --owner gitea-runner:docker --mode 0755 /var/lib/gitea-runner checkpath --file --owner gitea-runner:docker --mode 0644 /var/log/gitea-runner.log + + local timeout=30 + local elapsed=0 + ebegin "Waiting for Tailscale MagicDNS to resolve gitea.taila5ad8.ts.net" + while ! getent hosts gitea.taila5ad8.ts.net > /dev/null 2>&1; do + if [ "$elapsed" -ge "$timeout" ]; then + eend 1 + eerror "Timed out after ${timeout}s waiting for MagicDNS resolution of gitea.taila5ad8.ts.net" + return 1 + fi + sleep 1 + elapsed=$(( elapsed + 1 )) + done + eend 0 } EOF chmod +x /etc/init.d/gitea-runner