Skip to main content
Pick the topology first — it changes what you install, what you must create beforehand, and whether you need the NeuralTrust console at all. Both paths assume you already have the maintained neuraltrust-platform chart and credentials for the NeuralTrust image registry. <chart> below is the chart reference your NeuralTrust contact provided. On OpenShift the install is the same but ingress differs — see OpenShift before you start.
Step 3 is where most installs fail. Those four Secrets are never generated by the chart. If your values file does not reference them, the install stops at render time with a validation error.
1

Check prerequisites

  • A Kubernetes cluster with an ingress controller, and Helm 3.8+
  • Capacity for your topology — Cluster sizing
  • A base domain you can point at the cluster ingress, for example platform.example.com
  • Outbound TCP 443 to the NeuralTrust config-sync, DataBridge, and telemetry hosts, plus inbound from the NeuralTrust source IP — Network
  • A reachable PostgreSQL and Redis. The chart deploys both in-cluster by default; managed stores are recommended for production — sizes
2

Create the namespace and image pull secret

NeuralTrust images are private, and NeuralTrust sends you a registry key when your account is provisioned. Turn it into the pull Secret every component expects — the chart repository ships a script that fills in the registry server for you:
If your cluster cannot reach the NeuralTrust registry, mirror the images into your own instead and set global.imageRegistry. Both paths, and the two collector images that imageRegistry does not rewrite, are covered in Container images.
3

Create the four operator-supplied Secrets

Create TrustGate and TrustGuard in the console first. Each issues a config-sync token and a DataAgent enrollment JWT. You generate the LKG key yourself. Full walkthrough: Console setup.
Every other credential — JWT signing keys, the PostgreSQL password, and so on — is generated on first install and reused on upgrade. See Secrets.
The enrollment JWT already carries tenant_id and instance_id. Do not set a tenant ID in values.
4

Write your values file

The chart ships values-required.yaml, a full-hybrid preset that already matches the Secret names above. Copy it and change the two cluster-specific lines:
Product flags default to off and at least one must be true. For a subset, drop the flags you do not need and use the matching tracked slice — values-trustgate.yaml.example, values-trustguard.yaml.example, or values-red-teaming.yaml.example (data-plane API only, which needs no DataAgent and no config-sync). Every switch is listed in Feature flags.
5

Install

To inspect the manifests first, render them locally. The chart validates your values at template time, so most configuration mistakes surface here:
6

Verify

With all three products enabled you should see agentgateway-proxy, agentgateway-mcp, trustguard-data-plane, data-plane-api, firewall and its workers, dataagent, dataagent-trustguard, control-plane-postgresql, and redis.Hostnames derive from global.domain:Point DNS at the ingress address, then set the LLM URL and MCP URL in Settings → Agent Gateway → General to finish console setup.

Install fails? Common causes

Both modes validate your values while rendering, so these appear before anything reaches the cluster. A clean render still cannot see your cluster. A missing gcr-secret, a Secret you referenced but never created, or an absent ingress class will only surface as pod failures after install — check kubectl get pods -n neuraltrust and the pod events.

Next steps

Configuration

Datastores, ingress, TLS, and domains.

Secrets

What the chart generates and what you must supply.

Feature flags

Every switch that changes the deployment.

High availability

Multi-region and failover planning.