ARCHITECTURE DE LA PLATEFORME
Comment tout s'assemble
Chaque couche — de Talos Linux au portail développeur Backstage — conçue comme un système cohérent sur infrastructure bare-metal.
SPÉCIFICATIONS DU CLUSTER
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
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
*.apps.edgeprime.io → 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
20 services across 27 namespaces
Pipeline GitOps
Chaque modification passe par Git. Le pattern App-of-Apps d'ArgoCD auto-découvre et réconcilie plus de 40 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
Services exposés
20 services accessibles via la Gateway Cilium partagée sur *.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 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, robot accounts
terraform/grafana
grafana/grafana
Dashboard provisioning (JSON), data sources