From bc067b924d6c5afc7bea83c13cac3b693eb351ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Andr=C3=A9?= Date: Wed, 19 Aug 2020 18:14:02 +0200 Subject: [PATCH] Bug 1870285: OpenStack: Ensure resolv.conf exists before running podman Manual backport of https://github.com/openshift/machine-config-operator/pull/1773 to release-4.5 because of merge conflict. We can't share the prepender script between control plane and compute nodes in OpenStack due to dependency on the DNS VIP. This basically boils down to porting https://github.com/openshift/machine-config-operator/pull/1765 to the openstack worker prepender script that was forgotten in the initial commit. VShpere counterpart doesn't run podman and hence doesn't need the patch. --- .../openstack/files/NetworkManager-resolv-prepender.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/templates/worker/00-worker/openstack/files/NetworkManager-resolv-prepender.yaml b/templates/worker/00-worker/openstack/files/NetworkManager-resolv-prepender.yaml index d65fadf18f..e6d4b933f8 100644 --- a/templates/worker/00-worker/openstack/files/NetworkManager-resolv-prepender.yaml +++ b/templates/worker/00-worker/openstack/files/NetworkManager-resolv-prepender.yaml @@ -22,6 +22,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 \ @@ -37,9 +41,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 "Couldn't find a non-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