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 |
stringThe default server, unless overridden from the command line |
name |
stringName 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 |
booleanWhether 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 |
booleanWhether 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 |
booleanWhether to mount the specified list of network shares |
shares |
MountNetworkShare[]List of network shares to mount |
wineExecutablePath |
stringPath to Wine executable. If null, execution under Wine is disabled |
containerEngineExecutablePath |
stringPath to container engine executable, such as /usr/bin/podman. If null, execution of compute workloads inside a container is disabled |
writeStepOutputToLogger |
booleanWhether to write step output to the logging device |
enableAwsEc2Support |
booleanQueries information about the current agent through the AWS EC2 interface |
useLocalStorageClient |
booleanOption to use a local storage client rather than connecting through the server. Primarily for convenience when debugging / iterating locally. |
computeIp |
stringIncoming IP for listening for compute work. If not set, it will be automatically resolved. |
computePort |
integerIncoming 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 |
booleanWhether to send telemetry back to Horde server |
telemetryReportInterval |
integerHow often to report telemetry events to server in milliseconds |
bundleCacheSize |
integerMaximum size of the bundle cache, in megabytes. |
cpuCount |
integerMaximum 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 |
numberCPU 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 -> stringKey/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 |
stringName of this server profile |
environment |
stringName of the environment (currently just used for tracing) |
url |
stringUrl of the server |
token |
stringBearer token to use to initiate the connection |
useInteractiveAuth |
booleanWhether to authenticate interactively in a desktop environment (for example, when agent is running on a user's workstation) |
thumbprint |
stringThumbprint 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 |
stringThe 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 |
stringWhere the share should be mounted on the local machine. Must be a drive letter for Windows. |
remotePath |
stringPath to the remote resource |
OpenTelemetrySettings
OpenTelemetry configuration for collection and sending of traces and metrics.
| Name | Description |
|---|---|
enabled |
booleanWhether OpenTelemetry exporting is enabled |
serviceName |
stringService name |
serviceNamespace |
stringService namespace |
serviceVersion |
stringService version |
enableDatadogCompatibility |
booleanWhether to enrich and format telemetry to fit presentation in Datadog |
attributes |
string -> stringExtra attributes to set |
enableConsoleExporter |
booleanWhether 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 |
stringEndpoint URL. Usually differs depending on protocol used. |
protocol |
stringProtocol for the exporter ('grpc' or 'httpprotobuf') |