Skip to content

Déploiement GCP (GKE)

Objectif

Déployer Finoptika sur Google GKE avec Cloud SQL et Memorystore Redis. Public : SRE / platform côté client GCP. C'est le chemin de déploiement de référence de la plateforme.

Composants provisionnés (Terraform)

RessourceRôle
VPCRéseau isolé
GKECluster Kubernetes
Cloud SQL PostgreSQLDonnées multi-tenant (RLS)
Memorystore RedisBroker Celery + cache
Artifact RegistryRegistre d'images

Manifeste : deploy/terraform/gcp/ + overlays overlays/prod-gcp (namespace finoptica-prod).

Étapes

bash
# 1. Auth
gcloud auth login
gcloud auth application-default login
gcloud config set project YOUR_PROJECT_ID

# 2. Infra (~15 min pour GKE)
cd deploy/terraform/gcp
terraform init
terraform apply -auto-approve \
  -var="gcp_project_id=YOUR_PROJECT_ID" \
  -var="gcp_region=europe-west1" \
  -var="domain_name=finoptika.fr" \
  -var="github_org=YOUR_GITHUB_ORG" \
  -var="github_repo=finoptica-next" \
  -var="ha_enabled=true"

# 3. Secrets GitHub Actions (depuis les outputs Terraform)
terraform output github_actions_setup

Secrets requis : WIF_PROVIDER, WIF_SERVICE_ACCOUNT, GCP_PROJECT_ID.

Déploiement applicatif (GitOps)

Le déploiement se fait via GitHub Actions + kustomize : poussez un tag vX.Y.Z pour déclencher le pipeline (overlays prod-gcp, ns finoptica-prod). Cloud Build + kubectl reste un fallback manuel.

Points d'attention GCP connus

  • Redis Memorystore rediss:// : Celery nécessite broker_use_ssl avec ssl_cert_reqs=CERT_NONE.
  • Workload Identity : vérifier le bon namespace WI (finoptica-prod).
  • Insertion fact_cost : l'insert en masse doit être chunké (cap asyncpg 32767 paramètres).

Connecteur GCP (côté application)

Configurez un connecteur cloud : compte de service avec BigQuery Data Viewer, export de facturation vers BigQuery (project_id, billing_account_id, dataset_id). ⚠️ Délai d'export 24–48 h sans backfill.

Provisionnement du tenant en production

Le seed démo étant gaté hors dev, provisionnez un tenant propre via app/ops/provision_tenant.py. Login sans OIDC = email/mot de passe.

Voir aussi

Documentation Finoptika · Estimations P90 consultatives, jamais garanties · Données isolées par tenant (RLS + RBAC).