Aller au contenu

Sources de données démo — périmètre 3 Postgres simulés client

akko-demo-sources déploie quatre StatefulSets Postgres autonomes dans le namespace akko-demo-sources. Le chart est séparé de l'umbrella AKKO par design : il représente ce qu'un client posséderait déjà (OLTP opérationnel, PostGIS IoT, registre secteur public, ESG géospatial) avant l'installation d'AKKO. Le Trino d'AKKO fédère ces sources via le connecteur postgresql standard.

C'est le troisième périmètre de déploiement AKKO (ADR-045) :

  1. AKKO core (namespace akko) — la plateforme elle-même
  2. AKKO demo AD (namespace akko-demo-ad) — LLDAP pour la démo SSO
  3. AKKO demo sources (namespace akko-demo-sources) — ce chart

Instances

Instance Image Domaine Catalog Trino (ADR-046)
akko-demo-sources-banking postgres:16-alpine OLTP banking postgres_oltp_banking
akko-demo-sources-iot postgis/postgis:16-3.4-alpine IoT spatial postgres_postgis_iot
akko-demo-sources-publicsector postgres:16-alpine INSEE SIRENE postgres_oltp_publicsector
akko-demo-sources-esg postgis/postgis:16-3.4-alpine Immobilier / climat postgres_postgis_esg

La nomenclature des catalogs (<engine>_<storage>_<domaine>) rend la page Catalogs du cockpit auto-explicative : un prospect comprend immédiatement que postgres_postgis_iot est une instance Postgres avec PostGIS contenant des données IoT, fédérée via Trino.

Source de vérité unique pour les credentials

Ce chart et l'umbrella AKKO lisent les quatre mots de passe depuis global.demoSources.passwords.<domaine>. L'umbrella matérialise un Secret miroir akko-demo-sources-passwords dans le namespace akko afin que Trino puisse résoudre les env vars dans ses fichiers .properties (Kubernetes ne permet pas le secretKeyRef cross-namespace).

helm install akko-demo-sources helm/akko-demo-sources/ \
  -n akko-demo-sources --create-namespace \
  --set postgresPasswords.banking=<32 caractères aléatoires> \
  --set postgresPasswords.iot=<32 caractères aléatoires> \
  --set postgresPasswords.publicsector=<32 caractères aléatoires> \
  --set postgresPasswords.esg=<32 caractères aléatoires>

L'umbrella reçoit les MÊMES valeurs via global.demoSources.passwords. Toute dérive entre le password côté chart et le password côté Trino est structurellement impossible.

Données shaped sur de l'open data (Sprint 62.3)

Les DAGs compagnons airflow/dags/akko_load_*.py (et leur miroir airflow/dags/sql/seed_*.sql) chargent des données synthétiques dont le schéma reproduit fidèlement de l'open data réelle :

  • PaySim Kaggle (CC0) — 100 k transactions, taux de fraude 0,13 %
  • NOAA Global Hourly ISD — 50 stations × 30 jours horaires + 1 k actifs industriels en France
  • INSEE SIRENE Licence Ouverte 2.0 — 100 k entreprises françaises synthétiques avec SIRET, SIREN, NAF, distribution départementale pondérée
  • Copernicus CDS + ENTSO-E Transparency + DPE — 50 k annonces immobilières + 50 k scores risque inondation + 60 k lignes énergie

Basculer vers le téléchargement CSV réel = un changement d'une ligne par DAG. Les seeds SQL sont des équivalents server-side qui bootstrap les données en quelques secondes sur un cluster neuf.

NetworkPolicy

Le chart impose une NetworkPolicy stricte par instance :

  • Ingress autorisé depuis les pods same-namespace + le namespace plateforme AKKO (global.akkoNamespace, défaut akko)
  • Egress limité à kube-dns uniquement (pas d'Internet public, pas de Slack, rien)

Smoke test

# Connexion depuis l'intérieur de Trino
TRINO_POD=$(kubectl -n akko get pod -l app.kubernetes.io/component=coordinator \
  -l app.kubernetes.io/name=trino -o name | head -1)
kubectl -n akko exec $TRINO_POD -- \
  trino --user alice --execute 'SHOW SCHEMAS FROM postgres_oltp_banking'
# attendu : information_schema, pg_catalog, public

Liens