Skip to content
Frank, the Talos Cluster: Overview & Roadmap
Frank, the Talos Cluster: Overview & Roadmap

Frank, the Talos Cluster: Overview & Roadmap

This is the overview post for the Frank, the Talos Cluster series — a tutorial-style walkthrough of building an AI-hybrid Kubernetes homelab from scratch.

This post is a living document: it gets updated as new technologies and capabilities are added to the cluster.

Roadmap

1 Hardware — 7 Nodes, 3 Zones
3x Intel NUC (Core zone) 1x GPU tower — RTX 5070 1x Legacy desktop 2x Raspberry Pi 4
x86_64 arm64 heterogeneous
2 OS & Bootstrap
Talos Linux (immutable) Sidero Omni (lifecycle) Declarative machine config Rolling upgrades
no SSH API-driven reproducible
3 Networking — Cilium CNI
eBPF kube-proxy replacement L2 LoadBalancer (ARP) Hubble observability Network policy
eBPF 192.168.55.200-254
4 Storage — Longhorn
Distributed 3-replica block storage GPU-local StorageClass 2x 4TB SSD on gpu-1 iSCSI via Talos extensions
strict-local best-effort all 7 nodes
5 GPU Compute
NVIDIA GPU Operator (RTX 5070) Intel DRA driver (Arc iGPU) Dynamic Resource Allocation CDI device injection
K8s 1.35 DRA ResourceClaim DeviceClass
6 GitOps — ArgoCD
App-of-Apps pattern Multi-source Applications Self-healing + drift detection Zero-downtime adoption
single repo annotation tracking
7 Fun Stuff
OpenRGB via USB HID DaemonSet + ConfigMap Custom container build (GitHub Actions) IT5701 firmware lock (in progress)
completely unnecessary fans still rainbow
8 Observability
VictoriaMetrics (metrics + alerts) VictoriaLogs (log aggregation) Grafana dashboards Fluent Bit log shipping Blackbox Exporter (endpoint probes) Pushgateway (heartbeat ingestion) Telegram alerting Health Bridge (GitHub lifecycle) Edge Observability (blog analytics, edge security, AI alerts)
VMSingle Feature Health health-bridge GoatCounter CrowdSec Falco ai-alert-helper 192.168.55.203
9 Backup
Longhorn → Cloudflare R2 Daily + weekly recurring jobs SOPS-encrypted credentials NAS target (pending Longhorn 1.13)
S3-compatible 7-day RPO
10 Secrets Management
Infisical (self-hosted vault) External Secrets Operator ClusterSecretStore ExternalSecret → K8s Secret
audit trail Universal Auth 192.168.55.204
11 Local Inference
Ollama (gpu-1, RTX 5070) LiteLLM (unified gateway) OpenRouter (free cloud models) OpenAI-compatible API
ollama litellm 192.168.55.206
12 Agentic Control Plane
Sympozium (K8s-native agents) n8n (per-user workflow automation) VK Remote (self-hosted kanban API) ElectricSQL real-time sync
agent=Pod n8n vibekanban 192.168.55.207 192.168.55.216
13 Unified Auth
Authentik IdP (OIDC + proxy) SSO for ArgoCD, Grafana, Infisical Forward auth for Longhorn, Hubble, Sympozium OIDC-backed kubectl via apiserver
OIDC forward-auth 192.168.55.211
14 Multi-tenancy
vCluster (K8s-in-K8s) Disposable experiment clusters Resource quotas + network policies GitOps-provisioned via ArgoCD
vcluster multi-tenant SQLite
15 AI Agent Orchestrator
Paperclip (org-chart agents) Virtual companies + budgets Delegation chains + governance LiteLLM gateway integration
paperclip company model 192.168.55.212
16 Media Generation
ComfyUI (diffusion models) LTX-2.3 video, SDXL image, Stable Audio GPU Switcher dashboard (Go) Time-sharing via replica scaling
comfyui gpu-switcher 192.168.55.213
17 Public Edge — Hop
Hetzner CX23 (single-node Talos) Headscale mesh + Tailscale Caddy reverse proxy + TLS Split-DNS (MagicDNS)
edge WireGuard blog.derio.net
18 Persistent Agent
Kali Linux workstation Always-on Claude Code agent SSH remote access 50Gi persistent /root
kali claude --remote 192.168.55.215
19 Progressive Delivery
Argo Rollouts controller LiteLLM canary (Cilium traffic split) Sympozium blue-green VictoriaMetrics analysis gates
canary blue-green workloadRef
21 Secure Agent Pod
Hardened non-root Kali container Cilium egress allowlist VibeKanban agent orchestration VK Relay (WebSocket tunnel to browser)
security vibekanban relay 192.168.55.215
24 In-Cluster Ingress
Traefik v3 on raspi edge nodes Wildcard TLS (*.cluster.derio.net) Authentik forward-auth (12 services) Homepage dashboard
traefik acme 192.168.55.220
25 CI/CD Platform
Gitea (GitHub mirror forge) Tekton Pipelines + Triggers Zot OCI registry (cosign signed) Webhook-driven CI on pc-1
gitea tekton zot 192.168.55.209
26 Agent Images and the VK-Local Sidecar
agent-images repo (shared base + children) Matrix CI with cross-repo repository_dispatch VK-local sidecar (shared /home/claude PVC) Lockstep bumper PR in frank
docker github-actions sidecar
29 Ruflo — Swarm Orchestrator
claude-flow / ruvocal (chaotic swarm) Hybrid pod: ruvocal + shell sidecar SSH+Mosh shell on 192.168.55.222 Zero frontier-LLM keys (LiteLLM-only egress)
ruflo claude-flow swarm ruflo.cluster.derio.net
30 The Frank Papers — Research Series
Third blog series (Building / Operating / Papers) Dossier gate (vendors, sources, gaps, counter-args) Mermaid Frank theme + .paper-post CSS scope Render-time cross-series backlinks (zero retrofit) Paper 00 prologue published 2026-05-18
hugo hextra mermaid research
32 Infrastructure Automation
AWX Ansible controller (operator + CR) Reaches non-Talos / external home-lab devices Native OIDC login via Authentik awx.cluster.derio.net (Traefik)
awx ansible automation
33 Hermes Agent Shell
Nous Research hermes CLI (dedicated pod, gpu-1) BYOK → LiteLLM (provider pinned in config.yaml) profile.d shim vs. sshd env-scrub SSH+Mosh shell on 192.168.55.226
hermes byok litellm
Virtual Machines — upcoming
KubeVirt (VMs as pods) CDI disk image import KubeVirt Manager UI Longhorn-backed DataVolumes
KVM 192.168.55.205

