Skip to content

Commit 069d553

Browse files
kumar gopalclaude
andcommitted
docs: deprecate LXC 113 references after Frigate K3s migration
Frigate moved from LXC 113 on fun-bedbug to a K3s pod on k3s-vm-pumped-piglet-gpu (RTX 3070, ONNX detector). Updates the operational docs and one VMID->host mapping script so future readers (human and AI) aren't misdirected to a container that no longer exists. Historical records (blog posts, migration runbooks, action logs) are left intact. fixes #188 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent da0009e commit 069d553

8 files changed

Lines changed: 60 additions & 48 deletions

File tree

CLAUDE.md

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -385,15 +385,18 @@ Always use `namespace="home"` for this repo.
385385
## Service-Specific Update Policies
386386

387387
### Frigate NVR
388-
- **WAIT for PVE Helper Scripts** to support new versions
389-
- LXC 113 on fun-bedbug.maas (AMD A9-9400)
390-
- Reference: `docs/reference/frigate-upgrade-decision-framework.md`
388+
- Runs as a K3s pod (namespace `frigate`) pinned to `k3s-vm-pumped-piglet-gpu` via nodeSelector
389+
- Detector: ONNX on RTX 3070 (`nvidia.com/gpu: 1`) — Coral TPU no longer used by Frigate
390+
- Manifests: `gitops/clusters/homelab/apps/frigate/` (Flux-managed)
391+
- URL: https://frigate.app.home.panderosystems.com
392+
- **DEPRECATED**: Frigate previously ran as LXC 113 on fun-bedbug; that LXC is gone. Migration history is in `docs/runbooks/frigate-migration-to-still-fawn-k3s.md` and `scripts/frigate/virtiofs-import/`.
393+
- Reference: `docs/reference/frigate-upgrade-decision-framework.md` (parts about LXC 113 are historical)
391394

392395
### Coral USB TPU - CRITICAL
393-
**NEVER test from host while LXC has it mounted!**
396+
**NEVER test the Coral from a Proxmox host while a VM/LXC has it passed through!**
394397
- Corrupts Coral state ("did not claim interface 0")
395398
- ONLY FIX: Physical unplug/replug
396-
- Check INSIDE container: `pct exec 113 -- cat /dev/shm/logs/frigate/current | grep -i TPU`
399+
- Coral USB is currently passed through to `k3s-vm-still-fawn` (VMID 108 on still-fawn). It is **not** in use by Frigate anymore (Frigate uses RTX 3070 ONNX detector); check whether any pod still needs it before touching.
397400

398401
### GPU Passthrough (VFIO)
399402
**MANDATORY FIRST**: Check BIOS VT-d
@@ -407,7 +410,9 @@ ls /sys/kernel/iommu_groups/ | wc -l # If 0 → VT-d disabled in BIOS
407410
## Proxmox Host Inventory
408411
| Hostname | Role | Key Hardware |
409412
|----------|------|--------------|
410-
| still-fawn.maas | K3s VM host | AMD Radeon GPU, Coral USB TPU, Frigate pod |
411-
| pumped-piglet.maas | K3s VM host | RTX 3070 GPU |
413+
| still-fawn.maas | K3s VM host | AMD Radeon GPU (VAAPI), Coral USB TPU (idle — was Frigate) |
414+
| pumped-piglet.maas | K3s VM host | RTX 3070 GPU — runs Frigate pod (ONNX detector) |
412415
| chief-horse.maas | HAOS host (VMID 116) | - |
413-
| fun-bedbug.maas | LXC host | - |
416+
| fun-bedbug.maas | LXC host | (formerly hosted Frigate LXC 113 — now decommissioned) |
417+
| pve.maas | K3s + LXC host | OPNsense, MAAS, cloudflared, docker LXC, k3s-vm-pve |
418+
| rapid-civet.maas | (intentionally offline) | - |

docs/reference/frigate-upgrade-decision-framework.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Frigate Upgrade Decision Framework
22

3+
> **⚠️ DEPRECATED (kept for historical reference).** This document describes the upgrade workflow for Frigate as a Proxmox LXC (LXC 113 on fun-bedbug), which has been retired. Frigate now runs as a K3s pod managed by Flux (`gitops/clusters/homelab/apps/frigate/`). The "wait for PVE Helper Scripts" rule no longer applies — upgrades are done by bumping the container image tag in the deployment manifest. See `docs/runbooks/frigate-migration-to-still-fawn-k3s.md` for migration history.
4+
35
## MANDATORY Pre-Upgrade Checks
46

