Skip to content

Runtime plane — advanced setup

Advanced Config is the same wizard as Basic setup with two extra steps inserted before the deploy step. Everything on those two steps is optional, so Advanced is not a harder path — it is the same path with more of it visible. This page is self-contained: the steps it shares with the Basic path are reproduced here, so there is no need to switch between them.

Basic Advanced
1 Infrastructure Setup → 2 Deploy 1 Infrastructure Setup → 2 Storage & Connectivity → 3 Cloud Permissions → 4 Deploy

If you are not sure this is the path you want, see Choosing Basic or Advanced on the overview page. Work through Before you begin first — a cluster that meets the requirements, kubectl and helm access to it, and the Account Admin role in the portal.

Basic Config has two steps; Advanced Config inserts Storage and Connectivity and Cloud Permissions before Deploy

The two steps Advanced adds, highlighted. Everything else is identical to the Basic path. Click to enlarge.

You can add most of this later

Everything on the Storage & Connectivity step can also be set after the runtime plane is running, from its Configuration tab. Advanced simply lets you get it right the first time. The one thing worth deciding up front is the secret store, because moving credentials between stores later means re-entering them.

Setting up custom agent monitoring? Five fields on this page are mandatory

Everything on this page is optional except when you are configuring monitoring for custom agents. That feature needs a specific set of fields, and if any is missing the collector accepts the toggle, the deploy succeeds, and you get no endpoint and no error.

Those fields are flagged Required for custom agent monitoring as you go, and listed together in What custom agent monitoring needs at the end of this page — read that first if you would rather see the whole list before you start.


Step 1 — Open the wizard and fill in Infrastructure Setup

  1. Log in to the Trust3 AI portal.
  2. In the left sidebar, click Settings.
  3. In the Settings menu, click Runtime.

You are now on Runtime Environments. Any runtime planes you already have are listed here as cards, each showing its name, its type, a status badge such as Running, and when it last reported in. A fresh account normally shows one entry, Trust3 AI Cloud, which is the Trust3-hosted SaaS environment.

  1. Click + Create New.

The Create Runtime Plane page opens on Infrastructure Setup. Set Configuration Mode to Advanced Config — the step indicator at the top grows from two steps to four, and the button at the bottom right changes from Generate to Next.

Fill in the left-hand column:

Field What to enter
Deployment Type Leave Partially Managed ( D2P ). The control plane stays in Trust3 Cloud and only the data plane runs in your environment. (Self-Managed, where you host the database and the control plane yourself, is a different install and is not covered here.)
Configuration Mode Basic Config uses guided defaults. Advanced Config adds the Storage & Connectivity and Cloud Permissions steps.
Cloud Provider Click the tile for the cloud your Kubernetes cluster runs in: AWS, Azure, or GCP. The prerequisites panel on the right changes to match.
Region Pick the region your cluster is deployed in.
Runtime Name Auto-filled as cloud-region-NNN, for example aws-us-east-1-871. Keep it or personalise it.

About the runtime name

This name becomes the Kubernetes namespace, so it has rules:

  • 6 to 44 characters
  • lowercase letters, numbers, and hyphens only
  • must start and end with a letter or number

The ↻ icon next to the field generates a fresh suggestion. If you type a custom region, it must be at least 7 characters and use the same character set, so that the generated name stays a valid namespace.

Pick the name deliberately

The name is used for the namespace and for internal service names, and it becomes part of the hostname of any endpoint the plane exposes. Renaming it later means recreating the runtime plane, so choose something you can live with — a short name that identifies the environment, such as prod-us-east-1 or aws-us-east-1-871.

Confirm the prerequisites

On the right-hand side is a checklist for the cloud provider you selected. Work through it and tick each item once it is true of your cluster.

Item What it means
EKS Cluster Configuration Kubernetes v1.34+, r5.2xlarge nodes, 1–10 node auto-scaling.
Terminal Access to Cluster You have terminal access to the EKS cluster to run kubectl and helm, with cluster-admin permissions.
Required Command-Line Tools AWS CLI v2.12.0+, kubectl v1.34+, Helm v3.9.0+, and curl/wget are installed.
Kubernetes Metrics Server Metrics Server is installed and running, for monitoring and autoscaling.
Item What it means
AKS Cluster Configuration Kubernetes v1.34+, Standard_E8s_v3 nodes, 1–10 node auto-scaling.
Terminal Access to Cluster You have terminal access to the AKS cluster to run kubectl and helm, with cluster-admin permissions.
Required Command-Line Tools Azure CLI v2.50.0+, kubectl v1.34+, Helm v3.9.0+, and curl/wget are installed.
Kubernetes Metrics Server Metrics Server is installed and running, for monitoring and autoscaling.
Item What it means
GKE Cluster Configuration Kubernetes v1.34+, n2-standard-8 nodes or equivalent, node pool autoscaling 1–10 nodes.
Terminal Access to Cluster Terminal access to run kubectl and Helm with Kubernetes Engine Cluster Admin or equivalent.
Required Command-Line Tools Google Cloud SDK 450.0.0+, kubectl v1.34+, Helm v3.9.0+, and curl or wget.
Kubernetes Metrics Server Metrics Server is installed and running, for monitoring and workload autoscaling.

