# Node Naming Conventions * Status: accepted * Date: 2026-02-05 * Deciders: Billy * Technical Story: Establish memorable, role-based naming for cluster nodes ## Context and Problem Statement The homelab cluster has grown to include: - 14 Kubernetes nodes (control plane + workers) - Multiple storage servers - Development workstations Generic names like `node-01`, `worker-gpu-1` are: - Hard to remember - Don't convey node purpose - Boring How do we name nodes in a way that's memorable, fun, and indicates their role? ## Decision Drivers * Names should indicate node role/capability * Easy to remember and reference in conversation * Consistent theme across the homelab * Scalable as more nodes are added ## Decision Outcome Chosen option: **Dungeons & Dragons character naming scheme** All nodes are named after famous D&D characters from Forgotten Realms, with character class mapping to node role. ## Naming Scheme ### Control Plane → Companions of the Hall The control plane nodes are named after the legendary Companions of the Hall, Drizzt's closest allies. | Node | Character | Hardware | Notes | |------|-----------|----------|-------| | `bruenor` | Bruenor Battlehammer | Intel N100 | Dwarf King of Mithral Hall | | `catti` | Catti-brie | Intel N100 | Human ranger, Bruenor's adopted daughter | | `storm` | Storm Silverhand | Intel N100 | Chosen of Mystra, Harper leader | ### Wizards → GPU Nodes (Spellcasters) Wizards cast powerful spells, just as GPU nodes power AI/ML workloads. | Node | Character | GPU | Notes | |------|-----------|-----|-------| | `khelben` | Khelben "Blackstaff" Arunsun | AMD Radeon 8060S 64GB | Primary AI inference, Strix Halo APU | | `elminster` | Elminster Aumar | NVIDIA RTX 2070 8GB | CUDA workloads, Sage of Shadowdale | | `drizzt` | Drizzt Do'Urden* | AMD Radeon 680M | ROCm backup node | | `danilo` | Danilo Thann | Intel Arc A770 | Intel inference, bard/wizard multiclass | | `regis` | Regis | NVIDIA GPU | Halfling with magical ruby, spellthief vibes | *Drizzt is technically a ranger, but his magical scimitars and time in Menzoberranzan qualify him for the GPU tier. ### Rogues → ARM64 Edge Nodes Rogues are nimble and work in the shadows—perfect for lightweight edge compute on Raspberry Pi nodes. | Node | Character | Hardware | Notes | |------|-----------|----------|-------| | `durnan` | Durnan | Raspberry Pi 4 8GB | Yawning Portal innkeeper, retired adventurer | | `elaith` | Elaith Craulnober | Raspberry Pi 4 8GB | The Serpent, moon elf rogue | | `jarlaxle` | Jarlaxle Baenre | Raspberry Pi 4 8GB | Drow mercenary leader | | `mirt` | Mirt the Moneylender | Raspberry Pi 4 8GB | Harper agent, "Old Wolf" | | `volo` | Volothamp Geddarm | Raspberry Pi 4 8GB | Famous author and traveler | ### Fighters → x86 CPU Workers Fighters are the workhorses, handling general compute without magical (GPU) abilities. | Node | Character | Hardware | Notes | |------|-----------|----------|-------| | `wulfgar` | Wulfgar | Intel x86_64 | Barbarian of Icewind Dale, Aegis-fang wielder | ### Infrastructure Nodes (Locations) | Node | Character/Location | Role | Notes | |------|-------------------|------|-------| | `candlekeep` | Candlekeep | Primary NAS (Synology) | Library fortress, knowledge storage | | `neverwinter` | Neverwinter | Fast NAS (TrueNAS Scale) | Jewel of the North, all-SSD, nfs-fast | | `waterdeep` | Waterdeep | Mac Mini dev workstation | City of Splendors, primary city | ### Future Expansion | Class | Role | Candidate Names | |-------|------|-----------------| | Clerics | Database/backup nodes | Cadderly, Dawnbringer | | Fighters | High-CPU compute | Artemis Entreri, Obould | | Druids | Monitoring/observability | Jaheira, Cernd | | Bards | API gateways | Other Thann family members | | Paladins | Security nodes | Ajantis, Keldorn | ## Architecture ``` ┌───────────────────────────────────────────────────────────────────────────────┐ │ Homelab Cluster (14 Kubernetes Nodes) │ │ │ │ ┌──────────────────────────────────────────────────────────────────────┐ │ │ │ 👑 Control Plane (Companions of the Hall) │ │ │ │ │ │ │ │ bruenor catti storm │ │ │ │ Intel N100 Intel N100 Intel N100 │ │ │ │ "Dwarf King" "Catti-brie" "Silverhand" │ │ │ └──────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────────────────────────────────────────┐ │ │ │ 🧙 Wizards (GPU Spellcasters) │ │ │ │ │ │ │ │ khelben elminster drizzt danilo regis │ │ │ │ Radeon 8060S RTX 2070 Radeon 680M Arc A770 NVIDIA │ │ │ │ 64GB unified 8GB VRAM iGPU 16GB GPU │ │ │ │ "Blackstaff" "Sage" "Ranger" "Bard" "Ruby" │ │ │ └──────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────────────────────────────────────────┐ │ │ │ 🗡️ Rogues (ARM64 Edge Nodes) │ │ │ │ │ │ │ │ durnan elaith jarlaxle mirt volo │ │ │ │ Pi 4 8GB Pi 4 8GB Pi 4 8GB Pi 4 8GB Pi 4 8GB │ │ │ │ "Innkeeper" "Serpent" "Mercenary" "Old Wolf" "Author" │ │ │ └──────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌──────────────────────────────────────────────────────────────────────┐ │ │ │ ⚔️ Fighters (x86 CPU Workers) │ │ │ │ │ │ │ │ wulfgar │ │ │ │ Intel x86_64 │ │ │ │ "Barbarian of Icewind Dale" │ │ │ └──────────────────────────────────────────────────────────────────────┘ │ └───────────────────────────────────────────────────────────────────────────────┘ ┌───────────────────────────────────────────────────────────────────────────────┐ │ 🏰 Locations (Off-Cluster Infrastructure) │ │ │ │ 📚 candlekeep ❄️ neverwinter 🏙️ waterdeep │ │ Synology NAS TrueNAS Scale (SSD) Mac Mini │ │ nfs-default nfs-fast Dev workstation │ │ High capacity High speed Primary dev box │ │ "Library Fortress" "Jewel of the North" "City of Splendors" │ └───────────────────────────────────────────────────────────────────────────────┘ ``` ## Storage Mapping | Location | Storage Class | Speed | Capacity | Use Case | |----------|--------------|-------|----------|----------| | Candlekeep | `nfs-default` | HDD | High | Backups, archives, media | | Neverwinter | `nfs-fast` | SSD | Medium | Database WAL, hot data | | Longhorn | `longhorn` | Local SSD | Distributed | Replicated app data | ## Node Labels ```yaml # GPU Wizard nodes node.kubernetes.io/instance-type: gpu-wizard homelab.daviestechlabs.io/character-class: wizard homelab.daviestechlabs.io/character-name: khelben # ARM64 Rogue nodes node.kubernetes.io/instance-type: raspberry-pi homelab.daviestechlabs.io/character-class: rogue homelab.daviestechlabs.io/character-name: jarlaxle ``` ## DNS/Hostname Resolution All nodes are resolvable via: - Kubernetes DNS: `.node.kubernetes.io` - Local DNS: `.lab.daviestechlabs.io` - mDNS: `.local` ## References * [Forgotten Realms Wiki](https://forgottenrealms.fandom.com/) * [Khelben Arunsun](https://forgottenrealms.fandom.com/wiki/Khelben_Arunsun) * [Elminster](https://forgottenrealms.fandom.com/wiki/Elminster_Aumar) * [Candlekeep](https://forgottenrealms.fandom.com/wiki/Candlekeep) * [Neverwinter](https://forgottenrealms.fandom.com/wiki/Neverwinter) * Related: [ADR-0035](0035-arm64-worker-strategy.md) - ARM64 Worker Strategy * Related: [ADR-0011](0011-kuberay-unified-serving.md) - KubeRay Unified Serving