Technology → Capability Map

TechnologyCapabilities Unlocked
Talos Linux + OmniImmutable OS, declarative machine config, secure bootstrap
Cilium (eBPF)Kube-proxy replacement, L2 LoadBalancer, Hubble UI (192.168.55.202)
LonghornDistributed block storage, GPU-local StorageClass, 3-replica HA, UI (192.168.55.201)
ArgoCDGitOps, App-of-Apps, self-healing, drift detection
NVIDIA GPU OperatorGPU scheduling, AI/ML workloads, container toolkit
Intel GPU DRA DriveriGPU sharing via DRA, namespace-scoped GPU access
OpenRGBLED control from K8s (just for fun)
VictoriaMetrics + GrafanaCluster-wide metrics, alerting, dashboards, Grafana UI (192.168.55.203)
VictoriaLogs + Fluent BitCentralised log aggregation and querying
Longhorn Backup + Cloudflare R2PVC backup/restore, daily + weekly schedules, offsite storage
Infisical + External Secrets OperatorSecret management with audit trail, ExternalSecret → K8s Secret sync (192.168.55.204)
OllamaLocal LLM inference on gpu-1’s RTX 5070 (qwen3.5:9b, deepseek-coder:6.7b)
LiteLLMUnified OpenAI-compatible gateway, virtual keys, spend tracking (192.168.55.206)
OpenRouterFree-tier cloud model aggregation (DeepSeek R1, Gemini Flash, Llama 3.3 70B)
SympoziumKubernetes-native agentic control plane — agent=Pod, policy=CRD, execution=Job (192.168.55.207)
cert-managerAutomated TLS certificate lifecycle for webhooks and internal services
AuthentikUnified SSO — OIDC for ArgoCD, Grafana, Infisical; forward-auth proxy for Longhorn, Hubble, Sympozium (192.168.55.211)
vClusterVirtual K8s clusters inside Frank — disposable sandboxes with own API server, resource quotas, network policies
PaperclipAI agent orchestrator — virtual companies with org charts, budgets, and delegation chains; complements Sympozium (192.168.55.212)
ComfyUIDiffusion model serving — video (LTX-2.3), image (SDXL), audio (Stable Audio), node-based workflow editor (192.168.55.213)
GPU SwitcherCustom Go dashboard for GPU time-sharing — one-click switching between Ollama and ComfyUI (192.168.55.214)
Hop (Hetzner Edge)Public-facing single-node Talos cluster — Headscale mesh, Caddy reverse proxy, blog hosting, split-DNS
Headscale + TailscaleWireGuard mesh networking — remote homelab access from any device, MagicDNS for split-DNS
CaddyAutomatic TLS (Cloudflare DNS challenge), public/mesh routing, path rewriting
Secure Agent PodHardened non-root coding agent workstation — Cilium egress, dropped capabilities, VibeKanban orchestration, SSH (192.168.55.215) + UI (192.168.55.218)
Argo RolloutsProgressive delivery — canary (Cilium traffic splitting + VictoriaMetrics analysis) and blue-green (preview + atomic cutover)
n8nPer-user workflow automation — 400+ integrations, visual node editor, webhook triggers, Authentik forward-auth (192.168.55.216)
Blackbox Exporter + PushgatewayFeature-level health monitoring — HTTP endpoint probes, cron heartbeat ingestion, Grafana alerting to Telegram
Health BridgeGrafana alert → GitHub Project lifecycle state bridge — automatic degraded/dead/healthy transitions, issue comments, bug issue creation
Traefik (in-cluster)In-cluster ingress controller, wildcard TLS (*.cluster.derio.net), ACME via Cloudflare DNS-01, Authentik forward-auth for 12 services (192.168.55.220)
VK Remote (self-hosted)Self-hosted VibeKanban kanban API — PostgreSQL 16, ElectricSQL real-time sync, Rust/Axum server, local JWT auth, Authentik SSO ingress (vk.cluster.derio.net)
VK RelayWebSocket relay sidecar tunneling browser API calls to local VK agent server via yamux multiplexing, SPAKE2 pairing, Ed25519 request signing
gethomepage.devCluster dashboard at master.cluster.derio.net — service catalog with HTTP health indicators, custom bookmarks
GiteaSelf-hosted git forge with GitHub pull-mirror, Authentik OIDC SSO (192.168.55.209)
TektonK8s-native CI/CD pipelines — webhook-driven clone, test, build, sign, report status on pc-1
ZotOCI container/artifact registry with cert-manager TLS and cosign image signing (192.168.55.210)
agent-imagesShared base image + per-pod children repo — agent-base toolchain + secure-agent-kali / vk-local children, matrix CI, cross-repo repository_dispatch, lockstep bumper PR
Ruflo (claude-flow + ruvocal)Swarm-style AI orchestrator — hybrid pod (ruvocal SSR + agent-shell-base sidecar), LiteLLM-only egress, SSH+Mosh shell on 192.168.55.222, web UI at ruflo.cluster.derio.net
The Frank PapersThird blog series — research-grade landscape reviews framed as decisions; dossier gate (validate-dossier.py + pre-commit hook), Mermaid Frank theme, five papers/ shortcodes, render-time cross-series backlinks. Prologue published 2026-05-18: Why Run Your Own Cluster in 2026?
GoatCounterCookieless blog analytics — public beacon via Hop’s Caddy at counter.derio.net, mesh-only admin at counter.cluster.derio.net with Authentik forward-auth (192.168.55.224)
CrowdSec + caddy-crowdsec-bouncerEdge HTTP security — agent tails Caddy logs on Hop, Caddy bouncer enforces decisions locally without round-tripping to Frank
Falco (modern_ebpf) + FalcosidekickContainer runtime security on Talos — Loki output to VictoriaLogs (Loki push protocol) + direct Telegram for priority:critical
ai-alert-helperFastAPI service — daily blog digest, alert-time LLM enrichment, surge detection (hour-of-day baseline computed in Python because LogsQL has no quantile_over_time); LiteLLM-backed swap contract for future Sympozium
AWXAnsible automation controller — the imperative arm reaching non-Talos home-lab hosts over SSH; operator + AWX CR (two-layer reconcile), native OIDC SSO via Authentik, Gitea-backed Job Templates
hermes (Nous Research)Terminal-native agent CLI in a dedicated agent-shell-base pod on gpu-1 — BYOK to LiteLLM (provider pinned via config.yaml mapping), profile.d shim defeating the sshd env-scrub, SSH+Mosh on 192.168.55.226

Cluster State

NodeZoneRoleHardware
mini-1/2/3Core (B)Control-plane + WorkerIntel Ultra 5, 64GB RAM, 1TB NVMe, Arc iGPU
gpu-1AI Compute (C)Workeri9, 128GB RAM, RTX 5070, 2x4TB SSD
pc-1Edge (D)WorkerLegacy desktop, 64GB SSD + 3x HDD
raspi-1/2Edge (D)WorkerRaspberry Pi 4, 32GB SD