diff --git a/pkg/virtualkubelet/templates/mesh.sh b/pkg/virtualkubelet/templates/mesh.sh index 25801022..f92d47cd 100644 --- a/pkg/virtualkubelet/templates/mesh.sh +++ b/pkg/virtualkubelet/templates/mesh.sh @@ -88,13 +88,18 @@ export WG_SOCKET_DIR="$TMPDIR" # Not all environments support this; ignore errors set -euo pipefail -HOST_DNS=$(grep "^nameserver" /etc/resolv.conf | head -1 | awk '{print $2}') +HOST_DNS_SERVERS=$(awk '/^nameserver/ {print $2}' /etc/resolv.conf) { mkdir -p /tmp/etc-override echo "search default.svc.cluster.local svc.cluster.local cluster.local" > /tmp/etc-override/resolv.conf echo "nameserver {{.DNSServiceIP}}" >> /tmp/etc-override/resolv.conf - echo "nameserver $HOST_DNS" >> /tmp/etc-override/resolv.conf + for dns in $HOST_DNS_SERVERS; do + case "$dns" in + "{{.DNSServiceIP}}"|"1.1.1.1"|"8.8.8.8") continue ;; + esac + echo "nameserver $dns" >> /tmp/etc-override/resolv.conf + done echo "nameserver 1.1.1.1" >> /tmp/etc-override/resolv.conf echo "nameserver 8.8.8.8" >> /tmp/etc-override/resolv.conf mount --bind /tmp/etc-override/resolv.conf /etc/resolv.conf @@ -111,12 +116,8 @@ mount --make-rprivate / 2>/dev/null || true mkdir -p $TMPDIR/var-run/wireguard mount --bind $TMPDIR/var-run /var/run -cat > $TMPDIR/resolv.conf <