Add K3s agent setup with NVMe-backed persistent storage
Bind-mount K3s agent data, node identity, and kubelet dirs from NVMe so container image cache and node registration survive reboots on the diskless netboot nodes. Includes K3s binary download, agent systemd service, DHCP hostname resolution, and open-iscsi for Longhorn iSCSI support.
This commit is contained in:
28
files/set-hostname-from-dhcp
Normal file
28
files/set-hostname-from-dhcp
Normal file
@@ -0,0 +1,28 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user