Skip to Content

GCP

Deploy M3 Forge on GCP using GKE for Kubernetes and Cloud SQL for PostgreSQL, with an S3-compatible object storage layer for the current M3 Forge runtime contract.

M3 Forge dependencyGCP service
KubernetesGoogle Kubernetes Engine
PostgreSQLCloud SQL for PostgreSQL
Object storageMinIO on GKE, or another S3-compatible service
SecretsSecret Manager with External Secrets Operator
AnalyticsClickHouse Cloud on GCP or self-managed ClickHouse
IngressGKE Ingress, Gateway API, or NGINX Ingress

Important storage note

M3 Forge currently expects an S3-compatible object storage API. Native Google Cloud Storage is not yet the default runtime contract. On GCP, plan around MinIO or another S3-compatible layer until a native GCS adapter is introduced.

Prerequisites

  • a GKE cluster
  • Cloud SQL for PostgreSQL
  • an S3-compatible object storage endpoint reachable from the cluster
  • ingress or Gateway API
  • published API and frontend images

Installation

Provision infrastructure

Create:

  • GKE cluster
  • Cloud SQL PostgreSQL instance
  • MinIO or another S3-compatible object store
  • ClickHouse service

Prepare values

Start from:

cp deploy/helm/charts/m3forge/examples/self_hosted_external.yaml gcp-m3forge-values.yaml

Point values at GCP-managed services

Set:

  • DATABASE_URL for Cloud SQL
  • config.storage.s3EndpointUrl for MinIO or the S3-compatible endpoint
  • frontend and API public URLs
  • ingress or Gateway config

Install the chart

helm install m3forge ./deploy/helm/charts/m3forge \ -f gcp-m3forge-values.yaml

Example values shape

config: public: frontendUrl: https://forge.example.com apiUrl: https://forge.example.com appUrl: https://forge.example.com storage: s3EndpointUrl: https://minio.example.internal s3BucketName: m3forge s3Region: us-central1 secrets: existingSecret: m3forge-secrets create: false ingress: enabled: true className: gce host: forge.example.com

GCP-specific notes

Do not assume that GCS is a drop-in replacement for the current M3 Forge storage path. Keep the object-storage contract explicitly S3-compatible for now.

Next steps

Last updated on