aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2026-01-29 09:56:33 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2026-01-29 10:03:06 +0000
commit90a7728cd8905cd26b90d06f7873df8bad43ae9a (patch)
treeaa038a8aca875c353482aa512380284f492c2033
parent56970c3c4b0bc61d972837661a31cc2b9e8e8d7c (diff)
nuageinit: support fetching configuration on multiple iface
On some environement a VM can be connected to multiple ifaces but only one will respond to dhcp and able to fetch the metadata. Launch the early dhclient on all available ifaces and as soon as one dhcp has successfully configured an iface, proceed with fetching the metadata. MFC After: 1 week Reported by: mateusz.klejn@ovhcloud.com Tested by: mateusz.klejn@ovhcloud.com Sponsored by: OVHcloud
-rwxr-xr-xlibexec/rc/rc.d/nuageinit11
1 files changed, 8 insertions, 3 deletions
diff --git a/libexec/rc/rc.d/nuageinit b/libexec/rc/rc.d/nuageinit
index c901971488bd..259ce3c138e5 100755
--- a/libexec/rc/rc.d/nuageinit
+++ b/libexec/rc/rc.d/nuageinit
@@ -56,10 +56,15 @@ nuageinit_start()
OpenStack*)
mkdir -p /media/nuageinit/openstack/latest
ifaces=$(ifconfig -l ether)
- set -- $ifaces
- dhclient -p /tmp/ephemeraldhcp.pid $1
+ for iface in $ifaces; do
+ dhclient -p /tmp/ephemeraldhcp.$iface.pid $iface
+ done
+ pids=$(cat /tmp/ephemeraldhcp.*.pid)
+ left=$(pwait -op $pids 2>/dev/null)
+ for iface in $left; do
+ kill -15 $left
+ done
fetch_openstack
- pkill -F /tmp/ephemeraldhcp.pid
citype=config-2
;;
*)