12 KiB
Horde > Configuration > *.project.json
*.project.json
Stores configuration for a project
| Name | Description |
|---|---|
id |
stringThe project id |
name |
stringName for the new project |
path |
stringDirect include path for the project config. For backwards compatibility with old config files when including from a GlobalConfig object. |
include |
ConfigInclude[]Includes for other configuration files |
macros |
ConfigMacro[]Macros within the global scope |
order |
integerOrder of this project on the dashboard |
logo |
stringPath to the project logo |
logoDarkTheme |
stringOptional path to the project logo for the dark theme |
pools |
PoolConfig[]List of pools for this project |
categories |
ProjectCategoryConfig[]Categories to include in this project |
jobOptions |
JobOptions Default settings for executing jobs |
workspaceTypes |
string -> WorkspaceConfigDefault workspace types for streams These are added to the list of each stream's workspace types. |
telemetryStoreId |
stringTelemetry store for Horde data for this project |
streams |
StreamConfig[]List of streams |
artifactTypes |
ArtifactTypeConfig[]Permissions for artifact types |
acl |
AclConfig Acl entries |
ConfigInclude
Directive to merge config data from another source
| Name | Description |
|---|---|
path |
stringPath to the config data to be included. May be relative to the including file's location. |
ConfigMacro
Declares a config macro
| Name | Description |
|---|---|
name |
stringName of the macro property |
value |
stringValue for the macro property |
PoolConfig
Mutable configuration for a pool
| Name | Description |
|---|---|
id |
stringUnique id for this pool |
base |
stringBase pool config to copy settings from |
name |
stringName of the pool |
condition |
stringCondition for agents to automatically be included in this pool |
properties |
string -> stringArbitrary properties related to this pool |
color |
PoolColor Color to use for this pool on the dashboard |
enableAutoscaling |
booleanWhether to enable autoscaling for this pool |
minAgents |
integerThe minimum number of agents to keep in the pool |
numReserveAgents |
integerThe minimum number of idle agents to hold in reserve |
conformInterval |
stringInterval between conforms. If zero, the pool will not conform on a schedule. |
scaleOutCooldown |
stringCooldown time between scale-out events |
scaleInCooldown |
stringCooldown time between scale-in events |
shutdownIfDisabledGracePeriod |
stringTime to wait before shutting down an agent that has been disabled |
sizeStrategy |
PoolSizeStrategy |
sizeStrategies |
PoolSizeStrategyInfo[]List of pool sizing strategies for this pool. The first strategy with a matching condition will be picked. |
fleetManagers |
FleetManagerInfo[]List of fleet managers for this pool. The first strategy with a matching condition will be picked. If empty or no conditions match, a default fleet manager will be used. |
leaseUtilizationSettings |
LeaseUtilizationSettings Settings for lease utilization pool sizing strategy (if used) |
jobQueueSettings |
JobQueueSettings Settings for job queue pool sizing strategy (if used) |
computeQueueAwsMetricSettings |
ComputeQueueAwsMetricSettings Settings for job queue pool sizing strategy (if used) |
PoolColor (Enum)
Color to use for labels of this pool
| Name | Description |
|---|---|
Default |
|
Blue |
|
Orange |
|
Green |
|
Gray |
PoolSizeStrategy (Enum)
Available pool sizing strategies
| Name | Description |
|---|---|
LeaseUtilization |
Strategy based on lease utilization |
JobQueue |
Strategy based on size of job build queue |
NoOp |
No-op strategy used as fallback/default behavior |
ComputeQueueAwsMetric |
A no-op strategy that reports metrics to let an external AWS auto-scaling policy scale the fleet |
LeaseUtilizationAwsMetric |
A no-op strategy that reports metrics to let an external AWS auto-scaling policy scale the fleet |
PoolSizeStrategyInfo
Metadata for configuring and picking a pool sizing strategy
| Name | Description |
|---|---|
type |
PoolSizeStrategy Strategy implementation to use |
condition |
stringCondition if this strategy should be enabled (right now, using date/time as a distinguishing factor) |
config |
objectConfiguration for the strategy, serialized as JSON |
extraAgentCount |
integerInteger to add after pool size has been calculated. Can also be negative. |
FleetManagerInfo
Metadata for configuring and picking a fleet manager
| Name | Description |
|---|---|
type |
FleetManagerType Fleet manager type implementation to use |
condition |
stringCondition if this strategy should be enabled (right now, using date/time as a distinguishing factor) |
config |
objectConfiguration for the strategy, serialized as JSON |
FleetManagerType (Enum)
Available fleet managers
| Name | Description |
|---|---|
Default |
Default fleet manager |
NoOp |
No-op fleet manager. |
Aws |
Fleet manager for handling AWS EC2 instances. Will create and/or terminate instances from scratch. |
AwsReuse |
Fleet manager for handling AWS EC2 instances. Will start already existing but stopped instances to reuse existing EBS disks. |
AwsRecycle |
Fleet manager for handling AWS EC2 instances. Will start already existing but stopped instances to reuse existing EBS disks. |
AwsAsg |
Fleet manager for handling AWS EC2 instances. Uses an EC2 auto-scaling group for controlling the number of running instances. |
LeaseUtilizationSettings
Lease utilization sizing settings for a pool
| Name | Description |
|---|---|
sampleTimeSec |
integerTime period for each sample |
numSamples |
integerNumber of samples to collect for calculating lease utilization |
numSamplesForResult |
integerMin number of samples for a valid result |
minAgents |
integerThe minimum number of agents to keep in the pool |
numReserveAgents |
integerThe minimum number of idle agents to hold in reserve |
JobQueueSettings
Job queue sizing settings for a pool
| Name | Description |
|---|---|
scaleOutFactor |
numberFactor translating queue size to additional agents to grow the pool with The result is always rounded up to nearest integer. Example: if there are 20 jobs in queue, a factor 0.25 will result in 5 new agents being added (20 * 0.25) |
scaleInFactor |
numberFactor by which to shrink the pool size with when queue is empty The result is always rounded up to nearest integer. Example: when the queue size is zero, a default value of 0.9 will shrink the pool by 10% (current agent count * 0.9) |
samplePeriodMin |
integerHow far back in time to look for job batches (that potentially are in the queue) |
readyTimeThresholdSec |
integerTime spent in ready state before considered truly waiting for an agent A job batch can be in ready state before getting picked up and executed. This threshold will help ensure only batches that have been waiting longer than this value will be considered. |
ComputeQueueAwsMetricSettings
Settings for
| Name | Description |
|---|---|
computeClusterId |
stringCompute cluster ID to observe |
namespace |
stringAWS CloudWatch namespace to write metrics in |
ProjectCategoryConfig
Information about a category to display for a stream
| Name | Description |
|---|---|
name |
stringName of this category |
row |
integerIndex of the row to display this category on |
showOnNavMenu |
booleanWhether to show this category on the nav menu |
includePatterns |
string[]Patterns for stream names to include |
excludePatterns |
string[]Patterns for stream names to exclude |
JobOptions
Options for executing a job
| Name | Description |
|---|---|
executor |
stringName of the executor to use |
useWine |
booleanWhether to execute using Wine emulation on Linux |
runInSeparateProcess |
booleanExecutes the job lease in a separate process |
workspaceMaterializer |
stringWhat workspace materializer to use in WorkspaceExecutor. Will override any value from workspace config. |
container |
JobContainerOptions Options for executing a job inside a container |
expireAfterDays |
integerNumber of days after which to expire jobs |
driver |
stringName of the driver to use |
JobContainerOptions
Options for executing a job inside a container
| Name | Description |
|---|---|
enabled |
booleanWhether to execute job inside a container |
imageUrl |
stringImage URL to container, such as "quay.io/podman/hello" |
containerEngineExecutable |
stringContainer engine executable (docker or with full path like /usr/bin/podman) |
extraArguments |
stringAdditional arguments to pass to container engine |
WorkspaceConfig
Information about a workspace type
| Name | Description |
|---|---|
base |
string |
cluster |
stringName of the Perforce server cluster to use |
serverAndPort |
stringThe Perforce server and port (eg. perforce:1666) |
userName |
stringUser to log into Perforce with (defaults to buildmachine) |
password |
stringPassword to use to log into the workspace |
identifier |
stringIdentifier to distinguish this workspace from other workspaces. Defaults to the workspace type name. |
stream |
stringOverride for the stream to sync |
view |
string[]Custom view for the workspace |
incremental |
booleanWhether to use an incrementally synced workspace |
useAutoSdk |
booleanWhether to use the AutoSDK |
autoSdkView |
string[]View for the AutoSDK paths to sync. If null, the whole thing will be synced. |
method |
stringMethod to use when syncing/materializing data from Perforce |
minScratchSpace |
integerMinimum disk space that must be available after syncing this workspace (in megabytes) If not available, the job will be aborted. |
conformDiskFreeSpace |
integerThreshold for when to trigger an automatic conform of agent. Measured in megabytes free on disk. Set to null or 0 to disable. |
ArtifactTypeConfig
Configuration for an artifact
| Name | Description |
|---|---|
name |
stringLegacy 'Name' property |
type |
stringName of the artifact type |
acl |
AclConfig Acl for the artifact type |
keepCount |
integerNumber of artifacts to retain |
keepDays |
integerNumber of days to retain artifacts of this type |
namespaceId |
stringStorage namespace to use for this artifact types |
AclConfig
Parameters to update an ACL
| Name | Description |
|---|---|
entries |
AclEntryConfig[]Entries to replace the existing ACL |
profiles |
AclProfileConfig[]Defines profiles which allow grouping sets of actions into named collections |
inherit |
booleanWhether to inherit permissions from the parent ACL |
exceptions |
string[]List of exceptions to the inherited setting |
AclEntryConfig
Individual entry in an ACL
| Name | Description |
|---|---|
claim |
AclClaimConfig Name of the user or group |
actions |
string[]Array of actions to allow |
profiles |
string[]List of profiles to grant |
AclClaimConfig
New claim to create
| Name | Description |
|---|---|
type |
stringThe claim type |
value |
stringThe claim value |
AclProfileConfig
Configuration for an ACL profile. This defines a preset group of actions which can be given to a user via an ACL entry.
| Name | Description |
|---|---|
id |
stringIdentifier for this profile |
actions |
string[]Actions to include |
excludeActions |
string[]Actions to exclude from the inherited actions |
extends |
string[]Other profiles to extend from |