edge-host: correct N100/NVMe doc drift (deployed unit is a Wyse 3040 on eMMC) #117

Merged
k.renner merged 1 commits from fix/edge-host-readme-hardware into master 2026-07-07 07:30:57 +00:00
3 changed files with 16 additions and 9 deletions
+2 -1
View File
@@ -1,5 +1,6 @@
---
# Bare-metal Arch Linux edge host (N100) — replaces the k8s-edge Talos VM
# Bare-metal Arch Linux edge host (Dell Wyse 3040, internal eMMC) — replaces
# the k8s-edge Talos VM
# (opentofu vm_153) as the home for hardware-bound services:
# - zwave-js-ui (ZWA-2 Z-Wave USB radio, docker compose)
# - sml2mqtt (FTDI power-meter reader, docker compose)
+13 -7
View File
@@ -1,4 +1,4 @@
# edge-host — bare-metal Arch N100 (replaces the k8s-edge Talos VM)
# edge-host — bare-metal Arch thin client (replaces the k8s-edge Talos VM)
Runs the hardware-bound services that used to be pinned to the `k8s-edge`
Talos node (opentofu `vm_153_k8s_edge.tf`), plus the new CAN bridge:
@@ -11,8 +11,13 @@ Talos node (opentofu `vm_153_k8s_edge.tf`), plus the new CAN bridge:
Everything else that once lived on k8s-edge (HA core, matter-server, OTBR,
music-assistant) already moved to the general node pool and stays in the
cluster — they need VLAN L2 presence, not USB, so a single LAN NIC on the
N100 is sufficient.
cluster — they need VLAN L2 presence, not USB, so a single LAN NIC is
sufficient.
The deployed unit is a **Dell Wyse 3040** (Atom x5-Z8350, 2 GB RAM) on a
~7.3 GB internal **eMMC** (`/dev/mmcblk0`) — see "Logging & eMMC" for the
flash-wear handling that hardware implies. The installer also supports an
N100/NVMe box; it autodetects the target disk, so either works.
Rationale for leaving Kubernetes for the CAN part: the stock Talos kernel
ships with `CONFIG_CAN` unset (siderolabs/talos#7686), so SocketCAN cannot
@@ -24,8 +29,9 @@ Build and boot the dedicated installer image — see
`images/edge-host-iso/README.md`. Short version:
1. `sudo pacman -S archiso && sudo images/edge-host-iso/build.sh`
2. Write ISO to a USB stick, boot the N100 from it, run `edge-install`
(partitions the NVMe, installs the ansible-ready base system with SSH
2. Write ISO to a USB stick, boot the target box from it, run `edge-install`
(partitions the internal disk — NVMe if present, else the eMMC; the
installer autodetects — installs the ansible-ready base system with SSH
keys, DHCP, docker — asks for confirmation before wiping).
3. Add the DHCP reservation/DNS entry for `edge-1.srv.renner.uno` on the
UDM, confirm `ssh root@edge-1.srv.renner.uno` works.
@@ -69,7 +75,7 @@ The Z-Wave network keys do NOT need separate handling — they live in
## Cutover checklist (service downtime: minutes, do per-service)
Preparation:
- [ ] `vault.yml` populated (above), play runs green against the N100
- [ ] `vault.yml` populated (above), play runs green against edge-1
- [ ] CAN: Innomaker adapter connected to the VX3 external CAN port,
`ip -details link show can0` shows `state ERROR-ACTIVE bitrate 250000`,
`candump can0 -n 5` shows frames
@@ -78,7 +84,7 @@ zwave-js (order matters — never two servers on one radio):
- [ ] Copy the store out of the PVC while the pod still runs:
`kubectl -n home-assistant exec deploy/zwave-js -- tar cf - -C /usr/src/app store | tar xf - -C /opt/edge-host/zwave-js/`
- [ ] Scale down in-cluster: `kubectl -n home-assistant scale deploy/zwave-js --replicas 0`
- [ ] Move the ZWA-2 stick to the N100, `docker compose up -d zwave-js`
- [ ] Move the ZWA-2 stick to edge-1, `docker compose up -d zwave-js`
- [ ] Point HA `zwave_js` integration at `ws://edge-1.srv.renner.uno:3000`
- [ ] Nodes alive in the UI on :8091 → remove the flux kustomization
`home-assistant-zwavejs` + PVC in a follow-up PR
+1 -1
View File
@@ -29,7 +29,7 @@ edge_mqtt_host: mqtt.renner.uno
edge_mqtt_port: 1883
# --- USB devices (stable by-id symlinks). After physically moving the
# sticks to the N100, verify with `ls -l /dev/serial/by-id/` — the by-id
# sticks to edge-1, verify with `ls -l /dev/serial/by-id/` — the by-id
# names travel with the device, not the host, so these should not change.
edge_zwave_device: /dev/serial/by-id/usb-Nabu_Casa_ZWA-2_80B54EE15720-if00
edge_stromzaehler_device: /dev/serial/by-id/usb-FTDI_FT230X_Basic_UART_DK0E1GP5-if00-port0