NeuralTrust Platform runs on Google Kubernetes Engine using GCP-native primitives — GCE Ingress with Managed Certificates, Persistent Disk for storage, Workload Identity for IAM, and Cloud DNS for hostnames. GCP is the chart’s default platform target (Documentation Index
Fetch the complete documentation index at: https://docs.neuraltrust.ai/llms.txt
Use this file to discover all available pages before exploring further.
global.platform: gcp).
Pick your path
Hybrid (recommended)
Data Plane + TrustGate + Firewall in your GKE cluster. Control Plane runs on NeuralTrust SaaS. Fastest to first dashboard.
Self-hosted
Full stack including Control Plane API, UI, and Scheduler in your GKE cluster. For sovereignty and air-gapped requirements.
Cluster prerequisites
| Resource | Recommended starting point |
|---|---|
| GKE version | 1.28 or newer |
| Cluster mode | Standard or Autopilot (Standard recommended for GPU workloads) |
| CPU pool machine type | e2-standard-8 or n2-standard-8 (8 vCPU / 32 GiB) |
| Min CPU nodes | 4 for hybrid (CPU Firewall), 5 for self-hosted (CPU Firewall). Subtract one when using GPU Firewall workers. ≥ 3 zones for HA. |
| GPU pool (optional) | n1-standard-4 + 1 × T4 — 5 nodes (one per default Firewall worker) |
| Storage | pd-balanced (default) or pd-ssd for ClickHouse |
| Ingress | GCE Ingress (default) with Managed Certificates, or NGINX |
| DNS | Cloud DNS or any DNS provider for the platform base domain |
| Container Registry | NeuralTrust ships images from europe-west1-docker.pkg.dev |
e2-standard-4 (4 vCPU / 16 GiB) workers also work but require 7–8 nodes to fit the same workload. See Deployment models › Sizing baseline for the math.
For GPU Firewall workers, add a GPU node pool with g2-standard-4 (NVIDIA L4) or equivalent. See Firewall deployment › GPU for details.
Required cluster setup
--num-nodes is per-zone in a regional cluster — 2 × 3 zones = 6 worker nodes, which fits the hybrid topology with breathing room. Drop to 1 per zone (= 3 nodes) only if you’re moving Firewall workers onto a separate GPU node pool.
GCE Ingress, Managed Certificates, and the Persistent Disk CSI driver are all enabled by default on GKE.
Architecture
All workloads run inside your GCP project and VPC. Data never leaves your environment.GCP-specific defaults
Whenglobal.platform: "gcp" (the chart default):
- Ingress class: GCE (via
kubernetes.io/ingress.class: gce). - TLS: prefers GCP Managed Certificates via
networking.gke.io/managed-certificates. When no cert is configured, the chart provisions a self-signedkubernetes.io/tlssecret. - Service annotations: NEG enabled (
cloud.google.com/neg: '{"ingress": true}') for container-native load balancing. - Static IPs: per-service
global-static-ip-nameannotation respected when set. - PSC: optional via
global.psc.negNamesfor Private Service Connect.
Common configuration
Storage class
pd-ssd:
Managed Certificates
GCP Managed Certificates issue and renew TLS certs automatically. Reference one from your ingress:ManagedCertificate and FrontendConfig:
Managed Certificate provisioning requires DNS to already resolve to the load balancer. Provision DNS first, then add the cert annotation, then upgrade Helm.
Internal-only ingress
For VPC-internal endpoints using the Internal HTTP(S) Load Balancer:Network Endpoint Groups (NEG) and Private Service Connect
For container-native load balancing or PSC-published endpoints:GPU node pool for Firewall workers
Region availability
NeuralTrust runs in any GCP region with GKE support. Choose the region closest to your application traffic and target LLM endpoints, or one that meets your data-residency obligations. For Assured Workloads or specific sovereign-cloud requirements, contact [email protected].Backup and data lifecycle
For production, configure backups against the persistent stores rather than relying on Persistent Disk snapshots alone:- PostgreSQL: use Cloud SQL for PostgreSQL externally and set
neuraltrust-control-plane.infrastructure.postgresql.deploy: false. - ClickHouse: use
clickhouse.backup.enabled: trueto back up to GCS (S3-compatible endpointhttps://storage.googleapis.com/<bucket>/<prefix>), or run ClickHouse Cloud externally. - Kafka: use Confluent Cloud and set
infrastructure.kafka.deploy: false.
Verification
Common issues
| Symptom | Likely cause | Fix |
|---|---|---|
| Ingress doesn’t get an IP | Missing BackendConfig or NEG annotation mismatch | Check ingress events with kubectl describe ingress |
Managed Certificate stuck Provisioning | DNS not yet pointing at LB | Confirm A record resolves, then wait 10–60 minutes |
PVC stuck Pending | Wrong / missing storage class | kubectl get storageclass; confirm cluster quota |
ImagePullBackOff | Missing or wrong gcr-secret | Recreate with the JSON key from NeuralTrust |
Next steps
- Hybrid deployment on GKE — Data Plane only, Control Plane on SaaS
- Self-hosted deployment on GKE — full stack including CP
- Deployment models — hybrid vs self-hosted in depth
- Feature flags reference — local vs external Postgres/Redis/Kafka/CH, image registry, storage, secrets
- Image catalog — what runs where
- Firewall deployment — GPU workers on GKE