ARCHITECTURE DE LA PLATEFORME
Comment tout s'assemble
Chaque couche — de Talos Linux au tableau de bord Homepage — conçue comme un système cohérent sur infrastructure bare-metal.
SPÉCIFICATIONS DU CLUSTER
Cluster
edgit-k8s
Kubernetes
v1.35.3
OS
Talos Linux v1.12.6
CNI
Cilium 1.19.1
Control Planes
3 (192.168.0.100-102)
Workers
5 (103-104, 150-151, gx10)
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
Topologie réseau
Tout le trafic entre par une Gateway Cilium unique avec routage accéléré eBPF vers plus de 20 services backend.
EXTERNE
☁ Trafic Internet
RÉSOLUTION DNS
CoreDNS
*.exitthecloud.eu → 192.168.0.200
COUCHE D'INGRESS
Cilium Gateway API
HTTP:80 → HTTPS:443 · TLS termination · Let's Encrypt wildcard
IP: 192.168.0.200 (L2 ARP)
COUCHE DE ROUTAGE
HTTPRoutes (par service)
Routage par hôte · Correspondance de chemin · Injection d'en-têtes
COUCHE DE SERVICE
Services ClusterIP Kubernetes
28 services across 35 namespaces
Pipeline GitOps
Chaque modification passe par Git. Le pattern App-of-Apps d'ArgoCD auto-découvre et réconcilie plus de 43 applications.
⟨⟩
Git Push
⚙
GitHub
🔄
ArgoCD
☸
Kubernetes
✓
Reconciled
4 PATTERNS DE DÉPLOIEMENT
Chart Helm externe avec valeurs locales et manifestes compagnons
Keycloak, Cilium, ESO, Longhorn
Application ArgoCD unique avec exclusion de répertoire
SurrealDB, Qdrant, Garage, Supabase
Chart.yaml local englobant la dépendance externe
Homepage, Harbor, Backstage, Falco
YAML Kubernetes simple sans Helm
ArgoCD, Dragonfly, AIBrix, Matomo
Flux de gestion des secrets
Zéro secret dans Git. Tout passe par Vault avec External Secrets Operator comme pont.
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
architecture.imageProxyTitle
architecture.imageProxyDesc
graph TD POD["Pod Spec image: docker.io/nginx"]:::pod MW["Kyverno Mutating Webhook"]:::kyverno PROXY["Harbor Proxy Cache proxy-dockerhub / proxy-ghcr proxy-quay / proxy-gcr"]:::harbor VAL["Kyverno Validate Webhook"]:::kyverno SECRET["ESO: harbor-registry secret per namespace"]:::eso RUN["Pod runs with rewritten image"]:::pod POD -->|"Pod creation"| MW MW -->|"rewrite: harbor.../proxy-dockerhub/nginx"| PROXY VAL -->|"only proxy-* registries allowed"| PROXY SECRET -->|"pull credentials"| RUN PROXY -->|"pulls from cache"| RUN classDef pod fill:#2e1a0e,stroke:#f97316,color:#fdba74,stroke-width:2px classDef kyverno fill:#2e1a47,stroke:#a78bfa,color:#c4b5fd,stroke-width:2px classDef harbor fill:#14332a,stroke:#06b6d4,color:#67e8f9,stroke-width:2px classDef eso fill:#1e3a5f,stroke:#60a5fa,color:#93c5fd,stroke-width:2px
Services exposés
28 services accessibles via la Gateway Cilium partagée sur *.exitthecloud.eu
ArgoCD
argo.exitthecloud.eu
Vault
vault.exitthecloud.eu
Grafana
grafana.exitthecloud.eu
Harbor
harbor.exitthecloud.eu
Keycloak
keycloak.exitthecloud.eu
Homepage
homepage.exitthecloud.eu
Supabase
supabase.exitthecloud.eu
Longhorn
longhorn.exitthecloud.eu
Hubble UI
hubble-ui.exitthecloud.eu
OneDev
onedev.exitthecloud.eu
Matomo
matomo.exitthecloud.eu
n8n
n8n.exitthecloud.eu
SurrealDB
surrealdb.exitthecloud.eu
Qdrant
qdrant.exitthecloud.eu
Garage
garage.exitthecloud.eu
RustFS
rustfs.apps.edgeprime.io
OpenCost
opencost.exitthecloud.eu
AI Platform
ai.exitthecloud.eu
Policy Reporter
policy-reporter.exitthecloud.eu
Firecrawl
firecrawl.exitthecloud.eu
IT-Tools
it-tools.exitthecloud.eu
Paperless-ngx
paperless.exitthecloud.eu
Stirling-PDF
stirling-pdf.exitthecloud.eu
Devtron
devtron.exitthecloud.eu
Honcho
honcho.exitthecloud.eu
Hindsight
hindsight.apps.edgeprime.io
Rclone
rclone.exitthecloud.eu
Mailpit
mailpit.exitthecloud.eu
Infrastructure as Code
Terraform gère tout ce qui ne peut pas être exprimé en manifestes Kubernetes.
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 + proxy cache projects (proxy-dockerhub, proxy-ghcr, proxy-quay, proxy-gcr)
terraform/grafana
grafana/grafana
Dashboard provisioning (JSON), data sources