20d7a76d2c
Promote the Connect ACLs guide on the jobspec connect stanza docs page. This was suggested in a ticket after someone got stuck not realizing they needed to enable Consul Intentions for their connect enabled services, which is covered in the guide.
177 lines
3.9 KiB
Plaintext
177 lines
3.9 KiB
Plaintext
---
|
|
layout: docs
|
|
page_title: connect Stanza - Job Specification
|
|
sidebar_title: connect
|
|
description: The "connect" stanza allows specifying options for Consul Connect integration
|
|
---
|
|
|
|
# `connect` Stanza
|
|
|
|
<Placement groups={['job', 'group', 'service', 'connect']} />
|
|
|
|
The `connect` stanza allows configuring various options for
|
|
[Consul Connect](/docs/integrations/consul-connect). It is
|
|
valid only within the context of a service definition at the task group
|
|
level. For using `connect` when Consul ACLs are enabled, be sure to read through
|
|
the [Secure Nomad Jobs with Consul Connect](https://learn.hashicorp.com/nomad/consul-integration/nomad-connect-acl)
|
|
guide.
|
|
|
|
```hcl
|
|
job "countdash" {
|
|
datacenters = ["dc1"]
|
|
|
|
group "api" {
|
|
network {
|
|
mode = "bridge"
|
|
}
|
|
|
|
service {
|
|
name = "count-api"
|
|
port = "9001"
|
|
|
|
connect {
|
|
sidecar_service {}
|
|
}
|
|
}
|
|
|
|
task "web" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "hashicorpnomad/counter-api:v2"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## `connect` Parameters
|
|
|
|
- `sidecar_service` - <code>([sidecar_service][]: nil)</code> - This is used to configure the sidecar
|
|
service injected by Nomad for Consul Connect.
|
|
|
|
- `sidecar_task` - <code>([sidecar_task][]:nil)</code> - This modifies the configuration of the Envoy
|
|
proxy task.
|
|
|
|
## `connect` Examples
|
|
|
|
The following example is a minimal connect stanza with defaults and is
|
|
sufficient to start an Envoy proxy sidecar for allowing incoming connections
|
|
via Consul Connect.
|
|
|
|
```hcl
|
|
connect {
|
|
sidecar_service {}
|
|
}
|
|
```
|
|
|
|
The following example includes specifying [`upstreams`][upstreams].
|
|
|
|
```hcl
|
|
connect {
|
|
sidecar_service {
|
|
proxy {
|
|
upstreams {
|
|
destination_name = "count-api"
|
|
local_bind_port = 8080
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
The following is the complete `coutdash` example. It includes an API service
|
|
and a frontend Dashboard service which connects to the API service as a Connect
|
|
upstream. Once running, the dashboard is accessible at `localhost:9002`.
|
|
|
|
```hcl
|
|
job "countdash" {
|
|
datacenters = ["dc1"]
|
|
|
|
group "api" {
|
|
network {
|
|
mode = "bridge"
|
|
}
|
|
|
|
service {
|
|
name = "count-api"
|
|
port = "9001"
|
|
|
|
connect {
|
|
sidecar_service {}
|
|
}
|
|
|
|
check {
|
|
expose = true
|
|
type = "http"
|
|
name = "api-health"
|
|
path = "/health"
|
|
interval = "10s"
|
|
timeout = "3s"
|
|
}
|
|
}
|
|
|
|
task "web" {
|
|
driver = "docker"
|
|
|
|
config {
|
|
image = "hashicorpnomad/counter-api:v2"
|
|
}
|
|
}
|
|
}
|
|
|
|
group "dashboard" {
|
|
network {
|
|
mode = "bridge"
|
|
|
|
port "http" {
|
|
static = 9002
|
|
to = 9002
|
|
}
|
|
}
|
|
|
|
service {
|
|
name = "count-dashboard"
|
|
port = "9002"
|
|
|
|
connect {
|
|
sidecar_service {
|
|
proxy {
|
|
upstreams {
|
|
destination_name = "count-api"
|
|
local_bind_port = 8080
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
task "dashboard" {
|
|
driver = "docker"
|
|
|
|
env {
|
|
COUNTING_SERVICE_URL = "http://${NOMAD_UPSTREAM_ADDR_count_api}"
|
|
}
|
|
|
|
config {
|
|
image = "hashicorpnomad/counter-dashboard:v2"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Limitations
|
|
|
|
[Consul Connect Native services][native] and [Nomad variable
|
|
interpolation][interpolation] are _not_ yet supported.
|
|
|
|
[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'
|
|
[sidecar_task]: /docs/job-specification/sidecar_task 'Nomad sidecar task config Specification'
|
|
[upstreams]: /docs/job-specification/upstreams 'Nomad sidecar service upstreams Specification'
|
|
[native]: https://www.consul.io/docs/connect/native.html
|