agent: dial the manager by a fleet DNS name (manager.fleet.lab)

The agent's baked default pointed at the PUBLIC admin-UI name
(diskless-server.bitasylum.org), which resolves to the serving host's outbound IP
— unreachable from the fleet LAN. There's no split-horizon to "automate": the
manager agent plane is just another *.fleet.lab, served by the fleet dnsmasq like
boot/nvme/audit.

- serving/.env.example: MGMT_HOST=manager.fleet.lab.
- serving/docker-compose.yml: dnsmasq --address=/${MGMT_HOST}/${SERVER_IP}.
- files/agent/agent.env + main.go default: FLEET_AGENT_MANAGER=manager.fleet.lab:9600.
- server-pki.sh: AGENT_SANS default -> manager.fleet.lab (cert SAN matches the
  baked name, so no FLEET_AGENT_SERVER_NAME override).
- docs/TODO #14 gotcha #4 updated: fleet name, not the IP+server-name workaround.

The public diskless-server.bitasylum.org stays the ADMIN-UI name (Traefik/:443).
This commit is contained in:
Audiobuzz
2026-07-10 06:13:46 +00:00
parent 0068a15917
commit 1b8cf2f344
6 changed files with 31 additions and 13 deletions
+7
View File
@@ -72,6 +72,13 @@ NVME_HOST=nvme.fleet.lab
# Remote audit collector name. Host-generic — bake into the image's rsyslog
# forward rule so every host offloads auditd here; resolved to this serving host.
AUDIT_HOST=audit.fleet.lab
# Fleet-manager AGENT plane name. Baked into the image (files/agent/agent.env
# FLEET_AGENT_MANAGER) so every enrolled host dials the control plane here;
# resolved per-environment to the manager's fleet-LAN address (this serving host
# now; a routable mgmt address once the manager moves to k8s). Just another
# *.fleet.lab like the boot/nvme/audit names. Must match the agent server cert SAN
# (server-pki.sh AGENT_SANS).
MGMT_HOST=manager.fleet.lab
# --- NVMe/TCP target -------------------------------------------------------
# Per-version subsystem NQN base. The long-lived target serves each rootfs