57
**BEFORE considering any Frigate upgrade, ALWAYS follow this checklist:**

docs/reference/homelab-service-inventory.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ graph TB
5555
5656
subgraph LXC_Containers[LXC Containers]
5757
PBS[Proxmox Backup Server<br>LXC 103<br>pumped-piglet<br>192.168.4.218<br>1.3TB/21TB storage]
58-
FRIG[Frigate NVR<br>LXC 113<br>fun-bedbug<br>AMD Radeon R5 + Coral TPU]
58+
FRIG[Frigate NVR<br>K3s pod<br>k3s-vm-pumped-piglet-gpu<br>RTX 3070 ONNX detector]
5959
DOCK[Docker Host<br>LXC 112<br>fun-bedbug]
6060
end
6161
@@ -137,7 +137,8 @@ ssh ubuntu@192.168.4.210 # k3s-vm-pumped-piglet-gpu
137137
ssh gshiva@192.168.4.83 # Webtop development environment
138138

139139
# LXC Containers
140-
ssh root@192.168.4.<frigate-ip> # Frigate NVR (LXC 113)
140+
# (Frigate is no longer an LXC — it's a K3s pod on k3s-vm-pumped-piglet-gpu,
141+
# reach the UI at https://frigate.app.home.panderosystems.com)
141142
ssh root@192.168.4.<docker-ip> # Docker host (LXC 112)
142143
```
143144

@@ -295,16 +296,15 @@ curl -X POST http://ollama.app.homelab/api/generate \
295296

296297
### Frigate NVR
297298

298-
**Type**: LXC Container 113 on fun-bedbug.maas
299-
**Hardware**: AMD Radeon R5 (renderD128), Google Coral TPU (USB)
300-
**Storage**: 500G mount at `/media` (local-3TB-backup)
299+
**Type**: K3s pod (namespace `frigate`), pinned to `k3s-vm-pumped-piglet-gpu` via nodeSelector
300+
**Hardware**: NVIDIA RTX 3070 (passed through to VM 105 on pumped-piglet, then exposed to the pod via `nvidia.com/gpu: 1`)
301+
**Detector**: ONNX on RTX 3070 (Coral TPU no longer used by Frigate)
302+
**Manifests**: `gitops/clusters/homelab/apps/frigate/` (Flux-managed)
303+
**Storage**: ZFS-backed PVCs; old recordings imported from former LXC 113 via `scripts/frigate/virtiofs-import/`
301304

302-
**Access**: http://<frigate-ip>:5000 (check fun-bedbug DHCP lease)
305+
**Access**: https://frigate.app.home.panderosystems.com (Traefik 192.168.4.80, valid LE wildcard cert)
303306

304-
**Features**:
305-
- Object detection with Coral TPU
306-
- AMD GPU hardware acceleration
307-
- Face recognition (requires Frigate 0.16.0+, waiting for PVE Helper Scripts update)
307+
**History**: Previously ran as LXC 113 on fun-bedbug with Coral USB + AMD VAAPI. Decommissioned during migration to K3s. See `docs/runbooks/frigate-migration-to-still-fawn-k3s.md` and the ONNX detector action logs in `scripts/frigate/`.
308308

309309
### Netdata Monitoring
310310

@@ -415,8 +415,8 @@ gitops/clusters/homelab/
415415

416416
**fun-bedbug.maas (192.168.4.172)**
417417
- CPU: AMD A9-9400 (low-power)
418-
- GPU: AMD Radeon R5 (integrated, used by Frigate)
419-
- TPU: Google Coral USB (passed to Frigate LXC 113)
418+
- GPU: AMD Radeon R5 (integrated; previously used by Frigate LXC 113, now idle)
419+
- TPU: (previously hosted Google Coral USB for Frigate LXC 113; LXC retired, Coral USB now passed to still-fawn / k3s-vm-still-fawn)
420420
- RAM: Unknown (check via `lshw`)
421421
- Storage: 1TB local + 3TB ZFS
422422
- Network: 2.5GbE vmbr0 (USB adapter)

docs/reference/proxmox-vm-configurations.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -630,6 +630,8 @@ qm set 116 --agent 1
630630

631631
### LXC 113: Frigate NVR
632632

633+
> **⚠️ DEPRECATED — historical reference only.** LXC 113 has been retired. Frigate now runs as a K3s pod on `k3s-vm-pumped-piglet-gpu` (RTX 3070 ONNX detector) — see `gitops/clusters/homelab/apps/frigate/`. The configuration below is preserved as a recovery / rebuild reference, not the current state.
634+
633635
**Host**: fun-bedbug.maas (192.168.4.172)
634636

635637
```

