Deploy to fully-qualified domain names to eliminate DNS search path driven query amplification (#1293)

This commit is contained in:
Jeremy Daer
2025-10-11 15:57:47 -07:00
committed by GitHub
parent 5bbb94e1c6
commit b8f09b7f75
4 changed files with 45 additions and 20 deletions
+27 -2
View File
@@ -1,7 +1,32 @@
#!/usr/bin/env bash
#
# Verify Tailscale connection and SSH authentication before deploying.
# Validate hostnames are FQDNs ending in -int.37signals.com
if command -v yq >/dev/null 2>&1; then
declare -A SUGGESTIONS
while IFS= read -r host; do
if [[ ! $host =~ -int\.37signals\.com$ ]]; then
if [[ $host =~ -4[0-9]{2}$ ]]; then
SUGGESTIONS["$host"]="$host.df-ams-int.37signals.com"
elif [[ $host =~ -1[0-9]{2}$ ]]; then
SUGGESTIONS["$host"]="$host.df-iad-int.37signals.com"
else
SUGGESTIONS["$host"]="$host.sc-chi-int.37signals.com"
fi
fi
done < <(bin/kamal config -d "${KAMAL_DESTINATION:-production}" 2>/dev/null | yq '.":hosts"[]')
if [ ${#SUGGESTIONS[@]} -gt 0 ]; then
echo "Unqualified hostnames found in config/deploy.${KAMAL_DESTINATION:-production}.yml:" >&2
echo "" >&2
echo "Update to use fully-qualified hostnames:" >&2
for host in "${!SUGGESTIONS[@]}"; do
echo " $host → ${SUGGESTIONS[$host]}" >&2
done
exit 1
fi
fi
# Verify Tailscale connection and SSH authentication before deploying.
tailscale_cmd() {
if command -v tailscale >/dev/null 2>&1; then
tailscale "$@"
+6 -6
View File
@@ -1,13 +1,13 @@
servers:
web:
hosts:
- fizzy-beta-app-01
- fizzy-beta-app-101
- fizzy-beta-app-01.sc-chi-int.37signals.com
- fizzy-beta-app-101.df-iad-int.37signals.com
labels:
otel_scrape_enabled: true
jobs:
hosts:
- fizzy-beta-app-01
- fizzy-beta-app-01.sc-chi-int.37signals.com
labels:
otel_scrape_enabled: true
@@ -42,12 +42,12 @@ accessories:
- fizzy:/home/beamer
cmd: beamer run --retention=1h --metrics-port=9000
hosts:
- fizzy-beta-app-01
- fizzy-beta-app-101
- fizzy-beta-app-01.sc-chi-int.37signals.com
- fizzy-beta-app-101.df-iad-int.37signals.com
load-balancer:
image: basecamp/kamal-proxy:lb
host: fizzy-beta-lb-01
host: fizzy-beta-lb-01.sc-chi-int.37signals.com
options:
publish:
- 80:80
+6 -6
View File
@@ -1,13 +1,13 @@
servers:
web:
hosts:
- fizzy-app-101
- fizzy-app-102
- fizzy-app-101.df-iad-int.37signals.com
- fizzy-app-102.df-iad-int.37signals.com
labels:
otel_scrape_enabled: true
jobs:
hosts:
- fizzy-app-101
- fizzy-app-101.df-iad-int.37signals.com
labels:
otel_scrape_enabled: true
@@ -42,12 +42,12 @@ accessories:
- fizzy:/home/beamer
cmd: beamer run --retention=1h --metrics-port=9000
hosts:
- fizzy-app-101
- fizzy-app-102
- fizzy-app-101.df-iad-int.37signals.com
- fizzy-app-102.df-iad-int.37signals.com
load-balancer:
image: basecamp/kamal-proxy:lb
host: fizzy-lb-101
host: fizzy-lb-101.df-iad-int.37signals.com
labels:
otel_role: load-balancer
otel_service: fizzy-load-balancer
+6 -6
View File
@@ -1,13 +1,13 @@
servers:
web:
hosts:
- fizzy-staging-app-01
- fizzy-staging-app-101
- fizzy-staging-app-01.sc-chi-int.37signals.com
- fizzy-staging-app-101.df-iad-int.37signals.com
labels:
otel_scrape_enabled: true
jobs:
hosts:
- fizzy-staging-app-01
- fizzy-staging-app-01.sc-chi-int.37signals.com
labels:
otel_scrape_enabled: true
@@ -42,12 +42,12 @@ accessories:
- fizzy:/home/beamer
cmd: beamer run --retention=1h --metrics-port=9000
hosts:
- fizzy-staging-app-01
- fizzy-staging-app-101
- fizzy-staging-app-01.sc-chi-int.37signals.com
- fizzy-staging-app-101.df-iad-int.37signals.com
load-balancer:
image: basecamp/kamal-proxy:lb
host: fizzy-staging-lb-01
host: fizzy-staging-lb-01.sc-chi-int.37signals.com
labels:
otel_role: load-balancer
otel_service: fizzy-load-balancer