github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/website/content/tools/autoscaling/plugins/index.mdx (about) 1 --- 2 layout: docs 3 page_title: Autoscaling Plugins 4 description: Plugins are used to architect the Nomad Autoscaler into distinct areas. 5 --- 6 7 # Nomad Autoscaler Plugins 8 9 Plugins are an essential part of the Nomad Autoscaler architecture. The Autoscaler 10 uses the [go-plugin][go_plugin_github] library to implement an ecosystem of 11 different types of plugins. Each plugin type is responsible for a specific task: 12 APM plugins retrieve metrics about the workloads being monitored; strategy 13 plugins decide the scaling action to satisfy the scaling policy; and target 14 plugins perform the scaling action. The flexibility of plugins allows the Nomad 15 Autoscaler to be extended to meet specific business requirements or technology 16 use cases. 17 18 The Nomad Autoscaler currently ships with a number of built-in plugins to ease 19 the learning curve. Details of these can be found in the side menu, under the 20 specific plugin type sections. The autoscaler also supports external plugins; see 21 this list of [community-supported plugins][community_plugins]. 22 23 # General Options 24 25 All plugins which require Nomad API connectivity support the parameters detailed 26 below. These plugins include Nomad APM, Nomad Target and all cluster scaling 27 targets. 28 29 - `nomad_config_inherit` `(bool: true)` - A boolean flag which indicates whether 30 the plugin should inherit the agents Nomad configuration parameters. Plugins 31 can override individual parameters and have their Nomad configuration merged 32 with that of the agent. 33 34 - `nomad_address` `(string: "")` - The address of the Nomad server in the form 35 of `protocol://addr:port`. 36 37 - `nomad_region` `(string: "")` - The region of the Nomad servers to connect with. 38 39 - `nomad_namespace` `(string: "")` - The target namespace for queries and actions 40 bound to a namespace. 41 42 - `nomad_token` `(string: "")` - The SecretID of an ACL token to use to authenticate 43 API requests with. 44 45 - `nomad_http-auth` `(string: "")` - The authentication information to use when 46 connecting to a Nomad API which is using HTTP authentication. 47 48 - `nomad_ca-cert` `(string: "")` - Path to a PEM encoded CA cert file to use to 49 verify the Nomad server SSL certificate. 50 51 - `nomad_ca-path` `(string: "")` - Path to a directory of PEM encoded CA cert 52 files to verify the Nomad server SSL certificate. 53 54 - `nomad_client-cert` `(string: "")` - Path to a PEM encoded client certificate 55 for TLS authentication to the Nomad server. 56 57 - `nomad-client-key` `(string: "")` - Path to an unencrypted PEM encoded private 58 key matching the client certificate. 59 60 - `nomad_tls-server-name` `(string: "")` - The server name to use as the SNI 61 host when connecting via TLS. 62 63 - `nomad_skip-verify` `(string: "")` - Do not verify TLS certificates. This is 64 strongly discouraged. 65 66 # Loading External Plugins 67 68 In order to utilise external plugins, the plugin binary must be downloaded to a 69 directory on the same host that the Nomad Autoscaler will run. This directory 70 should be referenced by the [plugin_dir][plugin_dir_config] config parameter along 71 with an appropriate [APM][apm], [Strategy][strategy] or [Target][target] block 72 entry. 73 74 [go_plugin_github]: https://github.com/hashicorp/go-plugin 75 [community_plugins]: /tools/autoscaling/plugins/external 76 [plugin_dir_config]: /tools/autoscaling/agent#plugin_dir 77 [apm]: /tools/autoscaling/agent/apm#apm-block 78 [strategy]: /tools/autoscaling/agent/strategy#strategy-block 79 [target]: /tools/autoscaling/agent/target#target-block