--- layout: docs page_title: Worker - Configuration description: |- The worker stanza configures worker-specific parameters. --- # `worker` Stanza The `worker` stanza configures Boundary worker-specific parameters. Boundary supports two different types of workers, differentiated by their means of authentication to Boundary: - [PKI Workers][] use certificates issued by Boundary to authenticate with controllers - [KMS Workers][] use a shared KMS to authenticate with controllers Different worker types have different configuration requirements, but share the common worker parameters listed below. ## Common Worker Parameters The following fields are supported for all worker types: ```hcl worker { public_addr = "5.1.23.198" initial_upstreams = [ "10.0.0.1", "10.0.0.2", ] tags { type = ["prod", "webservers"] region = ["us-east-1"] } } ``` - `public_addr` - Specifies the public host or IP address (and optionally port) at which the worker can be reached _by clients for proxying_. This defaults to the address of the listener marked for `proxy` purpose. This is especially useful for cloud environments that do not bind a publicly accessible IP to a NIC on the host directly, such as an Amazon EIP. This value can reference any of the following: - a direct address string - a file on disk (file://) from which an address will be read - an env var (env://) from which the address will be read - a [go-sockaddr template](https://godoc.org/github.com/hashicorp/go-sockaddr/template) - `initial_upstreams` - A list of hosts/IP addresses and optionally ports for reaching the boundary cluster. The port will default to `:9201` if not specified. This value can be a direct access string array with the addresses, or it can refer to a file on disk (`file://`) from which the addresses will be read, or an env var (`env://`) from which the addresses will be read. When using env or file, their contents must formatted as a JSON array: `["127.0.0.1", "192.168.0.1", "10.0.0.1"]` - `tags` - A map of key-value pairs where values are an array of strings. Most commonly used for [filtering](/docs/concepts/filtering) targets a worker can proxy via [worker tags](/docs/concepts/filtering/worker-tags). On `SIGHUP`, the tags set here will be re-parsed and new values used. It can also be a string referring to a file on disk (`file://`) or an env var (`env://`). [kms workers]: /docs/configuration/worker/kms-worker [pki workers]: /docs/configuration/worker/pki-worker