5. Taint Workstation Nodes#

Status: Accepted (applied)

Context#

Nodes marked workstation: true in the inventory are machines that may reboot for desktop updates or user activity. Only GPU workloads and monitoring should run there intentionally. General pods should prefer always-on nodes.

Example: in the author’s cluster, ws03 is a desktop workstation with an NVIDIA GPU that doubles as a K3s worker.

Decision#

Apply workstation=true:NoSchedule taint driven by workstation: true in hosts.yml. Add tolerations to GPU workloads (llamacpp) and monitoring (grafana, prometheus, alertmanager). Other services should not tolerate the taint — they belong on dedicated, always-on worker nodes.

Consequences#

  • General pods automatically avoid workstation nodes

  • Intentional workloads explicitly opt in via tolerations

  • x86-only services (e.g. Supabase) should run on dedicated x86 workers, not workstations — add a second x86 node before applying the taint

  • Longhorn storage excluded from workstations (see ADR 0009)