1ae26981a0
When configuring Consul Service Mesh, it's sometimes necessary to provide dynamic value that are only known to Nomad at runtime. By interpolating configuration values (in addition to configuration keys), user are able to pass these dynamic values to Consul from their Nomad jobs.
90 lines
2.8 KiB
Plaintext
90 lines
2.8 KiB
Plaintext
---
|
|
layout: docs
|
|
page_title: proxy Stanza - Job Specification
|
|
description: |-
|
|
The "proxy" stanza allows specifying options for configuring
|
|
sidecar proxies used in Consul Connect integration
|
|
---
|
|
|
|
# `proxy` Stanza
|
|
|
|
<Placement
|
|
groups={['job', 'group', 'service', 'connect', 'sidecar_service', 'proxy']}
|
|
/>
|
|
|
|
The `proxy` stanza allows configuring various options for the sidecar proxy
|
|
managed by Nomad for [Consul
|
|
Connect](/docs/integrations/consul-connect). It is valid only
|
|
within the context of a `sidecar_service` stanza.
|
|
|
|
```hcl
|
|
job "countdash" {
|
|
datacenters = ["dc1"]
|
|
|
|
group "api" {
|
|
network {
|
|
mode = "bridge"
|
|
}
|
|
|
|
service {
|
|
name = "count-api"
|
|
port = "9001"
|
|
|
|
connect {
|
|
sidecar_service {
|
|
proxy {}
|
|
}
|
|
}
|
|
}
|
|
|
|
task "web" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "hashicorpdev/counter-api:v3"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## `proxy` Parameters
|
|
|
|
- `local_service_address` `(string: "127.0.0.1")` - The address the local service binds to. Useful to
|
|
customize in clusters with mixed Connect and non-Connect services.
|
|
- `local_service_port` `(int: <varies>)` - The port the local service binds to.
|
|
Usually the same as the parent service's port, it is useful to customize in clusters with mixed
|
|
Connect and non-Connect services.
|
|
- `upstreams` <code>([upstreams][]: nil)</code> - Used to configure details of each upstream service that
|
|
this sidecar proxy communicates with.
|
|
- `expose` <code>([expose]: nil)</code> - Used to configure expose path configuration for Envoy.
|
|
See Consul's [Expose Paths Configuration Reference](https://www.consul.io/docs/connect/registration/service-registration#expose-paths-configuration-reference)
|
|
for more information.
|
|
- `config` `(map: nil)` - Proxy configuration that's opaque to Nomad and
|
|
passed directly to Consul. See [Consul Connect's
|
|
documentation](https://www.consul.io/docs/connect/proxies/envoy#dynamic-configuration)
|
|
for details. Keys and values support [runtime variable interpolation][interpolation].
|
|
|
|
## `proxy` Examples
|
|
|
|
The following example is a proxy specification that includes upstreams configuration.
|
|
|
|
```hcl
|
|
sidecar_service {
|
|
proxy {
|
|
upstreams {
|
|
destination_name = "count-api"
|
|
local_bind_port = 8080
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
[job]: /docs/job-specification/job 'Nomad job Job Specification'
|
|
[group]: /docs/job-specification/group 'Nomad group Job Specification'
|
|
[task]: /docs/job-specification/task 'Nomad task Job Specification'
|
|
[interpolation]: /docs/runtime/interpolation 'Nomad interpolation'
|
|
[sidecar_service]: /docs/job-specification/sidecar_service 'Nomad sidecar service Specification'
|
|
[upstreams]: /docs/job-specification/upstreams 'Nomad upstream config Specification'
|
|
[expose]: /docs/job-specification/expose 'Nomad proxy expose configuration'
|