updating to match everything in my homelab.
This commit is contained in:
187
decisions/0037-node-naming-conventions.md
Normal file
187
decisions/0037-node-naming-conventions.md
Normal file
@@ -0,0 +1,187 @@
|
||||
# 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>.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)
|
||||
* [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
|
||||
Reference in New Issue
Block a user