Two helpers sit alongside the list:

  • Download Script — downloads a script that carries out the preparation steps for you.
  • View full details — opens step-by-step manual instructions for that one item.

When every box is ticked, the panel shows All prerequisites confirmed and the button at the bottom of the page becomes available.

Click Next.


Step 2 — Storage & Connectivity

Every field on this page is optional. A banner at the top says so, and it is accurate — you can click Next without filling in anything.

Secrets Provider

This decides where the credentials you type into collector configurations are stored. Every collector you configure later — database passwords, API tokens, agent endpoint passwords — uses whatever you choose here.

Option How it works Extra setup
Trust3 DB (End-To-End Encrypted) Encrypted in your browser and stored in the Trust3 Cloud database. None. This is the default.
Kubernetes Secrets Read from a Kubernetes Secret in the runtime plane's namespace. You create and maintain the Secret.
AWS Secrets Manager / Azure Key Vault / GCP Secret Manager Stored in your cloud's secret service; the runtime reads it using its cloud identity. The secret must exist, and the runtime's identity needs read access to it.

The cloud option shown depends on the cloud provider you selected on step 1. Each option has a Details link explaining it in place.

If you pick Kubernetes Secrets or a cloud secret manager, you also enter the name of the secret that holds the values.

With a cloud secret manager, password fields take a key name, not a password

On an AWS Secrets Manager plane (and equivalently on Azure Key Vault or GCP Secret Manager), a sensitive field in a collector configuration expects the key name inside that secret, not the secret value itself. This trips people up later, most often on the trace ingester password.

The reason is straightforward: on those store types, anything typed directly into the form would be readable by anyone who can view the collector's configuration.

Storage Settings

The bucket or container Trust3 uses for its own data — and, if you enable custom agent monitoring, the place agent traces are written to and read back from.

⚠ Required for custom agent monitoring — the AWS S3 Bucket Name is where agent traces are written and read back.

Field What to enter
AWS S3 Bucket Name The bucket used for storing Trust3-related information. Once saved, the bucket name cannot be changed.

There is a How to create an S3 bucket link next to the section heading if you need it.

Create the bucket in the same region as the cluster

A region mismatch makes writes fail in ways that are hard to diagnose from the sender's side.

Field What to enter
Azure Blob Storage Container Name The container used for storing Trust3-related information.
Storage Account Name The name of the Azure Storage Account that contains that container.
Field What to enter
GCS Bucket Name The Google Cloud Storage bucket used for storing Trust3-related information.

Persistent Storage

Where Trust3's own components keep data that must survive a pod restart.

⚠ Required for custom agent monitoring — the EFS Storage ID, with StorageClass Provisioning left on.

Field What to enter
StorageClass Provisioning On (default) means Trust3 creates and manages the StorageClass for you. Turn it off to point Trust3 at a StorageClass you already have.
StorageClassName Only shown when the toggle is off: the name of your existing Kubernetes StorageClass, for example gp3.

What Trust3 provisions when the toggle is on depends on the cloud:

Trust3 manages StorageClass creation via EFS, and you supply the file system:

Field What to enter
EFS Storage ID Your EFS file system ID, for example fs-12345678.

Changing this value later requires deleting the storage class and regenerating the Helm commands, so get it right now if you can.

An EFS CSI Driver setup link next to the section heading covers the driver this needs.

Trust3 creates a StorageClass backed by Azure Premium managed disks. No extra field.

Trust3 creates a StorageClass named <runtime-name>-sc, backed by GCP Persistent Disks. No extra field.

DNS Management

This is what gives Trust3 services in your cluster real hostnames.

⚠ Required for custom agent monitoring — both the Domain Name / R53 Hosted Zone Name and the AWS R53 Hosted Zone ID; the trace endpoint's hostname is built from the domain.

