From e344286f4f44f48bf53cb309cf3115f159a42e5d Mon Sep 17 00:00:00 2001 From: 3lding Date: Tue, 9 Jun 2026 22:15:26 +0200 Subject: [PATCH 1/2] nuageinit: Add provisionig support for Hetzner Cloud VMs Signed-off-by: 3lding --- libexec/rc/rc.d/nuageinit | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/libexec/rc/rc.d/nuageinit b/libexec/rc/rc.d/nuageinit index e2f0a85bc3bce1..48cf7fbf9984be 100755 --- a/libexec/rc/rc.d/nuageinit +++ b/libexec/rc/rc.d/nuageinit @@ -26,6 +26,29 @@ fetch_openstack() cd - } +fetch_hcloud() +{ + cd /media/nuageinit + for file in metadata userdata; do + out_file=$(echo "$file" | sed -E 's/(user|meta)data/\1-data/') + fetch -o $out_file http://169.254.169.254/hetzner/v1/$file + done + cd - +} + +init_network() +{ + ifaces=$(ifconfig -l ether) + 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 +} + nuageinit_start() { local citype @@ -55,18 +78,16 @@ nuageinit_start() case "$product" in OpenStack*) mkdir -p /media/nuageinit/openstack/latest - ifaces=$(ifconfig -l ether) - 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 + init_network fetch_openstack citype=config-2 ;; + vServer*) + mkdir -p /media/nuageinit + init_network + fetch_hetzner + citype=nocloud + ;; *) # try to detect networked based instance err 1 "Impossible to find a cloud init provider" From d009d463479fce03c2c7394c29e7b993171f4a6c Mon Sep 17 00:00:00 2001 From: 3lding Date: Tue, 9 Jun 2026 22:17:53 +0200 Subject: [PATCH 2/2] nuageinit: fix typo Signed-off-by: 3lding --- libexec/rc/rc.d/nuageinit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/rc/rc.d/nuageinit b/libexec/rc/rc.d/nuageinit index 48cf7fbf9984be..08c2c262157402 100755 --- a/libexec/rc/rc.d/nuageinit +++ b/libexec/rc/rc.d/nuageinit @@ -85,7 +85,7 @@ nuageinit_start() vServer*) mkdir -p /media/nuageinit init_network - fetch_hetzner + fetch_hcloud citype=nocloud ;; *)