Nomad
proxy Block
Placement | job -> group -> service -> connect -> sidecar_service -> proxy |
The proxy
block allows configuring various options for the sidecar proxy
managed by Nomad for Consul Connect. It is valid only within the context of
a sidecar_service
block.
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
config
(map: nil)
- Proxy configuration that is opaque to Nomad and passed directly to Consul. See Consul Connect documentation for details. Keys and values support runtime variable interpolation.expose
(expose: nil)
- Used to configure expose path configuration for Envoy. See Consul's Expose Paths Configuration Reference for more information.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.transparent_proxy
(transparent_proxy: nil)
- Used to enable transparent proxy mode, which allows the proxy to use Consul service intentions to automatically configure upstreams, and configures iptables rules to force traffic from the allocation to flow through the proxy.upstreams
(upstreams: nil)
- Used to configure details of each upstream service that this sidecar proxy communicates with.
proxy
Examples
The following example is a proxy specification that includes upstreams configuration.
sidecar_service {
proxy {
upstreams {
destination_name = "count-api"
local_bind_port = 8080
}
}
}
The following example is a proxy specification that includes transparent proxy
configuration. Note that with transparent proxy, you will not need to configure
an upstreams
block.
sidecar_service {
proxy {
transparent_proxy {
}
}
}