»Nomad Autoscaler Plugins

Plugins are an essential part of the Nomad Autoscaler architecture. The Autoscaler uses the go-plugin library to implement an ecosystem of different types of plugins. Each plugin type is responsible for a specific task: APM plugins retrieve metrics about the workloads being monitored; strategy plugins decide the scaling action to satisfy the scaling policy; and target plugins perform the scaling action. The flexibility of plugins allows the Nomad Autoscaler to be extended to meet specific business requirements or technology use cases.

The Nomad Autoscaler currently ships with a number of built-in plugins to ease the learning curve. Details of these can be found in the side menu, under the specific plugin type sections. The autoscaler also supports external plugins; see this list of community-supported plugins.

»General Options

All plugins which require Nomad API connectivity support the parameters detailed below. These plugins include Nomad APM, Nomad Target and all cluster scaling targets.

  • nomad_config_inherit (bool: true) - A boolean flag which indicates whether the plugin should inherit the agents Nomad configuration parameters. Plugins can override individual parameters and have their Nomad configuration merged with that of the agent.

  • nomad_address (string: "") - The address of the Nomad server in the form of protocol://addr:port.

  • nomad_region (string: "") - The region of the Nomad servers to connect with.

  • nomad_namespace (string: "") - The target namespace for queries and actions bound to a namespace.

  • nomad_token (string: "") - The SecretID of an ACL token to use to authenticate API requests with.

  • nomad_http-auth (string: "") - The authentication information to use when connecting to a Nomad API which is using HTTP authentication.

  • nomad_ca-cert (string: "") - Path to a PEM encoded CA cert file to use to verify the Nomad server SSL certificate.

  • nomad_ca-path (string: "") - Path to a directory of PEM encoded CA cert files to verify the Nomad server SSL certificate.

  • nomad_client-cert (string: "") - Path to a PEM encoded client certificate for TLS authentication to the Nomad server.

  • nomad-client-key (string: "") - Path to an unencrypted PEM encoded private key matching the client certificate.

  • nomad_tls-server-name (string: "") - The server name to use as the SNI host when connecting via TLS.

  • nomad_skip-verify (string: "") - Do not verify TLS certificates. This is strongly discouraged.

»Loading External Plugins

In order to utilise external plugins, the plugin binary must be downloaded to a directory on the same host that the Nomad Autoscaler will run. This directory should be referenced by the plugin_dir config parameter along with an appropriate APM, Strategy or Target block entry.