Skip to content

Commit

Permalink
Deprecate the mechanism which updates resolv.conf to point to our own…
Browse files Browse the repository at this point in the history
… DNS server.

Document for users to specify the --dns=127.0.0.1 explicitly.
  • Loading branch information
adelton committed Dec 27, 2024
1 parent b30c197 commit 82917ab
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 10 deletions.
7 changes: 2 additions & 5 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -259,11 +259,8 @@ If you receive error like

you might need to use `ipa-server-install` option `--skip-mem-check`.

When running DNS server (the `--setup-dns` argument to
`ipa-server-install`) in a container with read-only root filesystem
(the `--read-only` option to `podman run` or `docker run`), the setup
code in the container won't be able to edit `/etc/resolv.conf` in the
container to point it to itself. Add `--dns=127.0.0.1` option to the
When running DNS server (the `--setup-dns` argument to `ipa-server-install`)
in the FreeIPA container, add `--dns=127.0.0.1` option to the
`podman run` or `docker run` invocation to allow the FreeIPA server
to reach its own DNS server.

Expand Down
15 changes: 14 additions & 1 deletion ipa-server-configure-first
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,9 @@ if [ "$1" == upgrade ] ; then
if ! grep -q "\b$HOSTNAME\b" /etc/hosts ; then
echo "127.0.0.2 $HOSTNAME" >> /etc/hosts
fi
echo "NOTE:" >&2
echo "Consider setting --dns=127.0.0.1 when using internal DNS server." >&2
echo "The mechanism which sets it now will be removed from images in April 2025." >&2
fi
# Removing kdcinfo.* which is likely to hold old IP address
rm -rf /var/lib/sss/pubconf/kdcinfo.*
Expand Down Expand Up @@ -207,6 +210,11 @@ else
usage "The container has to have fully-qualified hostname defined."
fi

resolv_conf_has_localhost=false
if grep '^nameserver 127\.0\.0\.1$' /etc/resolv.conf ; then
resolv_conf_has_localhost=true
fi

STDIN=/dev/stdin
STDOUT=/dev/stdout
STDERR=/dev/stderr
Expand All @@ -231,14 +239,19 @@ else
fi
if [ "$IPA_SERVER_IP" == no-update ] ; then
echo "FreeIPA server IP address update disabled, skipping update-self-ip-address."
elif ( systemctl is-active -q named named-pkcs11 || [ -n "$IPA_SERVER_IP" ] ) ; then
elif systemctl is-active -q named named-pkcs11 || [ -n "$IPA_SERVER_IP" ] ; then
cp -f /etc/resolv.conf /data/etc/resolv.conf.ipa
if wait_for_dns 180; then
update_server_ip_address
else
echo "Unable to resolve \"${HOSTNAME}\". Is --dns=127.0.0.1 set for the container?" >&2
exit 2
fi
if systemctl is-active -q named named-pkcs11 && ! $resolv_conf_has_localhost ; then
echo "NOTE:" >&2
echo "Consider setting --dns=127.0.0.1 when using internal DNS server." >&2
echo "The mechanism which sets it now will be removed from images in April 2025." >&2
fi
else
echo "FreeIPA server does not run DNS server, skipping update-self-ip-address."
fi
Expand Down
10 changes: 6 additions & 4 deletions tests/run-master-and-replica.sh
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ function run_ipa_container() {
(
set -x
umask 0
$docker run $readonly_run -d --name "$N" $OPTS \
$docker run -d --name "$N" $OPTS \
-v $VOLUME:/data:Z $DOCKER_RUN_OPTS \
-e PASSWORD=Secret123 "$IMAGE" "$@"
)
Expand All @@ -142,9 +142,9 @@ function run_ipa_container() {

IMAGE="$1"

readonly_run="$readonly"
DOCKER_RUN_OPTS="--dns=127.0.0.1"
if [ "$readonly" == "--read-only" ] ; then
readonly_run="$readonly --dns=127.0.0.1"
DOCKER_RUN_OPTS="$DOCKER_RUN_OPTS --read-only"
fi

skip_opts=
Expand Down Expand Up @@ -238,9 +238,11 @@ if [ "$replica" = 'none' ] ; then
fi

# Setup replica
readonly_run="$readonly"
MASTER_IP=$( $docker inspect --format '{{ .NetworkSettings.IPAddress }}' freeipa-master )
DOCKER_RUN_OPTS="--dns=$MASTER_IP"
if [ "$readonly" == "--read-only" ] ; then
DOCKER_RUN_OPTS="$DOCKER_RUN_OPTS --read-only"
fi
if [ "$docker" != "sudo podman" -a "$docker" != "podman" ] ; then
DOCKER_RUN_OPTS="--link freeipa-master:ipa.example.test $DOCKER_RUN_OPTS"
fi
Expand Down

0 comments on commit 82917ab

Please sign in to comment.