AMS configuration

The Anbox Management Service (AMS) provides various configuration items to customize its behavior. The following table lists the available configuration items and their meaning.

Name
(Type, Default)

Description

agent.api.fingerprint
(string, N/A)

Fingerprint of the certificate in the AMS trust store that is trusted for communicating with the Stream Agent.

agent.api.token
(string, N/A)

Token used for API authentication with Stream Agent.

agent.api.url
(string, N/A)

URL for Stream Agent’s API endpoint.

application.addons
(string, N/A)

Comma-separated list of addons that every application managed by AMS uses. See Enable an addon globally.

application.auto_publish
(boolean, True)

If set to true, AMS automatically publishes new application versions when the bootstrap process is complete. See Publish application versions.

application.auto_update
(boolean, True)

If set to true, AMS automatically updates applications whenever any dependencies (parent image, addons, global configuration) change. See Configure automatic updates.

application.default_abi
(string, N/A)

Default Android ABI that applications should use. See Android ABIs for a list of available ABIs.

application.max_published_versions
(integer, 3)

Maximum number of published versions allowed for application. If the number of application versions exceeds this configuration, AMS automatically cleans up older versions.

container.apt_mirror
(string, N/A)
(Deprecated in 1.20)

(Deprecated) APT mirror to use within the containers. Use instance.apt_mirror instead.

container.default_platform
(string, null)
(Deprecated in 1.20)

(Deprecated) The name of the platform that Anbox Cloud uses by default to launch containers. Use instance.default_platform instead.

container.features
(string, N/A)
(Deprecated in 1.20)

(Deprecated) Comma-separated list of features to enable. Use instance.features instead.

container.security_updates
(boolean, True)
(Deprecated in 1.20)

(Deprecated) If set to true, automatic Ubuntu security updates are applied during the application bootstrap process. Use instance.security_updates instead.

core.debug_address
(string, N/A)

The address used to serve debugging information.

core.https_address
(string, N/A)

(read only) The address on which AMS listens.

core.max_requests_per_second
(int32, 1000)

Maximum number of requests allowed on the HTTPS endpoint.

core.proxy_http
(string, N/A)

HTTP proxy for HTTP requests performed by AMS.

core.proxy_https
(string, N/A)

HTTPS proxy for HTTPS requests performed by AMS.

core.proxy_ignore_hosts
(string, N/A)

Comma-separated list of hosts that bypass the configured proxy.

core.trust_password
(string, N/A)

Trust password used to add remote clients. AMS does not expose the actual password but only whether it is set.

cpu.limit_mode
(string, scheduler)

The mode AMS uses to limit CPU access for an instance. Possible values are: scheduler, pinning. See Performance.

gpu.type
(string, none)

Type of GPU. Possible values are: none, intel, nvidia, amd.

images.allow_insecure
(boolean, N/A)

If set to true, AMS allows accepting untrusted certificates provided by the configured image server.

images.auth
(string, N/A)

Authentication details for AMS to access the image server. To avoid exposing credentials, a boolean value indicating if the item is set is returned.

images.update_interval
(string, 5m)

Frequency of image updates (for example: 1h, 30m).

images.url
(string, https://images.anbox-cloud.io/stable/)

URL of the image server.

images.version_lockstep
(boolean, True)

If set to true, enables version lockstep between AMS and the last downloaded image. This ensures that a deployment is not automatically updated to newer image versions if AMS is still at an earlier version. This only applies for new major and minor version upgrades but not for patch release updates.

instance.apt_mirror
(string, N/A)

APT mirror to be used inside instances.

instance.default_platform
(string, null)

The platform that Anbox Cloud uses by default to launch instances.

instance.features
(string, N/A)

Comma-separated list of features to enable.

instance.network_proxy
(string, N/A)

The network proxy to be used inside instances. This value must be provided in the format <hostname>:<port>.

instance.security_updates
(boolean, True)

If set to true, automatic Ubuntu security updates are applied during the application bootstrap process. false disables this.

load_balancer.url
(string, N/A)

URL of the load balancer in front of AMS. This URL is provided to instances started by AMS to allow them to communicate with AMS via the load balancer instead of direct communication with an individual AMS instance.

node.queue_size
(integer, 100)

Maximum size of the queue containing requests to start and stop instances per LXD node. Changing this value requires a restart of AMS.

node.workers_per_queue
(integer, 4)

Number of workers processing instance start and stop requests. Changing this value requires a restart of AMS.

registry.filter
(string, N/A)

Comma-separated list of tags to filter for when applications are fetched from AAR. If empty, no filter is applied. See Anbox Application Registry.

registry.fingerprint
(string, N/A)

Fingerprint of the certificate that the AAR uses to TLS-secure its HTTPS endpoint. This is used by AMS for mutual TLS authentication with the registry. See Anbox Application Registry.

registry.mode
(string, pull)

Mode in which the AAR client in AMS operates: manual, pull, push. See Anbox Application Registry.

registry.update_interval
(string, 1h)

Frequency of AAR updates (for example: 1h, 30m). See Anbox Application Registry.

registry.url
(string, N/A)

URL of the AAR. See Anbox Application Registry.

scheduler.strategy
(string, spread)

Strategy that the internal instance scheduler in AMS uses to distribute instances across available LXD nodes: binpack, spread.
Choose a scheduling strategy that best suits your needs:
- spread provides a distributed workload, picking the node with the most free resources.
- binpack is useful when you are working with a small cluster as it picks the node that is most used until it is out of capacity before moving on to the next node.

Node-specific configuration

In a cluster setup, there are configuration items that can be customized for each node. The following table lists the available configuration items and their meaning.

Name
(Type, Default)

Description

cpu-allocation-rate
(number)

CPU allocation rate used for over-committing resources. See Over-committing resources.

cpus
(integer)

Number of CPUs dedicated to instances.

gpu-encoder-slots
(integer)

Number of GPU encoder slots available on the node. Default values: 0 for nodes without GPU; 32 for nodes with NVIDIA GPU; 5 for nodes with AMD; 10 for nodes with Intel GPU. See GPU slots.

gpu-slots
(integer)

Number of GPU slots to configure on the node.

gpus.<id>.encoder-slots
(integer)

Number of GPU encoder slots.

gpus.<id>.slots
(integer)

Number of GPU slots available on the node.

memory
(string)

Update the memory (in GB) for the node.

memory-allocation-rate
(number)

Memory allocation rate used for over-committing resources. See Over-committing resources.

public-address
(string)

The public, reachable address of the node.

subnet
(string)

The network subnet of the machine hosting the node.

unscheduable
(boolean)
(Deprecated in 1.20)

DEPRECATED Flag in favour of unschedulable flag.

unschedulable
(boolean)

When set to true, the node cannot be scheduled, which prevents new instances from being launched on it.

See Configure cluster nodes for instructions on how to set these configuration items.

Objects managed by AMS

AMS manages various objects such as applications, images, instances, nodes and addons.

The object names must adhere to the following criteria:

  • Minimum character limit: 3

  • Maximum character limit: 255

  • Can contain:

    • Alphabets (a-z, A-Z)

    • Numbers (0-9)

    • Allowed special characters: - (hyphen), _ (underscore), : (colon), . (period).

When you create an instance, the same criteria apply to the following options as well:

  • boot_activity

  • platform

  • boot_package

The object ids are generated by AMS and have a length of 20 characters.