Field What to enter
Automatic DNS Management On means Trust3 automatically creates and updates DNS records in your Route 53 hosted zone. Off means you create and maintain those records yourself.
Domain Name / R53 Hosted Zone Name The domain used for all Trust3 service endpoints. Same as the Route 53 hosted zone name, for example trust3.yourdomain.com.
AWS R53 Hosted Zone ID The hosted zone's ID, for example Z01234567890123456789. Required when Automatic DNS Management is on.
Field What to enter
Automatic DNS Management On means Trust3 automatically creates and updates DNS records in your Azure DNS Zone. Off means you maintain them yourself.
Domain Name / DNS Zone Name The domain used for all Trust3 service endpoints. Same as the Azure DNS Zone name. Required when Automatic DNS Management is on.
Resource Group Name The Azure Resource Group that contains the DNS Zone. Required when Automatic DNS Management is on.
Field What to enter
Automatic DNS Management On means Trust3 automatically creates and updates DNS records in your Cloud DNS zone. Off means you maintain them yourself.
Cloud DNS Domain Name The domain name associated with your Cloud DNS zone. Trust3 uses it for all service endpoints on this runtime plane.
Cloud DNS Zone Name The GCP resource name of your Cloud DNS managed zone, for example privacera-zone.

A DNS setup guide link sits next to the section heading.

Ingress Settings

⚠ Required for custom agent monitoring — the AWS ACM ARN and the ALB Subnet IDs; without them the trace endpoint is never created. How traffic reaches Trust3 services from outside the cluster. On AWS this section is shown, and it needs the AWS Load Balancer Controller installed in the cluster — the link next to the heading says so.

Field What to enter
AWS ACM ARN The ARN of an AWS Certificate Manager certificate covering your domain, for example arn:aws:acm:region:account:certificate/…. A Certificate requirements link explains what the certificate must cover.
ALB Subnet IDs The subnets the Application Load Balancers should sit in. You can list several, comma-separated: subnet-abc123, subnet-def456.
ALB Group Name Ingresses in the same group share one Application Load Balancer. Defaults to trust3ai.

Internal or internet-facing is your decision

Which subnets you choose determines whether the load balancer is reachable only from inside your VPC or from the internet. Pick according to where the clients live — for custom agent monitoring, that means where your agent application runs.

Ingress is handled by the AKS ingress setup for your cluster; there is no separate ingress section on this page.

Ingress is handled by the GKE ingress setup for your cluster; there is no separate ingress section on this page.

Custom Docker Image Repository (optional)

Field What to enter
Docker Repository URL A container registry Trust3 should pull its component images from instead of the default, for example myregistry.example.com. Leave blank to use the default Trust3 image hub.

For a full walkthrough of the private-registry case, see Custom ACR with Runtime.

Click Next.


Step 3 — Cloud Permissions

This step gives the runtime plane a cloud identity so it can reach the storage, DNS, and secret services you configured on step 2.

⚠ Required for custom agent monitoring — the IAM Role ARN, and its policy must include s3:* on your trace bucket.

The requirements are derived from your step 2 answers. If you left step 2 empty, there is nothing to do here. If you filled anything in, a banner at the top of the page tells you the identity is now required — for example, on AWS: IAM Role ARN is required because AWS service access is configured.

Everything you need is generated for you on the page: a suggested identity name, the exact commands to create it, and the exact permissions to attach. Both CLI and Console tabs are available for each block, and a Quick Reference panel on the right shows the values the commands were built from — identity name, runtime name, region, and hosted zone ID.

What you enter

Field What to enter
IAM Role ARN The ARN of the IAM role Trust3 services will use, for example arn:aws:iam::123456789012:role/trust3-my-runtime-role.

How to create it

The page suggests a role name of the form trust3-<runtime-name>-role, for example trust3-aws-us-east-1-871-role, and walks you through two numbered steps:

  1. Create the IAM role. Set your EKS cluster name in <cluster-name>, then run the generated script. It looks up the cluster's OIDC issuer and your account ID, builds an IRSA trust policy — sts:AssumeRoleWithWebIdentity, restricted to service accounts in the runtime plane's namespace — and creates the role. A check this guide link covers the OIDC values if you need them.
  2. Retrieve the role ARN. Run the aws iam get-role command shown and paste the result into the IAM Role ARN field above.

Policy Reference

Below that, the page generates a single inline policy to attach to the role, containing only what your configuration actually needs:

