7.0 KiB
7.0 KiB
Horde > Deployment > Agent > Agent.json (Agent)
Agent.json (Agent)
All Horde-specific settings are stored in a root object called Horde
. Other .NET functionality may be configured using properties in the root of this file.
Name | Description |
---|---|
serverProfiles |
string -> ServerProfileKnown servers to connect to |
server |
string The default server, unless overridden from the command line |
name |
string Name of agent to report as when connecting to server. By default, the computer's hostname will be used. |
mode |
AgentMode Mode of operation for the agent - For trusted agents in controlled environments (e.g., build farms). These agents handle all lease types and run exclusively Horde workloads. - For low-trust workstations, uses interactive authentication (human logs in). These agents yield to non-Horde workloads and only support compute leases for remote execution. |
installed |
boolean Whether the server is running in 'installed' mode. In this mode, on Windows, the default data directory will use the common application data folder (C:\ProgramData\Epic\Horde), and configuration data will be read from here and the registry. This setting is overridden to false for local builds from appsettings.Local.json. |
ephemeral |
boolean Whether agent should register as being ephemeral. Doing so will not persist any long-lived data on the server and once disconnected it's assumed to have been deleted permanently. Ideal for short-lived agents, such as spot instances on AWS EC2. |
workingDir |
DirectoryReference Working directory for leases and jobs (i.e where files from Perforce will be checked out) |
logsDir |
DirectoryReference Directory where agent and lease logs are written |
shareMountingEnabled |
boolean Whether to mount the specified list of network shares |
shares |
MountNetworkShare[] List of network shares to mount |
wineExecutablePath |
string Path to Wine executable. If null, execution under Wine is disabled |
containerEngineExecutablePath |
string Path to container engine executable, such as /usr/bin/podman. If null, execution of compute workloads inside a container is disabled |
writeStepOutputToLogger |
boolean Whether to write step output to the logging device |
enableAwsEc2Support |
boolean Queries information about the current agent through the AWS EC2 interface |
useLocalStorageClient |
boolean Option to use a local storage client rather than connecting through the server. Primarily for convenience when debugging / iterating locally. |
computeIp |
string Incoming IP for listening for compute work. If not set, it will be automatically resolved. |
computePort |
integer Incoming port for listening for compute work. Needs to be tied with a lease. Set port to 0 to disable incoming compute requests. |
openTelemetry |
OpenTelemetrySettings Options for OpenTelemetry |
enableTelemetry |
boolean Whether to send telemetry back to Horde server |
telemetryReportInterval |
integer How often to report telemetry events to server in milliseconds |
bundleCacheSize |
integer Maximum size of the bundle cache, in megabytes. |
cpuCount |
integer Maximum number of logical CPU cores workloads should use Currently this is only provided as a hint and requires leases to respect this value as it's set via an env variable (UE_HORDE_CPU_COUNT). |
cpuMultiplier |
number CPU core multiplier applied to CPU core count setting For example, 32 CPU cores and a multiplier of 0.5 results in max 16 CPU usage. |
properties |
string -> string Key/value properties in addition to those set internally by the agent |
adminEndpoints |
string[] Listen addresses for the built-in HTTP admin/management server. Disabled when empty. If activated, it's recommended to bind only to localhost for security reasons. Example: localhost:7008 to listen on localhost, port 7008 |
healthCheckEndpoints |
string[] Listen addresses for the built-in HTTP health check server. Disabled when empty. If activated, it's recommended to bind only to localhost for security reasons. Example: *:7009 to listen on all interfaces/IPs, port 7009 If all interfaces are bound with *, make sure to run process as administrator. |
ServerProfile
Information about a server to use
Name | Description |
---|---|
name |
string Name of this server profile |
environment |
string Name of the environment (currently just used for tracing) |
url |
string Url of the server |
token |
string Bearer token to use to initiate the connection |
useInteractiveAuth |
boolean Whether to authenticate interactively in a desktop environment (for example, when agent is running on a user's workstation) |
thumbprint |
string Thumbprint of a certificate to trust. Allows using self-signed certs for the server. |
thumbprints |
string[] Thumbprints of certificates to trust. Allows using self-signed certs for the server. |
AgentMode (Enum)
Defines the operation mode of the agent Duplicated to prevent depending on Protobuf structures (weak name reference when deserializing JSON)
Name | Description |
---|---|
Dedicated |
|
Workstation |
DirectoryReference
Representation of an absolute directory path. Allows fast hashing and comparisons.
Name | Description |
---|---|
parentDirectory |
DirectoryReference Gets the directory containing this object |
fullName |
string The path to this object. Stored as an absolute path, with O/S preferred separator characters, and no trailing slash for directories. |
MountNetworkShare
Describes a network share to mount
Name | Description |
---|---|
mountPoint |
string Where the share should be mounted on the local machine. Must be a drive letter for Windows. |
remotePath |
string Path to the remote resource |
OpenTelemetrySettings
OpenTelemetry configuration for collection and sending of traces and metrics.
Name | Description |
---|---|
enabled |
boolean Whether OpenTelemetry exporting is enabled |
serviceName |
string Service name |
serviceNamespace |
string Service namespace |
serviceVersion |
string Service version |
enableDatadogCompatibility |
boolean Whether to enrich and format telemetry to fit presentation in Datadog |
attributes |
string -> string Extra attributes to set |
enableConsoleExporter |
boolean Whether to enable the console exporter (for debugging purposes) |
protocolExporters |
string -> OpenTelemetryProtocolExporterSettingsProtocol exporters (key is a unique and arbitrary name) |
OpenTelemetryProtocolExporterSettings
Configuration for an OpenTelemetry exporter
Name | Description |
---|---|
endpoint |
string Endpoint URL. Usually differs depending on protocol used. |
protocol |
string Protocol for the exporter ('grpc' or 'httpprotobuf') |