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