You configured Policy grants
AWS S3 Bucket Name s3:* on arn:aws:s3:::<bucket> and arn:aws:s3:::<bucket>/*
Automatic DNS Management route53:* on arn:aws:route53:::hostedzone/<hosted-zone-id>
AWS Secrets Manager as the secret store secretsmanager:GetSecretValue and secretsmanager:DescribeSecret on your secret

Copy it from the page and attach it with the aws iam put-role-policy command shown.

You can reuse an existing role instead of creating one, as long as its trust policy and permissions match what the page describes.

Field What to enter
Managed Identity Client ID The client ID of the managed identity Trust3 services will use.

A How to Create a Managed Identity section generates the commands. The page then lists the role assignments your configuration requires, each with a ready-made az role assignment create command:

You configured Role assignment
Azure Blob Storage Container Name Storage Blob Data Contributor on the container
Automatic DNS Management DNS Zone Contributor on the DNS zone
Azure Key Vault as the secret store Key Vault Secrets User on the vault
Field What to enter
GCP Service Account Email The email of the service account Trust3 services will use.

A How to Create a Service Account section generates the commands, followed by an IAM Binding Reference listing the bindings your configuration requires:

You configured IAM role
GCS Bucket Name roles/storage.objectAdmin
Automatic DNS Management roles/dns.admin
GCP Secret Manager as the secret store roles/secretmanager.secretAccessor
Workload Identity (always) roles/iam.workloadIdentityUser

Click Generate.


Step 4 — Deploy

Copy these now — they are shown only once

The page opens with a Security-Sensitive Configuration warning, and it means it. The installation commands contain your runtime plane's API key. Once you navigate away, the key is not displayed again, and getting a new one invalidates the old one.

Paste both commands somewhere safe before doing anything else — a password manager or your team's secret store, not a chat message.

The Deploy step shows two commands.

The download command. Use the CURL tab, or the WGET tab if you prefer wget. It downloads a values.yaml for your runtime plane:

Bash
1
2
3
curl -fsSX GET https://<your-trust3-host>/runtime/runtime-plane/<id>/values/download \
  -H "x-pcloud-key: <your-api-key>" \
  -o values.yaml

The Helm command. It installs the runtime agent into your cluster, creating the namespace:

Bash
1
2
3
4
5
6
7
helm upgrade --install <runtime-name> https://<your-trust3-host>/runtime/helm/runtime-agent-1.0.0.tgz \
  --username trust3ai \
  --password <your-api-key> \
  --pass-credentials \
  --namespace <runtime-name> \
  --create-namespace \
  ...

Each block has two icons in its top-right corner:

  • 📋 copy — copies the command, including the real credential values.
  • 👁 eye — reveals the masked values on screen.

There is also a What this command does link next to each, if you want to know exactly what you are about to run.

Save the API key separately if you plan to use custom agents

Click the eye icon on the download command and copy the value of the x-pcloud-key header. That value is your runtime plane's API key — the same string appears as --password in the Helm command.

You need it again when you publish a custom agent inventory with the Trust3 collector SDK — see the custom agents guide linked at the end of this page.

Run the commands on your cluster

Open a terminal that is connected to your Kubernetes cluster — the one where kubectl is configured and working — and run the two commands in order, exactly as shown:

  1. the curl (or wget) command, which writes values.yaml into your current directory
  2. the helm upgrade --install command, which deploys the runtime agent

Check that kubectl is pointed at the right cluster before you start:

Bash
kubectl config current-context

Wait for the runtime agent to connect

Back in the portal, below the commands, you will see Waiting for Runtime Agent to connect…

You do not have to sit on this page. As the message says, you can close the window and finish later; the connection is established automatically once the commands have run.

Once the runtime agent pod is up and has called home, the status changes to connected.

To watch it from your side:

Bash
kubectl get pods -n <runtime-name>

You are looking for a runtime-agent-… pod in Running state.

Finish

  1. Click Done.
  2. A dialog appears — Don't lose access to your runtime — reminding you that these commands are how you reach the runtime plane via the instance CLI, and that without them you will have to regenerate access.
  3. If you have saved the commands, tick I have saved the installation commands securely.
  4. Click Leave Anyway.

Choose Stay on Page instead if you still need to copy something.

Verify

Go back to Settings → Runtime. Your new runtime plane should be listed with a Running status badge and a recent timestamp.

From the cluster side:

Bash
kubectl get pods -n <runtime-name>

What custom agent monitoring needs

If your reason for using Advanced Config is to monitor agents you built yourself, this is the checklist. Every item below is a prerequisite — the collector configuration will accept the toggle without them, but you will get no endpoint and no error.

Step 2 or 3 Set this
Storage Settings AWS S3 Bucket Name — the bucket traces are written to and read from
Persistent Storage EFS Storage ID (with StorageClass Provisioning on)
DNS Management Domain Name / R53 Hosted Zone Name and AWS R53 Hosted Zone ID
Ingress Settings AWS ACM ARN and ALB Subnet IDs
Cloud Permissions IAM Role ARN, with s3:* on your bucket

The IAM statement the Cloud Permissions step generates for the bucket is exactly what is needed:

JSON
1
2
3
4
5
6
7
8
{
    "Effect": "Allow",
    "Action": "s3:*",
    "Resource": [
        "arn:aws:s3:::<your-bucket>",
        "arn:aws:s3:::<your-bucket>/*"
    ]
}

AWS only

Custom agent trace collection writes to S3, so it is available on AWS/EKS runtime planes only. There is no Azure Blob or GCS path for it today, and the fields are not offered on an AKS or GKE plane.

Then continue with Monitoring custom agents.