PLATFORM ARCHITECTURE
How It All Fits Together
Every layer — from Talos Linux to the Backstage developer portal — designed as a cohesive system on bare-metal infrastructure.
CLUSTER SPECIFICATIONS
Cluster
edgit-k8s
Kubernetes
v1.34.1
OS
Talos Linux v1.12.2
CNI
Cilium 1.18.5
Control Planes
3 (192.168.0.100-102)
Workers
2 (192.168.0.103-104)
Pod CIDR
10.244.0.0/16
Service CIDR
10.96.0.0/12
Gateway IP
192.168.0.200
LB Pool
192.168.0.200-210
DNS
10.96.0.10 (CoreDNS)
Domain
*.apps.edgeprime.io
Network Topology
All traffic enters through a single Cilium Gateway with eBPF-accelerated routing to 20+ backend services.
EXTERNAL
☁ Internet Traffic
DNS RESOLUTION
CoreDNS
*.apps.edgeprime.io → 192.168.0.200
INGRESS LAYER
Cilium Gateway API
HTTP:80 → HTTPS:443 · TLS termination · Let's Encrypt wildcard
IP: 192.168.0.200 (L2 ARP)
ROUTING LAYER
HTTPRoutes (per service)
Host-based routing · Path matching · Header injection
SERVICE LAYER
Kubernetes ClusterIP Services
20 services across 27 namespaces
GitOps Pipeline
Every change flows through Git. ArgoCD's App-of-Apps pattern auto-discovers and reconciles 40+ applications.
⟨⟩
Git Push
⚙
GitHub
🔄
ArgoCD
☸
Kubernetes
✓
Reconciled
4 DEPLOYMENT PATTERNS
External Helm chart with local values and companion manifests
Keycloak, Cilium, ESO, Longhorn
Single ArgoCD Application with directory exclusion
SurrealDB, Qdrant, Garage, Supabase
Local Chart.yaml wrapping external dependency
Homepage, Harbor, Backstage, Falco
Plain Kubernetes YAML without Helm
ArgoCD, Dragonfly, AIBrix, Matomo
Secrets Management Flow
Zero secrets in Git. Everything flows through Vault with External Secrets Operator as the bridge.
graph TD TF["Terraform"]:::terraform VAULT["Vault kv/v2"]:::vault CSS["ClusterSecretStore vault-backend"]:::store ES["ExternalSecret per-app, per-namespace"]:::external KS["Kubernetes Secret"]:::k8s POD["Pod env / volume mount"]:::pod TF -->|provision| VAULT VAULT --> CSS CSS --> ES ES --> KS KS --> POD classDef terraform fill:#0e3a3a,stroke:#06b6d4,color:#67e8f9,stroke-width:2px classDef vault fill:#2e2a0e,stroke:#facc15,color:#fde68a,stroke-width:2px classDef store fill:#14332a,stroke:#4ade80,color:#86efac,stroke-width:2px classDef external fill:#2e1a47,stroke:#a78bfa,color:#c4b5fd,stroke-width:2px classDef k8s fill:#1e3a5f,stroke:#60a5fa,color:#93c5fd,stroke-width:2px classDef pod fill:#2e1a0e,stroke:#f97316,color:#fdba74,stroke-width:2px
Exposed Services
20 services accessible through the shared Cilium Gateway at *.apps.edgeprime.io
Backstage Portal
backstage.apps.edgeprime.io
ArgoCD
argo.apps.edgeprime.io
Vault
vault.apps.edgeprime.io
Grafana
grafana.apps.edgeprime.io
Harbor
harbor.apps.edgeprime.io
Keycloak
keycloak.apps.edgeprime.io
Homepage
homepage.apps.edgeprime.io
Supabase
supabase.apps.edgeprime.io
Longhorn
longhorn.apps.edgeprime.io
Hubble UI
hubble-ui.apps.edgeprime.io
OneDev
onedev.apps.edgeprime.io
Matomo
matomo.apps.edgeprime.io
n8n
n8n.apps.edgeprime.io
SurrealDB
surrealdb.apps.edgeprime.io
Qdrant
qdrant.apps.edgeprime.io
Garage
garage.apps.edgeprime.io
OpenCost
opencost.apps.edgeprime.io
AI Platform
ai.apps.edgeprime.io
AFFiNE
affine.apps.edgeprime.io
Policy Reporter
policy-reporter.apps.edgeprime.io
Infrastructure as Code
Terraform manages everything that can't be expressed as Kubernetes manifests.
terraform/vault
hashicorp/vault
ESO policies, tokens, app secrets, DNS credentials
terraform/keycloak
mrparkers/keycloak
OIDC realm + 10+ clients (ArgoCD, Vault, Grafana, Harbor…)
terraform/harbor
goharbor/harbor
Registry OIDC auth, robot accounts
terraform/grafana
grafana/grafana
Dashboard provisioning (JSON), data sources