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

Pattern A Helm + Configs

Chart Helm externe avec valeurs locales et manifestes compagnons

Keycloak, Cilium, ESO, Longhorn

Pattern B Helm + Inline

Application ArgoCD unique avec exclusion de répertoire

SurrealDB, Qdrant, Garage, Supabase

Pattern C Chart Wrapper

Chart.yaml local englobant la dépendance externe

Homepage, Harbor, Backstage, Falco

Pattern D Manifestes bruts

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