diff --git a/templates/common/baremetal/files/NetworkManager-resolv-prepender.yaml b/templates/common/baremetal/files/NetworkManager-resolv-prepender.yaml index e2946adc78..cef628f2af 100644 --- a/templates/common/baremetal/files/NetworkManager-resolv-prepender.yaml +++ b/templates/common/baremetal/files/NetworkManager-resolv-prepender.yaml @@ -12,6 +12,10 @@ contents: case "$STATUS" in up|down|dhcp4-change|dhcp6-change) logger -s "NM resolv-prepender triggered by ${1} ${2}." + + # Ensure resolv.conf exists before we try to run podman + cp /var/run/NetworkManager/resolv.conf /etc/resolv.conf + NAMESERVER_IP=$(/usr/bin/podman run --rm \ --authfile /var/lib/kubelet/config.json \ --net=host \ @@ -26,9 +30,6 @@ contents: sed -e "/^search/d" \ -e "/Generated by/c# Generated by KNI resolv prepender NM dispatcher script\nsearch $DOMAIN\nnameserver $NAMESERVER_IP" \ /var/run/NetworkManager/resolv.conf > /etc/resolv.tmp - else - logger -s "NM resolv-prepender: Couldn't find a Virtual IP, just updating resolv.conf" - cp /var/run/NetworkManager/resolv.conf /etc/resolv.tmp fi # Only leave the first 3 nameservers in /etc/resolv.conf sed -i ':a $!{N; ba}; s/\(^\|\n\)nameserver/\n# nameserver/4g' /etc/resolv.tmp diff --git a/templates/master/00-master/openstack/files/NetworkManager-resolv-prepender.yaml b/templates/master/00-master/openstack/files/NetworkManager-resolv-prepender.yaml index 5bda97d340..58654faf19 100644 --- a/templates/master/00-master/openstack/files/NetworkManager-resolv-prepender.yaml +++ b/templates/master/00-master/openstack/files/NetworkManager-resolv-prepender.yaml @@ -10,6 +10,10 @@ contents: case "$STATUS" in up|down|dhcp4-change|dhcp6-change) logger -s "NM resolv-prepender triggered by ${1} ${2}." + + # Ensure resolv.conf exists before we try to run podman + cp /var/run/NetworkManager/resolv.conf /etc/resolv.conf + NAMESERVER_IP="{{.Infra.Status.PlatformStatus.OpenStack.NodeDNSIP}}" DOMAIN="{{.EtcdDiscoveryDomain}}" if [[ -n "$NAMESERVER_IP" ]]; then @@ -17,9 +21,6 @@ contents: sed -e "/^search/d" \ -e "/Generated by/c# Generated by OpenStack resolv prepender NM dispatcher script\nsearch $DOMAIN\nnameserver $NAMESERVER_IP" \ /var/run/NetworkManager/resolv.conf > /etc/resolv.tmp - else - logger -s "NM resolv-prepender: Couldn't find a Virtual IP, just updating resolv.conf" - cp /var/run/NetworkManager/resolv.conf /etc/resolv.tmp fi # Only leave the first 3 nameservers in /etc/resolv.conf sed -i ':a $!{N; ba}; s/\(^\|\n\)nameserver/\n# nameserver/4g' /etc/resolv.tmp diff --git a/templates/master/00-master/vsphere/files/NetworkManager-resolv-prepender.yaml b/templates/master/00-master/vsphere/files/NetworkManager-resolv-prepender.yaml index 3bde32aa4f..4f4c09b6e7 100644 --- a/templates/master/00-master/vsphere/files/NetworkManager-resolv-prepender.yaml +++ b/templates/master/00-master/vsphere/files/NetworkManager-resolv-prepender.yaml @@ -16,6 +16,10 @@ contents: case "$STATUS" in up|down|dhcp4-change|dhcp6-change) logger -s "NM resolv-prepender triggered by ${1} ${2}." + + # Ensure resolv.conf exists before we try to run podman + cp /var/run/NetworkManager/resolv.conf /etc/resolv.conf + NAMESERVER_IP=$(/usr/local/bin/non_virtual_ip \ "{{.Infra.Status.PlatformStatus.VSphere.APIServerInternalIP}}" \ "{{.Infra.Status.PlatformStatus.VSphere.IngressIP}}") @@ -25,9 +29,6 @@ contents: sed -e "/^search/d" \ -e "/Generated by/c# Generated by KNI resolv prepender NM dispatcher script\nsearch $DOMAIN\nnameserver $NAMESERVER_IP" \ /var/run/NetworkManager/resolv.conf > /etc/resolv.tmp - else - logger -s "NM resolv-prepender: Couldn't find a Virtual IP, just updating resolv.conf" - cp /var/run/NetworkManager/resolv.conf /etc/resolv.tmp fi mv -f /etc/resolv.tmp /etc/resolv.conf ;;