GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
OVERLORD-SPEC(5) FreeBSD File Formats Manual OVERLORD-SPEC(5)

overlord-specOverlord specification for configuration files

Path to a file containing the server identifier. Give all responsability to Overlord for generating this identifier, or in other words, do not manually change the contents of the file.

Specify the source port Overlord's API server should use.

Configure the API server to listen on an alternate port for encrypted connections.

Private key filename.

Certificate filename.

Alternate port for listening to encrypted connections.

Shorthand for several debug mode settings.

See also Application configuration

If True, responses in textual formats will be compressed automatically.

See also Application configuration

Polling configuration.

How long to sleep after re-collecting rctl(4) statistics.

How much time to sleep after collecting information from the jails again.

How long to sleep afterwards to get the project list back.

How long to sleep afterwards to get the jail list back.

How much time to sleep after collecting additional information from the jails again.

How much time to sleep after collecting information from the projects again.

How much time to sleep after scaling the projects.

How much time to sleep after checking the status of each chain.

If this parameter is not set, will not be executed.

After repeating the polling operation, a random number will be added to the previous numbers. The random number will be generated using the range specified in this parameter.

Keywords to use to get information.

See the KEYWORDS section in appjail-limits(1) for details.

See the KEYWORDS section in appjail-jail(1) for details.

See the KEYWORDS section in appjail-devfs(1) for details.

See the KEYWORDS section in appjail-expose(1) for details.

See the KEYWORDS section in appjail-healthcheck(1) for details.

See the KEYWORDS section in appjail-label(1) for details.

See the KEYWORDS section in appjail-limits(1) for details.

See the KEYWORDS section in appjail-nat(1) for details.

See the KEYWORDS section in appjail-volume(1) for details.

See the KEYWORDS section in appjail-fstab(1) for details.

Configuration for the memcache client.

See also pymemcache.client.hash module

An array of addresses pointing to memcache servers.

maximum pool size to use.

See also pymemcache.client.base.PooledClient

pooled connections are discarded if they have been unused for this many seconds. A value of 0 indicates that pooled connections are never discarded.

See also pymemcache.client.base.PooledClient

Amount of times a client should be tried before it is marked dead and removed from the pool.

See also pymemcache.client.hash module

Time in seconds that should pass between retry attempts.

Use 0 to use the default timeout, or -1 to disable it.

See also pymemcache.client.hash module

Time in seconds before attempting to add a node back in the pool.

Use 0 to use the default timeout, or -1 to disable it.

See also pymemcache.client.hash module

Seconds to wait for a connection to the memcached server.

Use 0 to use the default timeout, or -1 to disable it.

See also pymemcache.client.base.Client

Seconds to wait for send or recv calls on the socket connected to memcached.

See also pymemcache.client.base.Client

Set the flag, which may help with performance in some cases.

See also pymemcache.client.base.Client

Secret key for signing the JWT.

If this parameter is set, secret_keyfile will have no effect.

Like secret_key, but with some differences. First, this parameter points to a path where the secret key is stored, and second, the secret key is randomly generated. By default, since the secret_key parameter is not set, a random secret key is generated which is more secure than using a default (and insecure) secret key.

Logging configuration.

See also logging.conf.dictConfig

Chain configuration.

chain.entrypoint
URL to connect to.

chain.access_token
Access token.

chain
Disable this chain. Useful for when the chain is temporarily unresponsive.

chain.timeout
Timeout for all operations.

See also Timeouts

chain.read_timeout
Specified the maximum duration to wait for a chunk of data to be received (for example, a chunk of the response body). If HTTPX is unable to receive data within this time frame), a exception is raised.

See also Timeouts

chain.write_timeout
Specifies the maximum duration to wait for a chunk of data to be sent (for example, a chunk of the request body). If HTTPX is unable to send data within this time frame, a exception is raised.

See also Timeouts

chain.connect_timeout
Specifies the maximum amount of time to wait until a socket connection to the requested host is established. If HTTPX is unable to connect within this time frame, a exception is raised.

See also Timeouts

chain.pool_timeout
Specifies the maximum duration to wait for acquiring a connection from the connection pool. If HTTPX is unable to acquire a connection within this time frame, a PoolTimeout exception is raised. A related configuration here is the maximum number of allowable connections in the connection pool, which is configured by the limits argument.

