Skip to content

Overview

A seven-node Talos Kubernetes cluster on one Proxmox host, with a Hetzner VPS as the public edge and an RTX 5070 Ti for AI workloads. Everything above the bare metal is declared in this repo and rebuilt from it.

Homelab architecture

Hover a box to trace its path · click for details

UsersInternet visitorpublic apps onlyVPN useroff-site · NetBirdLAN userhome networkEdge · public internetBifrost edgeHetzner VPSTraefikTLS + routingNetBirdVPN + tunnelAuthentiksingle sign-onGatusuptime pageCloudflare DNSDNS onlyHome lab · Proxmox serverKubernetes clustertalos-cluster · API VIP 192.168.1.210NetBird peertunnel endCilium Gatewaysingle entry pointPlatformArgo CDGitOpsCiliumnetwork + eBPFcert-managerTLSAppsAIOllamaOpen WebUIComfyUIKubeflowObservabilityGrafanaVictoriaMetricsVictoriaLogsOpenTelemetrySecurityFalcoTrivyKyvernoToolsHarborn8nHeadlampCS2 serverCluster servicesLonghornstorageOpenBaoruntime secretsCloudNativePGPostgresNodes — Talos Linux VMs7 VMs · 32 vCPU · 82 GiB RAM · 1 × 16 GB GPUWorkersgeneral appsGPU workerRTX 5070 Ti · 16 GBControl planesetcd + APIHTTPSWireGuard tunnelNetBird mesh*.madhan.appown LB IPHTTP(S) from outside enters through the Gateway; hover any box to trace its pathTrafficManaged by PulumiManaged by Argo CD

Apps

Ollama, ComfyUI, Grafana, Harbor, n8n, Falco and the rest. Argo CD + CDK8s.

Platform

Talos, Cilium, Gateway API, cert-manager, Argo CD. Pulumi.

Infrastructure

Seven Proxmox VMs and the Bifrost VPS on Hetzner. Pulumi.

Hardware

The Proxmox host and its GPU. Manual.

RuleWhat it means here
Everything as codePulumi in core/, CDK8s in workloads/, shared values in config/config.yml.
No manual cluster changeskubectl edit and kubectl scale are reverted by Argo CD self-heal; change git instead.
No plaintext secrets in gitBootstrap secrets are SOPS-encrypted; runtime secrets live in OpenBao. CDK8s renders no Secret objects.
Zero-touch automationjust recipes drive every phase; the only manual steps are in third-party UIs (NetBird).