Nomad
connect Stanza
| Placement | job -> group -> service -> connect | 
The connect stanza allows configuring various options for
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
guide.
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-- (sidecar_service: nil)- This is used to configure the sidecar service injected by Nomad for Consul Connect.
- sidecar_task-- (sidecar_task:nil)- 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.
  connect {
    sidecar_service {}
  }
The following example includes specifying upstreams.
  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.
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 and Nomad variable interpolation are not yet supported.