#!/bin/bash # Set hostname from DHCP lease # Runs before k3s-agent to ensure proper node name set -euo pipefail log() { echo "[hostname] $*"; logger -t set-hostname "$*"; } # Wait for DHCP lease MAX_WAIT=60 for i in $(seq 1 $MAX_WAIT); do # Check for lease files from systemd-networkd for lease in /run/systemd/netif/leases/*; do if [ -f "$lease" ]; then HOSTNAME=$(grep -oP '^HOSTNAME=\K.*' "$lease" 2>/dev/null || true) if [ -n "$HOSTNAME" ]; then log "Found hostname in DHCP lease: $HOSTNAME" hostnamectl set-hostname "$HOSTNAME" log "Hostname set to: $(hostname)" exit 0 fi fi done sleep 1 done log "Warning: No DHCP hostname found after ${MAX_WAIT}s, using default" exit 0