- 29 Oct 2024
-
DarkLight
-
PDF
Modes of Operation
- Updated on 29 Oct 2024
-
DarkLight
-
PDF
Application Modes
IAG5 can run in three distinct modes for providing automation to a variety of operating environments. Each mode can be tailored to specific scenarios, ranging from individual users to complex, distributed ecosystems.
To switch between the various application modes, set the configuration variable GATEWAY_APPLICATION_MODE
as described in Gateway Application.
See an example configuration file in Using Config Variables.
Local Mode
Local mode is the default setting.
- Suitable for users or small teams who need to run automations from a single machine.
- No login is required.
- Ideal for simple setups or initial testing and development phases.
To use Local mode, set GATEWAY_APPLICATION_MODE
to local
.
Below is an example gateway.conf
file that is configured to run in local
mode.
[application]
mode = local
Server Mode
Server mode sets a centralized location where all resources can be managed.
- Service executions will take place on a
gateway
server if a distributed architecture with runners is not configured. - All requests sent to
gateway
server are sent viagateway
client.
To configure a gateway
server, refer to the GATEWAY_SERVER_*
configuration variables here.
To use Server mode, set GATEWAY_APPLICATION_MODE
to server
.
Below is an example gateway.conf
file that is configured to run in gateway server
mode. Anything commented out is the default setting.
[application]
mode = server
[server]
#api_key_expiration = 1440
#certificate_file = /etc/gateway/gateway.crt
listen_address = 0.0.0.0
#port = 50051
#private_key_file = /etc/gateway/gateway.key
use_tls = false
use_tls
is where a key/value pair is set on both the server and client. Itential highly recommends this for production usage.
Client Mode
Client mode is essential for managing a gateway
server.
- A
gateway
client connects to agateway
server instance running in server mode and sends all requests. - This mode enables the creation and management of services, repositories, secrets, and user accounts.
- A
gateway
server is required for client mode to function, as all operations performed in client mode are executed against the connected server.
To configure a gateway
client, refer to the GATEWAY_CLIENT_*
configuration variables here.
To use Client mode, set GATEWAY_APPLICATION_MODE
to client
.
Below is an example gateway.conf
file configured to run in gateway client
mode. Anything commented out is the default setting.
[application]
mode = client
[client]
#certificate_file =
host = some.gateway-server.domain
#port = 50051
#private_key_file =
use_tls = false
use_tls
is where a key/value pair is set on both the server and client. Itential highly recommends this for production usage.
Runner Mode
Runner mode sets up an exclusive gateway node
for high availability.
- The
gateway node
is able to execute gateway automations sent to it by a gateway server in a cluster architecture. - Use Runner mode if a distributed execution architecture is desired.
More information on gateway runners
is available in Distributed Service Execution.
To use Runner mode, set GATEWAY_APPLICATION_MODE
to runner
.
Below is an example gateway.conf
file configured for runner
mode. Note that etcd
is configured in this example. Anything commented out is the default setting.
[application]
mode = runner
[runner]
#announcement_address =
#certificate_file = /etc/gateway/gateway.crt
listen_address = 0.0.0.0
#port = 50051
#private_key_file = /etc/gateway/gateway.key
use_tls = false
[store]
backend = etcd
etcd_hosts = etcd-host.domain:2379
etcd_use_tls = false
#etcd_ca_certificate_file =
#etcd_certificate_file =
#etcd_client_cert_auth = false
#etcd_private_key_file =
use_tls
and etcd_use_tls
is where a key/value pair is set on both the server and client. Itential highly recommends this for production usage.
Feature Availability in Each Mode
The table below shows which features are available in each mode and highlights the dependency of server mode on client connections for running automations.
Runner mode
has been omitted as gateway runners are limited to only execute automations sent to it by a gateway server.
Feature | Local Mode | Server Mode | Client Mode |
---|---|---|---|
Run Automations | Yes | via Client | Yes |
Create Secrets | Yes | via Client | Yes |
Create Services | Yes | via Client | Yes |
Create Repositories | Yes | via Client | Yes |
Manage Users | No | via Client | Yes |
Login Method | None | via Client | Required |