35 lines
885 B
Plaintext
35 lines
885 B
Plaintext
|
# TODO implement this in go
|
||
|
|
||
|
set -e -o pipefail
|
||
|
cd "$APPDIR"
|
||
|
|
||
|
conf_path="$_RUNTIME_DIR_PATH"/dnsmasq.conf
|
||
|
|
||
|
cat etc/dnsmasq/base.conf > "$conf_path"
|
||
|
|
||
|
tmp="$(mktemp -d -t cryptic-net-dnsmasq-entrypoint-XXX)"
|
||
|
|
||
|
( trap "rm -rf '$tmp'" EXIT
|
||
|
|
||
|
tar xzf "$_BOOTSTRAP_PATH" -C "$tmp" ./nebula/hosts
|
||
|
|
||
|
thisHostName=$(tar xzf "$_BOOTSTRAP_PATH" --to-stdout ./hostname)
|
||
|
thisHostIP=$(cat "$tmp"/nebula/hosts/"$thisHostName".yml | yq '.ip')
|
||
|
|
||
|
echo "listen-address=$thisHostIP" >> "$conf_path"
|
||
|
|
||
|
ls -1 "$tmp"/nebula/hosts | while read hostYml; do
|
||
|
|
||
|
hostName=$(echo "$hostYml" | cut -d. -f1)
|
||
|
hostIP=$(cat "$tmp"/nebula/hosts/"$hostYml" | yq '.ip')
|
||
|
echo "address=/${hostName}.hosts.cryptic.io/$hostIP" >> "$conf_path"
|
||
|
|
||
|
done
|
||
|
)
|
||
|
|
||
|
cat "$_DAEMON_YML_PATH" | \
|
||
|
yq '.dns.resolvers | .[] | "server=" + .' \
|
||
|
>> "$conf_path"
|
||
|
|
||
|
exec bin/dnsmasq -d -C "$conf_path"
|