See also Timeouts

chain.max_keepalive_connections
Number of allowable keep-alive connections.

See also Resource Limits

chain.max_connections
Maximum number of allowable connections.

Resource Limits

chain.keepalive_expiry
Time limit on idle keep-alive connections in seconds.

Resource Limits

chain
Certificate to verify the server when connecting to it.

chain
Retry policy.

chain
The maximum number of times to retry a request before giving up.

chain
The maximum time in seconds to wait between retries.

chain
The factor by which the wait time increases with each retry attempt.

chain
Whether to respect the Retry-After header in HTTP responses when deciding how long to wait before retrying.

chain
The amount of jitter to add to the backoff time, between 0 and 1.

List of labels for the API server.

Director configuration.

Path to the logs directory created by Director.

AppJail configuration.

Path to the logs directory created by AppJail.

Location of AppJail images.

Location of jails.

Where to store components used in some operations such as creating virtual machines.

Beanstalkd address to connect to. Use the prefix to connect to a UNIX socket. If the port is not specified, will be used.

Maximum time to execute a command or to not set a timeout.

Data Plane API settings to configure HAProxy.

Data Plane API authentication parameters.

Data Plane API username.

Data Plane API password.

 
 
 
 
 
 
 
 
 
See chains.chain.* for details.

/coredns-etcd(7) plugin.

The path inside etcd.

Authoritative zone.

Configuration to connect to etcd instances.

host
Port to connect to the etcd instance.

host
Protocol (or scheme).

host
Local cert to use as client side certificate.

host
Private key.

host.timeout
Number of seconds to wait for the client to establish a connection to the etcd instance and to wait for the server to send a response.

host
The part that specifies the API version of etcd. Do not specify any if you want to leave the responsability of discovering the API version to the library.

Maximum number of jobs to wait in parallel to create or destroy projects, which must be greater than or equal to 1. By default, the number of available CPUs is used.

Like max_watch_projects but for virtual machines.

Metadata configuration parameters.

Path to a directory to store the metadata. If the specified directory doesn't exist, it will be created when writing any metadata.

Size of each metadata. If a user tries to create a metadata with a size greater than or equal to this parameter, an error occurs. By default this parameter is set to 1 MiB.

Smart Timeouts is an Overlord feature that disables a chain that fails until it comes back online.

Technically, this does not disable the chain, but the chain does not appear in the API server's list of chains, so a client will only see (with a probability) chains that are known to work (until they don't), ensuring more stability than showing the client an unnecessary failure (and also reducing performance due to constant timeouts).

Enable or disable Smart Timeouts.

Maximum total number of failures to tolerate.

If the maximum total number of failures is greater than this number, the interval is checked.

The length of time a chain remains disabled.

This number affects the interval. When a comparison is made with the interval and the last failure time, this number is added to the interval, thus increasing the time a chain is disabled. The number adds to itself for each failure.

Maximum number for autodisable.increase.

Avoid connecting to backlisted chains.

Maximum number of logs to be kept in memory.

Keep the logs in memcached for the specified seconds.

What kind of deployment is this file.

Valid choices are directorProject, metadata and vmJail.

Servers to perform HTTP requests.

datacenter.entrypoint
 
datacenter.access_token
 
datacenter.timeout
 
datacenter.read_timeout
 
datacenter.write_timeout
 
datacenter.connect_timeout
 
datacenter.pool_timeout
 
datacenter.max_keepalive_connections
 
datacenter.max_connections
 
datacenter.keepalive_expiry
See chains.chain.* in CONFIGURATION for details.

Specify where to deploy.

List of entry points to connect to that may have the chain with a syntax such as datacenter

By default, when no entry point is specified, data centers will be used as the entry points.

Deploy to servers with these labels. When no labels are specified, the label is used.

Exclude servers matching the specified labels.

The maximum number of times to deploy a project.

Metadata allows simple text files to be created in the corresponding Overlord instances. Metadata is integrated with other Overlord parameters or subsystems, so it can be reused for multiple things.

A dictionary specifiying the metadata to be stored.

Director is used for the creation of a project, a simple text file in YAML format that deploys one or more services (aka jails) on a single system.

Project name.

Content of the project.

Like projectFile but it obtains the content of the project from a metadata.

A dictionary with each key-value environment. Both the key and the value must be a string.