docs/source/md/homelab-network-topology.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,9 @@ This document describes the complete network topology of the homelab, including
7575
│ │ PVE │ │ STILL-FAWN │ │ CHIEF-HORSE │ │ FUN-BEDBUG │ │
7676
│ │ .4.122 │ │ .4.17 │ │ .4.19 │ │ .4.172 │ │
7777
│ │ │ │ │ │ │ │ │ │
78-
│ │ • Gateway │ │ • K3s VM │ │ • K3s VM │ │ • Frigate │ │
79-
│ │ • K3s VM │ │ .4.212 │ │ .4.237 │ │ LXC 113 │ │
80-
│ │ .4.238 │ │ │ │ • HA VM │ │ │ │
78+
│ │ • Gateway │ │ • K3s VM │ │ • K3s VM │ │ • K3s VM │ │
79+
│ │ • K3s VM │ │ .4.212 │ │ .4.237 │ │ .4.192 │ │
80+
│ │ .4.238 │ │ │ │ • HA VM │ │ • Docker LXC │ │
8181
│ │ │ │ │ │ .4.240 │ │ │ │
8282
│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │
8383
│ │ │
@@ -135,7 +135,12 @@ This document describes the complete network topology of the homelab, including
135135

136136
| Container | CTID | Host | Purpose |
137137
|-----------|------|------|---------|
138-
| Frigate | 113 | fun-bedbug | NVR with Coral TPU |
138+
| docker | 112 | fun-bedbug | Docker host |
139+
| proxmox-backup-server | 103 | pumped-piglet | PBS datastore |
140+
| docker | 100 | pve | Docker host |
141+
| cloudflared | 111 | pve | Cloudflare tunnel |
142+
143+
> Frigate was previously LXC 113 on fun-bedbug; it now runs as a K3s pod on `k3s-vm-pumped-piglet-gpu` (RTX 3070 ONNX detector) — see `gitops/clusters/homelab/apps/frigate/`.
139144
140145
### K3s Services (MetalLB)
141146

docs/source/md/proxmox-infrastructure-guide.md

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ graph TB
9292
9393
subgraph "LXC Network Assignment"
9494
vmbr0 --> lxc_wan[LXC containers on WAN<br/>docker LXC-100, cloudflared LXC-111]
95-
vmbr25gbe --> lxc_lan[LXC containers on LAN<br/>docker LXC-112, frigate LXC-113<br/>proxmox-backup-server LXC-103]
95+
vmbr25gbe --> lxc_lan[LXC containers on LAN<br/>docker LXC-112<br/>proxmox-backup-server LXC-103]
9696
end
9797
```
9898

@@ -346,33 +346,30 @@ Features:
346346
Tags: cloudflare, community-script, network
347347
```
348348
349-
#### Frigate NVR (LXC 113)
349+
#### Frigate NVR (~~LXC 113~~ — now a K3s pod)
350+
351+
> **⚠️ DEPRECATED.** Frigate is no longer an LXC. It runs as a K3s pod on `k3s-vm-pumped-piglet-gpu` (RTX 3070 ONNX detector), managed via Flux at `gitops/clusters/homelab/apps/frigate/`. The LXC-era details below are historical.
352+
350353
```yaml
351-
Location: fun-bedbug node
354+
# Historical: LXC 113 on fun-bedbug, retired during K3s migration.
355+
Location: fun-bedbug node (RETIRED)
352356
Purpose: Network Video Recorder with AI detection
353357
Resources:
354358
- CPU: 4 cores
355359
- RAM: 4GB
356360
- Storage: 500GB from local-3TB-backup ZFS pool
357-
Network:
358-
- eth0: vmbr25gbe, DHCP
359-
Features:
360-
- High CPU usage for video processing
361-
- AI-powered object detection
362-
- Storage migrated from Samsung T5 USB to 3TB HDD SATA
363-
- 16x storage capacity increase (from 928GB to 2.72TB pool)
364-
Current Version: 0.14.1 (installed via PVE Helper Scripts)
365361
Hardware Acceleration:
366362
- AMD Radeon R5 GPU with VA-API (preset-vaapi)
367363
- Google Coral USB TPU for object detection
368-
- Automated TPU initialization via coral-tpu-init.service
369-
Upgrade Policy:
370-
- Wait for PVE Helper Scripts to support newer versions
371-
- DO NOT manually update - breaks LXC integration
372-
- Face recognition requires v0.16.0+ (pending script update)
373-
Tags: community-script, nvr
364+
Last LXC Version: 0.14.1 (installed via PVE Helper Scripts)
374365
```
375366

