Recommended managed services
| Component | GCP service | Notes |
|---|---|---|
| Kubernetes | GKE (Standard or Autopilot) | 3–5 nodes, ≥ e2-standard-4 (4 vCPU / 16 GB), regional cluster for HA. |
| MongoDB | MongoDB Atlas (preferred) | Available on GCP via Atlas. See MongoDB. |
| PostgreSQL (alternative) | Cloud SQL for PostgreSQL, regional HA. See PostgreSQL. | |
| Elasticsearch | Elastic Cloud on GCP, or self-managed Elasticsearch on GKE via ECK. See Elasticsearch. | |
| Redis | Memorystore for Redis. Standard Redis is enough — no modules required. See Redis. | |
| Object storage | Cloud Storage. Two buckets are enough: models and uploads (the latter serves both public and private files, proxied by the api-gateway). Add a third public bucket fronted by Cloud CDN only if you want public assets served directly from a CDN. | |
| File storage (PVC RWX) | Filestore with regional redundancy, via the Filestore CSI driver. | |
| Ingress | GKE Ingress with Google-managed certificates, or NGINX. | |
| TLS / Certificates | Google-managed SSL certificates (via Ingress or Certificate Manager). | |
| Secrets | Secret Manager + Workload Identity, or External Secrets Operator. | |
| Identity | Workload Identity for GCS, Secret Manager and Cloud SQL access. |
Persistent storage
The shared RWX PVC (used byprismeai-functions) can be backed by either:
- Filestore with regional redundancy — managed NFS, lowest latency for the functions sandbox. Survives a zonal outage.
- Cloud Storage FUSE (via the GCS FUSE CSI driver) — mounts a GCS bucket as a filesystem. Cheaper at large scale and inherently regional / multi-region, with higher latency than Filestore — fine for the function code volume, less ideal for hot temp files.
Infrastructure as Code
Use Terraform with the Google provider — Google’s documentation is the canonical reference. Prisme.ai doesn’t ship a dedicated GCP IaC bundle.DNS and TLS
Create two records (Cloud DNS or your registrar):Workload Identity
For GCS, Secret Manager and Cloud SQL access without static credentials:- Enable Workload Identity on the GKE cluster.
- Create a Kubernetes ServiceAccount per namespace (e.g.
prismeai-backends-sa) and bind it to a Google ServiceAccount with the required IAM roles (roles/storage.objectAdmin,roles/secretmanager.secretAccessor,roles/cloudsql.client). - Set
serviceAccount.name: prismeai-backends-saon every backend service in your Helm values.
Ingress annotations
GKE exposes two distinct LB settings:connectionDraining.drainingTimeoutSec(≈ 60 s, under the api-gateway server keep-alive of 70 s) — socket reuse between client requests.timeoutSec(≈ 300 s) — kill an in-flight request after this much inactivity, so SSE / long LLM streams aren’t dropped.
BackendConfig through the chart’s extraObjects value:
cloud.google.com/backend-config annotation — at minimum prismeai-console and prismeai-api-gateway, since these are the entry points exposed through the LB:
Next Steps
Install with Helm
Configure values and deploy core + apps namespaces.
Databases
PostgreSQL or MongoDB, Redis, Elasticsearch or OpenSearch.
Install products
Fresh-install walkthrough.
Migration v27
Migrate an existing instance to v27.