global.deploymentMode: saas.
Do not confuse this with the hosted SaaS model, where NeuralTrust operates
both planes and there is nothing to install. Here the chart renders a control
plane that behaves like the hosted one, but it is yours and it runs in your
environment.
What runs in your central cluster
This mode is a superset of External: everything External deploys, plus three components and one behaviour change.
The behaviour change is in DataCore: it runs with a hybrid residency backend
rather than reading the local ClickHouse for everything, so entitled reads go
out through DataBridge to the cluster that holds the data.
Everything in External — the console,
ClickHouse, AlertEngine, the first administrator, datastore choices — applies
here unchanged.
Select the topology
Two values, on the central cluster:global.controlPlane.domain is what remote clusters dial. Leave it empty to keep
using NeuralTrust SaaS through global.saasRegion.
Cross-cluster endpoints
The chart derives all four endpoints from that one suffix:
One value drives all four deliberately. A remote cluster that reached DataBridge
on your domain but still dialled NeuralTrust for config-sync would half-work, and
the half that broke would be silent.
Set the same
global.controlPlane.domain on the central cluster and on every
remote cluster. DNS, certificates, and load-balancer provisioning for these names
are operator prerequisites.
Prerequisites
Have these ready before installing. Everything else the chart does for you.Images
A central cluster pulls two images beyond the External set, both from the NeuralTrust registry and both covered by thegcr-secret pull secret you already
have — databridge, and opentelemetry-collector-contrib for the ingest
gateway. The collector is the same image and tag your Hybrid clusters run as
their egress sidecar, so a mirror that already carries it needs nothing new.
Mirroring for an air-gapped install works the same as everywhere else, and
global.imageRegistry covers both of these. See
Images and registries.
TLS
All four endpoints are dialled from other clusters, and each terminates TLS itself. So each needs a certificate covering its hostname, and each remote cluster needs to accept it. There are three ways to get there, and you can mix them per endpoint.
Which option fits depends on how your remote clusters reach the control plane.
A certificate the data planes already trust
If the data planes traverse the public internet, or you run an internal PKI whose root is already in their trust stores, supply the certificates:Chart-generated, for a control plane on a private network
When remote clusters arrive over VPC peering, Direct Connect or a private link, no public trust store is involved and there is nothing to buy. Let the chart mint every certificate and distribute the CA as configuration:global.controlPlane.domain reaches the certificates. Rerun the export
script after any such change.
Keeping an endpoint off a load balancer
To reach a config-sync listener over peering without publishing a Service at all, set<product>.configSync.expose.enabled: false and route to the ClusterIP
yourself.
For endpoints that do get a load balancer, prefer an internal scheme when the
callers are on a private network — see Cloud notes.
Telling data planes apart
DataBridge has to know which data plane is which. Two authentication modes do that:
Mint one enrolment token per remote data plane, each with its own instance ID.
Reusing a single token across clusters collapses them into one identity in every
query result and audit trail, and nothing later signals that it happened.
Secrets
Four credentials come from the shared platform Secret and are generated for you when the chart owns secrets:
If you pre-provision secrets yourself —
global.preserveExistingSecrets,
global.autoGenerateSecrets: false, or global.platformSecret.existingSecret —
all four must be present, and the two token keys must hold one identical value.
When they drift, every agent connection returns 401 with nothing visibly wrong on
either side. Running ./create-secrets.sh with DEPLOYMENT_MODE=saas writes all
four correctly, including the alias.
See Secrets for how the shared platform Secret
works generally.
Remote data planes
Each remote cluster is an ordinary Hybrid install pointed at your domain instead of at NeuralTrust:Trusting a chart-generated control plane
Only needed when the central cluster serves chart-generated certificates. Apply the bundle produced byscripts/export-controlplane-ca.sh, then point all three
dialling legs at it:
global.customCaCert provides. The telemetry collector configures TLS from its own
config file and ignores that mount, so it takes a Secret name instead.
Before rolling out, confirm from inside each remote cluster that it can reach all
four central endpoints. A data plane whose egress is blocked does not crash — it
starts cleanly, serves its last-known-good configuration, and quietly stops
receiving updates. See the
network allowlist.
Cloud notes
Nothing in the chart is cloud-specific; the LoadBalancer Services take free-form annotations. On EKS with the AWS Load Balancer Controller:trustguard.configSync.expose. GKE already gives a layer 4
passthrough load balancer for a plain LoadBalancer Service; its private
equivalent is networking.gke.io/load-balancer-type: "Internal", and on AKS it is
service.beta.kubernetes.io/azure-load-balancer-internal: "true".
Three things worth knowing on any cloud:
- Use a layer 4 load balancer for DataBridge and config-sync. Both carry long-lived gRPC streams with TLS terminated in the pod. A layer 7 load balancer would have to re-terminate, and its idle timeout will cut streams that are healthy but quiet.
- The ingest gateway is plain HTTP, so it goes through an Ingress and a layer 7 load balancer is fine. It is the only one of the four that is not layer 4.
- An internal scheme keeps the whole topology off the public internet, which is what makes chart-generated certificates a sound production choice rather than a shortcut.
Install
Start from the maintainedneuraltrust-platform
chart, then layer your platform, domain, ingress, TLS, and datastore choices:
Next steps
Deployment models
Compare SaaS, Hybrid, External, and Central responsibilities.
Network allowlist
Endpoints a remote data plane must reach.
Config sync
How remote products pull configuration from your control plane.
Secrets
Credential handling, including the four cross-cluster keys.