367+
**Current deployment:**
368+
- Manifests: `gitops/clusters/homelab/apps/frigate/`
369+
- Detector: ONNX on RTX 3070 (`nvidia.com/gpu: 1`)
370+
- URL: https://frigate.app.home.panderosystems.com
371+
- Upgrades: bump image tag in `deployment.yaml`, commit, `flux reconcile`
372+
376373
#### Proxmox Backup Server (LXC 103)
377374
```yaml
378375
Location: still-fawn node
@@ -582,7 +579,7 @@ graph TB
582579
- **100** - docker-pve (Docker services)
583580
- **111** - cloudflared (Tunnel service)
584581
- **112** - docker-fun-bedbug (Docker services)
585-
- **113** - frigate (NVR/Security cameras)
582+
- ~~**113** - frigate~~ (decommissioned — Frigate now runs as a K3s pod, see `gitops/clusters/homelab/apps/frigate/`)
586583

587584
**Excluded**:
588585
- **103** - proxmox-backup-server (Prevents recursive backups)

gitops/clusters/homelab/instances/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,16 @@ Use the `external-name` annotation to adopt existing infrastructure:
2626
```yaml
2727
metadata:
2828
annotations:
29-
crossplane.io/external-name: "113" # Existing VMID
29+
crossplane.io/external-name: "112" # Existing VMID (example: docker LXC)
3030
spec:
3131
deletionPolicy: Orphan # Don't delete if CR removed from Git
3232
```
3333
3434
Generate YAML from existing VM/LXC:
3535
3636
```bash
37-
# Generate from existing LXC
38-
./scripts/crossplane/import-lxc.sh 113 > frigate-nvr.yaml
37+
# Generate from existing LXC (example: docker LXC on fun-bedbug)
38+
./scripts/crossplane/import-lxc.sh 112 > docker-host.yaml
3939

4040
# Generate from existing VM
4141
./scripts/crossplane/import-vm.sh 200 > my-vm.yaml
@@ -52,4 +52,4 @@ Generate YAML from existing VM/LXC:
5252
| File | VMID | Node | Purpose |
5353
|------|------|------|---------|
5454
| rancher-server.yaml | 200 | pumped-piglet | RKE2 eval (test) |
55-
| frigate-nvr.yaml | 113 | fun-bedbug | Frigate NVR (adopt) |
55+
| ~~frigate-nvr.yaml~~ | ~~113~~ | ~~fun-bedbug~~ | **Removed**Frigate migrated to K3s pod (see `apps/frigate/`) |

scripts/perf/run-on-proxmox-vm.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ get_host() {
1919
case "$1" in
2020
116|109) echo "chief-horse.maas" ;;
2121
108) echo "still-fawn.maas" ;;
22-
105) echo "pumped-piglet.maas" ;;
23-
113) echo "fun-bedbug.maas" ;; # LXC
22+
105|103) echo "pumped-piglet.maas" ;; # 103 = PBS LXC
23+
114|112) echo "fun-bedbug.maas" ;; # 114 = k3s VM, 112 = docker LXC
24+
107|100|101|102|111) echo "pve.maas" ;;
2425
*) echo "chief-horse.maas" ;;
2526
esac
2627
}

0 commit comments

Comments
 (0)