Like environment but obtains a dictionary from a metadata in YAML format.

Each key must be a datacenter and its value a dictionary such as environment specifying the environment to use depending on the datacenter.

This parameter overrides any other environment-like option.

Each key must be a chain and its value a dictionary such as environment specifying the environment to use depending on the chain.

This parameter overrides any other environment-like option except datacentersEnvironment.

A special key can be used when a request is to be made to a datacenter but without specifiying a chain.

Each key must be a label and its value a dictionary such as environment specifying the environment to use depending on whether the datacenter and its chain have a label that matches a key.

This parameter overrides any other environment-like option except datacentersEnvironment and chainsEnvironment.

When at least one option of this parameter is set, a metadata named overlord.autoscale.project is created instead of simply deploying the project to the matching nodes. It is assumed that the remote Overlord instance will read the metadata to deploy and autoscale the project depending on how many chains it has.

The counterpart to destroying a project is to create another metadata named project. This is an indication to the Overlord instance not to deploy any more projects and to destroy the ones that are currently deployed.

If the overlord.autoscale.project metadata have at least one change, the project is redeployed to the nodes that have the project.

Configuration parameters used to replicate the project.

The minimum number of replicas this project will have. It depends on the number of matching and working chains.

When scaling the project due to rctl(8) rules, this limits the number of deployments. By default, the number of matched and working chains calculated at runtime is used.

When at least one rctl(8) rule is specified to scale the project based on the jail metrics, this indicates how the metric should be evaluated.
Fails if any of the jails have a metric greater than or equal to the specified limit.
Fails if the metric total for all jails in the same project is greater than or equal to the specified limit.
Calculates the average of the metric for all jails in the same project and fails if it is greater than or equal to the specified limit.
Calculates the percentage of the specified limit and fails if it is greater than or equal to the current metric. For example, if you define a rule as “vmemoryuse=512m” and a percentage of , the value will be 307 (rounded), so this test fails if the current metric is greater than or equal to 307.
Like percent-jail, but first get the metric total for all jails in the same project

If the type requires a value such as percent-jail or percent-project, this parameter must be used.

A dictionary specifying the rctl(8) rules. Each key-value must specify the rule and the limit, and if that limit is reached, more instances of the project will be created.

Like autoScale.rules but the comparison is as simple as comparing the current server stats with the rules provided by this parameter.

This by itself does not solve the noisy neighbor problem (limiting resource usage could solve this problem), but it can be useful for when you want to improve the latency response, so Overlord will throw away the project on an available chain.

See deployIn.labels for details.

This deployment is only useful for use with the command and can't be used with or .

Gets a Mako template from a metadata and substitutes variables, generating a new deployment file that can only be a directorProject or vmJail deployment. The resulting deployment file is temporary and is created each time the appConfig deployment is applied. Once the deployment file is created from the Mako template, it is applied.

Even if you have deployed the metadata in many chains, only the first match in an appConfig deployment is used.

See also Mako syntax

Application name.

The variable is automatically set and must be used in the Mako template, however this is not enforced in any way.

Metadata to obtain the Mako template.

In addition to the parameters required for the specified deployment type, you must include at least the kind parameter. datacenters, deployIn and maximumDeployments parameters are set by Overlord when processing the appConfig deployment.

A dictionary where each key represents the variable to be substituted when processing the Mako template.

Deploy a new project that will create a new jail to then create a virtual machine. This kind of deployment integrates well with Overlord because the information it gets comes from the project and the jail.

A virtual disk is created and partitioned. This deployment file specifies the files to be installed on the root partition that must correspond to the FreeBSD installation. Once this process is complete, a new virtual machine will be up and running.

The name of the project, the jail and the virtual machine.
The Makejail to create the environment. This Makejail must install at least vm-bhyve(8) (stable or devel) for this kind of deployment to work properly. Apart from installing vm-bhyve(8) you must specify the network options of the jail, such as using Virtual Networks, configure the bridge, create the switch, and unhide the devices for bhyve(4) to work correctly.
Like makejail but it obtains the content of the Makejail from a metadata.
A dictionary where each key-value will be written as a vm-bhyve(8) template. The parameters disk0_type, disk0_name, disk0_dev and disk0_size will be written by Overlord when creating the template.

