All checks were successful
Update README with ADR Index / update-readme (push) Successful in 6s
188 lines
11 KiB
Markdown
188 lines
11 KiB
Markdown
# 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 (QNAP) | Library fortress, knowledge storage |
|
|
| `gravenhollow` | Gravenhollow | Fast NAS (TrueNAS Scale) | Living memory of the Underdark, all-SSD, dual 10GbE, 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 🪨 gravenhollow 🏙️ waterdeep │
|
|
│ QNAP NAS TrueNAS Scale (SSD) Mac Mini │
|
|
│ nfs-slow nfs-fast Dev workstation │
|
|
│ High capacity High speed, 12.2TB Primary dev box │
|
|
│ "Library Fortress" "Living Memory" "City of Splendors" │
|
|
└───────────────────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
## Storage Mapping
|
|
|
|
| Location | Storage Class | Speed | Capacity | Use Case |
|
|
|----------|--------------|-------|----------|----------|
|
|
| Candlekeep | `nfs-default` | HDD | High | Backups, archives, media |
|
|
| Gravenhollow | `nfs-fast` | SSD (12.2 TB) | Medium-High | Database WAL, hot data, model cache |
|
|
| 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>.node.kubernetes.io`
|
|
- Local DNS: `<node>.lab.daviestechlabs.io`
|
|
- mDNS: `<node>.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)
|
|
* [Gravenhollow](https://forgottenrealms.fandom.com/wiki/Gravenhollow)
|
|
* Related: [ADR-0035](0035-arm64-worker-strategy.md) - ARM64 Worker Strategy
|
|
* Related: [ADR-0011](0011-kuberay-unified-serving.md) - KubeRay Unified Serving
|