--- layout: docs page_title: connect Stanza - Job Specification sidebar_title: connect description: The "connect" stanza allows specifying options for Consul Connect integration --- # `connect` Stanza 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/tutorials/nomad/consul-service-mesh) 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 - `native` - `(bool: false)` - This is used to configure the service as supporting [Connect Native](https://www.consul.io/docs/connect/native) applications. If set, the service definition must provide the name of the implementing task in the [task][service_task] field. Incompatible with `sidecar_service` and `sidecar_task`. - `sidecar_service` - ([sidecar_service][]: nil) - This is used to configure the sidecar service injected by Nomad for Consul Connect. Incompatible with `native`. - `sidecar_task` - ([sidecar_task][]:nil) - This modifies the configuration of the Envoy proxy task. Incompatible with `native`. ## `connect` Examples ### Using Sidecar Service 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 `countdash` 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" } } } } ``` ### Using Connect Native The following example is a minimal service stanza for a [Consul Connect Native](https://www.consul.io/docs/connect/native) application implemented by a task named `generate`. ```hcl service { name = "uuid-api" port = "${NOMAD_PORT_api}" task = "generate" connect { native = true } } ``` ### Limitations [Nomad variable interpolation][interpolation] is _not_ yet supported ([gh-7221]). [gh-7221]: https://github.com/hashicorp/nomad/issues/7221 [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 [service_task]: /docs/job-specification/service#task-1 'Nomad service task'