disk0_type is whatever is specified in diskLayout.driver, disk0_name is , disk0_dev is and disk0_size is whatever is specified in diskLayout.size.

Configuration parameters for the virtual disk.
The emulation type for the virtual disk.

Only and are supported.

Size of the virtual disk.
Configuration parameters to determine how FreeBSD will be installed.
How to install FreeBSD. Depending on this parameter, some parameters may or may not be valid.

Only appjailImage, components and iso are supported.

The name of the ISO file containing the operating system to install. Due to the nature of Overlord, which deploys jails and VMs not necessarily on your local machine, you must use configure the VM template for use with VNC.

See also UEFI Graphics (VNC)

This parameter is only valid for the iso type.

A boolean to indicate whether the VM can be enabled and started for persistent use. Or in other words, after installing the operating system, you must modify your deployment file and include this parameter set to .

This parameter is only valid for the iso type.

A list of components to download and extract into the VM root partition.

This parameter is only valid for the components type.

FreeBSD version.

This parameter is only valid for the components type.

FreeBSD architecture.

This parameter is only valid for the components type.

URL of the web site where the components will be downloaded. The special strings and will be replaced by the values specified in the and parameters.

This parameter is only valid for the components type.

Where and how to obtain the appjail-ajspec(5) file to then obtain the image to be extracted to the VM root partition.

This parameter is only valid for the appjailImage type.

Image name that does not necessarily correspond to the one specified in the appjail-ajspec(5) file, although it is recommended to use the same value as the one specified in the parameter of that file.

This parameter is only valid for the appjailImage type.

Obtain and use the image that matches this architecture.

This parameter is only valid for the appjailImage type.

Obtain and use the image that matches this tag.

This parameter is only valid for the appjailImage type.

Configuration parameters of virtual disk partitions, scheme and boot code.
Specify the partitioning scheme to use.
A list of dictionaries specifying the configuration parameters of the virtual disk partition.
partition.type
Create a partition of type type.
partition
If specified, then Overlord tries to align start offset and partition size to be multiple of alignment value.
partition
The logical block address where the partition will begin.
partition
Create a partition of size size.
partition
The label attached to the partition. This option is only valid when used on partitioning schemes that support partition labels.
partition
Configuration parameters for formatting the root partition.

If this parameter is set, the root partition is not only formatted, but also mounted and FreeBSD files are installed on it. You can specify this parameter multiple times, but only the first one will be mounted, although all partitions with this parameter will be formatted.

partition
newfs(8) flags.
Embed bootstrap code into the partitioning scheme's metadata on the root partition or write bootstrap code into a partition.
Embed bootstrap code from the file bootcode into the partitioning scheme's metadata.
Write the bootstrap code from the file partcode into the root partition specified by diskLayout.disk.bootcode.index.
Specify the target partition for diskLayout.disk.bootcode.partcode.
Specifies the entries to create an fstab(5) file on the root partition.
entry
Special device or remote file system to be mounted.
entry
Mount point for the file system.
entry.type
Type of file system.
entry
Mount options associated with the file system.
entry
Used for these file systems by the dump(8) command to determine which file systems need to be dumped.
entry
Used by the fsck(8) and quotacheck(8) programs to determine the order in which file system and quota checks are done at reboot time.
A sh(1) script intended to further customize the virtual machine. The VM root partition is mounted on /mnt but inside the jail, however, the script runs in the jail directory not /mnt.
A list of metadata to be copied to the directory inside the jail. The metadata must be previously deployed or it is simply ignored.
Array of dictionaries where each dictionary (key and value) represents the option used by appjail-quick(1).

Keys are mandatory, but values are optional.

Array of dictionaries where each dictionary (key and value) represents the environment used by the script.

Environment variables are not loaded automatically, they must be loaded from the /metadata/environment file which is always created even if this parameter is not specified.

Array of dictionaries where each dictionary (key and value) represents the environment used by the start stage.
Array of dictionaries where each dictionary (key and value) represents the arguments used by the start stage.
Array of dictionaries where each dictionary (key and value) represents the environment used by the build stage.
Array of dictionaries where each dictionary (key and value) represents the arguments used by the build stage.

overlord(1)

Jesús Daniel Colmenares Oviedo <DtxdF@disroot.org>

January 13, 2025 FreeBSD 14.3-RELEASE

Search for    or go to Top of page |  Section 5 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.