summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-03-15 13:52:45 +0100
committerThomas Haller <thaller@redhat.com>2023-03-16 08:33:00 +0100
commita6802cfa74a0208ffd3d7ce684431ae9bebff484 (patch)
treef12b0a91c15d0d7573e6ce282d3bb8d80d8fd8a2
parentc7675c73eee3c460ad23ac8b16ec83e9c332f189 (diff)
downloadNetworkManager-a6802cfa74a0208ffd3d7ce684431ae9bebff484.tar.gz
nm-in-container: disable handling of "/etc/resolv.conf" in container and use 8.8.8.8.
By default, podman bind mounts a "/etc/resolv.conf" file. That prevents NetworkManager (inside the container) to update the file, which leads to warnings in the log and certain NM-ci tests won't pass due to that. Disable handling of "/etc/resolv.conf" in podman. But also pre-deploy a default resolv.conf, with the google name server 8.8.8.8. I don't understand why, but even with "--dns=none", writing "/etc/resolv.conf" while building the container doesn't take effect. Instead, write a usable "/etc/resolv.conf" from "/etc/rc.d/rc.local".
-rwxr-xr-xcontrib/scripts/nm-in-container.d/data-etc-rc.local5
-rwxr-xr-xcontrib/scripts/nm-in-container.d/data-nm-env-prepare.sh2
-rwxr-xr-xcontrib/scripts/nm-in-container.sh3
3 files changed, 10 insertions, 0 deletions
diff --git a/contrib/scripts/nm-in-container.d/data-etc-rc.local b/contrib/scripts/nm-in-container.d/data-etc-rc.local
index 3677a8c334..d59a8d769b 100755
--- a/contrib/scripts/nm-in-container.d/data-etc-rc.local
+++ b/contrib/scripts/nm-in-container.d/data-etc-rc.local
@@ -1,3 +1,8 @@
#!/bin/bash -e
/usr/bin/_nm-in-container-setup.sh
+
+cat <<EOF > /etc/resolv.conf
+# Generated by /etc/rc.d/rc.local
+nameserver 8.8.8.8
+EOF
diff --git a/contrib/scripts/nm-in-container.d/data-nm-env-prepare.sh b/contrib/scripts/nm-in-container.d/data-nm-env-prepare.sh
index aa8262e98d..e26fb16758 100755
--- a/contrib/scripts/nm-in-container.d/data-nm-env-prepare.sh
+++ b/contrib/scripts/nm-in-container.d/data-nm-env-prepare.sh
@@ -83,6 +83,8 @@ do_setup() {
--listen-address="192:168:$((120 + IDX))::1" \
--dhcp-range="192.168.$((120 + $IDX)).100,192.168.$((120 + $IDX)).150,2m" \
--dhcp-range="192:168:$((120 + IDX))::1:1000,192:168:$((120 + IDX))::1:2000,64,2m" \
+ --dhcp-option=option:dns-server,8.8.8.8,8.8.4.4 \
+ --dhcp-option=option6:dns-server \
--no-ping \
&
diff --git a/contrib/scripts/nm-in-container.sh b/contrib/scripts/nm-in-container.sh
index 521b85e86d..4e405ea5f7 100755
--- a/contrib/scripts/nm-in-container.sh
+++ b/contrib/scripts/nm-in-container.sh
@@ -497,6 +497,8 @@ RUN systemctl enable NetworkManager
# Generate a stable machine id.
RUN echo "10001000100010001000100010001000" > /etc/machine-id
+RUN echo -e "# Default from the container image\nnameserver 8.8.8.8" > /etc/resolv.conf
+
# Generate a fixed (version 1) secret key.
RUN mkdir -p /var/lib/NetworkManager
RUN chmod 700 /var/lib/NetworkManager
@@ -569,6 +571,7 @@ do_run() {
podman run --privileged \
--name "$CONTAINER_NAME_NAME" \
+ --dns=none \
-d \
-v "$BASEDIR_NM:$BASEDIR_NM" \
"${BIND_NM_CI[@]}" \