[Fix] resolv.conf fix for ubuntu 18.04

This PS replaces resolv.conf link file with generated resolv.conf
and stops systemd-resolved service on build node which causes issue
with coredns container running on build node

Change-Id: Id317587b0c46fdc4822ac9b5bb27fef90bb17636
Signed-off-by: Sreejith Punnapuzha <sreejith.punnapuzha@outlook.com>
This commit is contained in:
Sreejith Punnapuzha 2019-11-07 19:45:16 -06:00 committed by Bose, Arijit (ab7180)
parent 77c91e83ac
commit 970401b91e
2 changed files with 19 additions and 4 deletions

View File

@ -1,5 +1,6 @@
DNS_ZONE_FILE="${TEMP_DIR}/ingress.dns"
COREFILE="${TEMP_DIR}/ingress.corefile"
RESOLV_CONF="${TEMP_DIR}/resolv.conf"
ingress_dns_config() {
ingress_domain=$(config_ingress_domain)
@ -20,15 +21,28 @@ ingress_dns_config() {
DNS_DOMAIN=${ingress_domain} ZONE_FILE=$(basename $DNS_ZONE_FILE) DNS_SERVERS="$UPSTREAM_DNS" envsubst < "${TEMPLATE_DIR}/ingress_corefile.sub" > "${COREFILE}"
}
ingress_resolv_conf() {
# Update node DNS settings
for server in $UPSTREAM_DNS; do
if ! grep "nameserver $server" "$RESOLV_CONF"; then
echo "nameserver $server" >> "$RESOLV_CONF"
fi
done
}
ingress_dns_start() {
# nodename where DNS should run
nodename=$1
remote_work_dir="/var/tmp/coredns"
remote_zone_file="${remote_work_dir}/$(basename $DNS_ZONE_FILE)"
remote_corefile="${remote_work_dir}/$(basename $COREFILE)"
remote_zone_file="${remote_work_dir}/$(basename "$DNS_ZONE_FILE")"
remote_corefile="${remote_work_dir}/$(basename "$COREFILE")"
remote_resolv_conf="/etc/$(basename "$RESOLV_CONF")"
ssh_cmd "${nodename}" mkdir -p "${remote_work_dir}"
rsync_cmd "$DNS_ZONE_FILE" "${nodename}:${remote_zone_file}"
rsync_cmd "$COREFILE" "${nodename}:${remote_corefile}"
ssh_cmd "${nodename}" docker run -d -v /var/tmp/coredns:/data -w /data --network host --restart always -P $IMAGE_COREDNS -conf $(basename $remote_corefile)
rsync_cmd "$RESOLV_CONF" "${nodename}:${remote_resolv_conf}"
ssh_cmd "${nodename}" systemctl stop systemd-resolved
ssh_cmd "${nodename}" systemctl disable systemd-resolved
ssh_cmd "${nodename}" docker run -d -v /var/tmp/coredns:/data -w /data --network host --restart always -P "$IMAGE_COREDNS" -conf "$(basename "$remote_corefile")"
}

View File

@ -20,4 +20,5 @@ source "${GATE_UTILS}"
DNS_SERVER=$1
ingress_dns_config
ingress_dns_start ${DNS_SERVER}
ingress_resolv_conf "${DNS_SERVER}"
ingress_dns_start "${DNS_SERVER}"