neuraltrust-platform chart installs on OpenShift as on any other Kubernetes distribution. Three things differ: the chart renders native Routes instead of Ingress, wildcard Routes need cluster-level admission, and one workload needs an SCC decision. Everything else — Secrets, values, helm upgrade --install — is identical.
Every topology is supported. Install by following Hybrid or External as written — namespace, Secrets, values file, helm upgrade --install, verification — and apply the OpenShift specifics on this page as you go.
Requirements
Start from the chart’s tracked
values-openshift.yaml, which you get by unpacking the chart or from the chart repository. A companion OpenShift guide is maintained next to the chart.
Prepare a project
Select the platform
Two values switch the chart to OpenShift behaviour:values-openshift.yaml is a platform overlay, not a complete install — it selects the topology only. Layer it over a values file that selects products, with the OpenShift file last so its platform wins:
Routes
Withglobal.platform: openshift, the chart renders native Routes for the gateway, MCP, and — in External mode — the console and APIs. To standardise on Kubernetes Ingress instead, set agentgateway.ingress.resourceType: ingress.
Dynamic gateway subdomains (*.llm.<domain>, *.mcp.<domain>) render as Routes with wildcardPolicy: Subdomain. The chart cannot configure the IngressController, so a cluster administrator has to admit wildcards first:
agentgateway.config.autoWildcardHosts: false and use exact hosts, where callers pass the gateway slug as a header instead.
Route certificates
A Route is readable by anyone holdingroute/get, so the chart never copies private keys into one. Setting an ingress tls.secretName renders spec.tls.externalCertificate pointing at your Secret, which requires OpenShift 4.17+ and read access for the router service account. On older clusters, rely on the router’s default wildcard certificate.
SecurityContextConstraints
Most workloads run non-root with all capabilities dropped and are compatible withrestricted-v2 as-is. The chart also drops its fixed runAsUser/fsGroup from in-cluster PostgreSQL when global.platform: openshift, so the platform-assigned UID applies. Two workloads need a decision:
Granting
anyuid to the one ServiceAccount, rather than relaxing the namespace default, is the narrower change:
restricted-v2 for everything else. If your policy forbids anyuid outright, raise it before install — Firewall deploys with TrustGuard and has no separate switch.
Expose the entry points
- The LLM/proxy Route, targeting the proxy Service’s named
httpport (Service port80, TrustGate container port8081) - The MCP Route, targeting the MCP Service’s named
httpport (Service port80, TrustGate container port8082)
Also plan for
- Worker capacity for your topology — Capacity (Hybrid ~3–4 × 8 vCPU / 16–32 GiB; External ~4–5; right-size later)
- Hybrid only: the network rules for config-sync, telemetry, and DataBridge egress, plus the NeuralTrust inbound source IP
- Disconnected clusters: mirror every image and set
global.imageRegistry— see Container images. Hybrid cannot be air-gapped, because product telemetry egress is mandatory; a fully disconnected install must use External