anbox stream gateway #95

Supports: bionic focal

Description

The Anbox Stream Gateway is responsible to provide a central entry point into the streaming experience of the Anbox Cloud platform.


Anbox Cloud - Anbox Stream Gateway

Anbox Cloud offers a software stack that runs Android applications in any cloud enabling high-performance streaming of graphics to desktop and mobile client devices.

At its heart, it uses lightweight container technology instead of full virtual machines to achieve higher density and better performance per host while ensuring security and isolation of each container. Depending on the target platform, payload, and desired application performance (e.g. frame rate), more than 100 containers can be run on a single machine.

For containerization of Android, Anbox Cloud uses the well established and secure container hypervisor LXD. LXD is secure by design, scales to a large number of containers and provides advanced resource management for hosted containers.

Also have a look at the official Anbox Cloud website for more information.

NOTE: Anbox Cloud is a paid offering. You will need a Ubuntu Advantage subscription for this charm to work. You can learn more at https://anbox-cloud.io

WARNING: The Ubuntu Advantage for Infrastructure token every user gets for free for personal use does *NOT work and will result in a failed deployment! You need to use a valid *Ubuntu Advantage for Applications** token to be able to deploy successfully.

Anbox Stream Gateway

The Anbox Stream Gateway is the main charm used when streaming. It enables streaming of applications over WebRTC with the help of agents.

Running the anbox-stream-gateway charm requires other charms to be deployed beforehand.

$ juju deploy cs:~nats-charmers/nats-9
$ juju deploy cs:~containers/easyrsa-318
$ juju deploy cs:~anbox-charmers/anbox-stream-gateway
$ juju config anbox-stream-gateway ua_token=<your UA token>
$ juju relate anbox-stream-gateway easyrsa
$ juju relate anbox-stream-gateway nats

For more information about streaming, visit the official documentation on https://anbox-cloud.io/docs/manage/streaming-android-applications


Configuration

enable_dev_ui
(boolean) Enable integrated development UI NOTE: the development UI has been completely removed, using this config item to enable/disable development UI won't take any effect.
enable_pprof
(boolean) Enable pprof support for runtime debugging support on http://127.0.0.1:9911 WARNING: Only enable this for debugging purposes but never for any production workload as it gives direct access to the running process. Enabling requires the service to be restarted.
keep_containers
(boolean) Keeps containers around when an error occured
location
(string) Location the stream gateway is available on. If not set its public address will be used.
log_level
(string) Log level for the stream gateway
info
max_http_requests_per_second
(int) Set the maximum number of HTTP requests the Stream Gateway will handle per second
100
nagios_context
(string) Used by the nrpe subordinate charms. A string that will be prepended to instance name to set the host name in nagios. So for instance the hostname would be something like: juju-myservice-0 If you're running multiple environments with the same services in them this allows you to differentiate between them.
juju
nagios_servicegroups
(string) A comma-separated list of nagios servicegroups. If left empty, the nagios_context will be used as the servicegroup
port
(int) Port the Anbox Stream Gateway listens on
4000
preferred_region
(string) Region sessions are launched in by default if no one is explicitly specified within the launch request.
prometheus_basic_auth_password
(string) Password used for HTTP basic auth of the prometheus endpoint
prometheus_basic_auth_username
(string) Username used for HTTP basic auth of the prometheus endpoint
prometheus_metrics_path
(string) URL path where prometheus metrics are served
/internal/1.0/metrics
prometheus_port
(int) Port the Prometheus webserver listens on. If 0, prometheus support is disabled.
9105
prometheus_tls_cert_path
(string) DEPRECATED: Path to certificate used by prometheus for TLS
prometheus_tls_key_path
(string) DEPRECATED: Path to key used by prometheus for TLS
public_interface
(string) Identifies which network interface to use for the public address
tls_cert_path
(string) DEPRECATED: Path to the certificate the gateway will use for TLS
/var/snap/anbox-stream-gateway/common/service/cert.pem
tls_key_path
(string) DEPRECATED: Path to the private key the gateway will use for TLS
/var/snap/anbox-stream-gateway/common/service/key.pem
ua_source
(string) APT source to use instead of the automatic one generated from UA. Overrides UA source if both are set.
ua_source_key
(string) Key ID to import to the APT keyring in order to access the specified source archive. Required if ua_source is set.
ua_token
(string) Ubuntu Advantage token you have received with your license of Anbox Cloud
ua_use_staging
(boolean) Use staging contracts API service
use_insecure_tls
(boolean) Allows using self-signed TLS certificates if no CA signed ones are available