Private datacenters
What this is
Section titled “What this is”Private datacenters (PDCs) are runner sites you operate inside your own network. Each site runs a MaxoPerf Outpost agent — a lightweight process that receives work from the platform and executes load on your behalf, from within your environment. Once a PDC is enrolled and its agent is running, the location appears alongside managed cloud regions when you configure a test.
Use private datacenters when your load target is:
- Internal and not reachable from the public internet.
- Subject to network or compliance constraints that require traffic to originate inside your environment.
- A system where you want to keep all load and result data on infrastructure you control.
Where to find it
Section titled “Where to find it”Click Private datacenters in the left navigation sidebar. The route is /private-datacenters. The page is scoped to the workspace selected in the top-bar workspace scope switcher — a workspace must be selected to create or list PDCs.
Private datacenters list
Section titled “Private datacenters list”The Workspace-owned sites section lists every PDC registered under the active workspace, one row per site.
Each row contains:
| Element | What it shows |
|---|---|
| Site name | The human-readable label you gave the PDC at creation. |
| PDC ID | A truncated stable identifier — hover for the full value. |
| Workspace | The workspace that owns this PDC. |
| Deployment mode | docker (single-host Docker) or kubernetes (cluster-based). |
| Open | Click the row or the chevron to navigate to the PDC detail page. |
Connect an Outpost (create a PDC)
Section titled “Connect an Outpost (create a PDC)”Connecting a new private datacenter is a two-step process: register the site in the console, then install the Outpost agent on your infrastructure using the generated install manifest.
Step 1 — Register the site
Section titled “Step 1 — Register the site”- Ensure a workspace is selected in the top-bar scope switcher.
- Click Create PDC in the page header. A dialog opens.
- Enter a Name for the site (at least 2 characters). Use a descriptive label such as
On-prem EastorGCP VPC Internal. - Choose a Type:
- Docker hosts — for a single Linux host running Docker.
- Kubernetes — for a Kubernetes cluster where the agent runs as a workload.
- Click Create PDC. The dialog closes and the new site appears in the list. Navigate to the PDC detail page to generate an install manifest.
Step 2 — Generate an install manifest and enrol the agent
Section titled “Step 2 — Generate an install manifest and enrol the agent”Open the new PDC’s detail page and locate the Install manifest (with JWT) section.
- In the Agent client ID field, enter a stable identifier for the host or Kubernetes pod — for example, a hostname (
my-docker-host-01) or a durable pod name. This ID persists in the Outpost agents table so choose something descriptive. - Click Generate install manifest. The platform:
- Issues a scoped, time-limited install JWT.
- Fetches the install manifest for the PDC.
- Merges the JWT into the snippet, replacing the placeholder token.
- Copy the generated snippet and run it on your infrastructure:
- Docker — copy the
docker runcommand and run it on the target host. - Kubernetes — save the
kubectl applyYAML to a file and apply it to your cluster.
- Docker — copy the
For a detailed walk-through of the full install path, see Connect a private datacenter.
PDC detail
Section titled “PDC detail”The PDC detail page is opened by clicking any row in the private datacenters list, or by navigating to /private-datacenters/<pdc-id>.
The page is organised into four sections:
Identity and rename
Section titled “Identity and rename”The page heading shows the PDC name as an editable field (if you have edit rights). Click the name to rename the site inline. A meta pill row below the heading shows the deployment mode, PDC ID, and workspace ID.
Auto-update readiness
Section titled “Auto-update readiness”This read-only section summarises the scheduled upgrade posture for the PDC:
- Whether auto-update is enabled or disabled for the site.
- The current Outpost image reference and digest reported by the enrolled agents.
- The overall readiness state — whether the PDC is ready for a scheduled update or has blocking conditions.
Scheduled upgrades only run when agents are idle (no active workloads). If auto-update is disabled for an agent, that agent reports skipped upgrade outcomes instead of self-updating.
Install manifest (with JWT)
Section titled “Install manifest (with JWT)”This section lets you generate a new install manifest at any time — useful for enrolling additional agents or re-installing on a replacement host.
- Enter a Agent client ID (stable per host or pod).
- Click Generate install manifest.
- Copy the rendered snippet and run it on the target host or cluster.
The manifest variant shown depends on the PDC’s deployment mode: docker run for Docker hosts; kubectl apply YAML for Kubernetes.
Outpost agents
Section titled “Outpost agents”The Outpost agents section shows a table of every agent enrolled against this PDC, followed by expanded operation details for each agent.
Agent table columns:
| Column | What it shows |
|---|---|
| Agent | The clientAgentId you provided at install time. A leader badge marks the elected leader in multi-agent PDCs. |
| Lifecycle | Current lifecycle state — see the lifecycle reference below. |
| Runtime | Deployment mode (docker or kubernetes) and count of active workloads. |
| Version | Agent binary version and Outpost image version. |
| Heartbeat | Timestamp of the last heartbeat received from the agent. |
| Actions | Revoke button — removes the agent’s enrolled identity. |
Lifecycle states:
| State | Meaning |
|---|---|
running | Agent is healthy and accepting workloads. |
updating | Agent is in the process of a self-upgrade. |
idle | Agent is connected but has no active workloads. |
dead | No heartbeat received within the expected window — agent is unreachable. |
revoked | The agent’s credentials were manually revoked. It must be re-enrolled to resume. |
pending | Agent has not yet sent its first heartbeat after enrolment. |
Expanded agent details (below the table):
Each agent card shows:
- Last heartbeat and Active workloads counters.
- Current Outpost image and Current image digest — the exact image the agent is running.
- Catalog preload — per-image preload status (pending, pulling, ready, failed) for each workload image cached on the agent.
- Agent upgrade — the current upgrade stage, candidate image, target digest, and any error or skipped reason.
- Kubernetes registry overrides (Kubernetes PDCs only) — any private registry pull-secret overrides configured for workload images.
Revoke an agent
Section titled “Revoke an agent”- In the Outpost agents table, find the agent row.
- Click Revoke. The agent’s identity is invalidated immediately.
- The agent moves to the
revokedlifecycle state. The Outpost process on the host will stop receiving work. To restore the agent, generate a new install manifest and re-run it on the same host.
Lifecycle and health monitoring
Section titled “Lifecycle and health monitoring”Use the PDC detail page to monitor the health of your private runner site on an ongoing basis:
- Heartbeat staleness — if the last heartbeat timestamp is more than a few minutes old, the agent may be unreachable or crashed. Check the host’s Docker or Kubernetes logs.
- Dead agents — a
deadlifecycle badge means the agent missed its heartbeat window. Investigate the host before a scheduled run that targets this location. - Preload failures — a
failedpreload entry means the agent could not pull a workload image. Check the host’s network access to your image registry. - Auto-update disabled — if an agent has
autoUpdateEnabled: false, it will not self-upgrade. Schedule manual upgrades or re-enable the flag if you want automatic patch rollouts.
Select a private datacenter as a run location
Section titled “Select a private datacenter as a run location”Once an agent is in running lifecycle state, the PDC appears as a selectable location in the test configuration. To use it:
- Open Tests in the left nav and open the test you want to run from the private location.
- In the Configuration tab, find the Locations section.
- Select the PDC from the locations list — it appears alongside managed cloud regions.
- Optionally adjust the runner split across locations (e.g. 100% from the PDC, or a mix with a managed region).
- Save and run the test.
Tips & gotchas
Section titled “Tips & gotchas”- BYOC flag required. The Private datacenters nav entry is only visible when the BYOC feature is enabled for your account. Contact your account team if you need to enable it.
- Workspace scope matters. PDCs are workspace-owned. Switch to the correct workspace in the scope switcher before creating or managing sites.
- Install JWT is one-shot. Each click of Generate install manifest issues a new JWT. The previous JWT remains valid until it expires but is not shown again. Copy and use it immediately.
- Agent client IDs must be unique per PDC. Using the same
clientAgentIdon two different hosts in the same PDC causes agent conflicts. Use hostnames or pod names. - Dead agents block scheduled runs. If a PDC’s agents are
dead, tests targeting that location will fail to allocate runners. Restore the agents before scheduling runs. - Revoking an agent does not delete run history. Historical run data for completed runs remains accessible even after an agent is revoked.
Related docs
Section titled “Related docs”- Managed and private load locations — when to use private locations versus managed cloud regions, and how to mix both in a single test.
- Connect a private datacenter — full step-by-step install guide including prerequisites and operating tips.
- Tests — create and configure — how to select a private location when creating or editing a test.
- Runs — read results — interpreting run results from private-location tests.
- Navigating the console — the shell, sidebar, and workspace scope switcher.