open-nomad/client/allocrunner
Seth Hoenig 0266f056b8 connect: enable proxy.passthrough configuration
Enable configuration of HTTP and gRPC endpoints which should be exposed by
the Connect sidecar proxy. This changeset is the first "non-magical" pass
that lays the groundwork for enabling Consul service checks for tasks
running in a network namespace because they are Connect-enabled. The changes
here provide for full configuration of the

  connect {
    sidecar_service {
      proxy {
        expose {
          paths = [{
		path = <exposed endpoint>
                protocol = <http or grpc>
                local_path_port = <local endpoint port>
                listener_port = <inbound mesh port>
	  }, ... ]
       }
    }
  }

stanza. Everything from `expose` and below is new, and partially implements
the precedent set by Consul:
  https://www.consul.io/docs/connect/registration/service-registration.html#expose-paths-configuration-reference

Combined with a task-group level network port-mapping in the form:

  port "exposeExample" { to = -1 }

it is now possible to "punch a hole" through the network namespace
to a specific HTTP or gRPC path, with the anticipated use case of creating
Consul checks on Connect enabled services.

A future PR may introduce more automagic behavior, where we can do things like

1) auto-fill the 'expose.path.local_path_port' with the default value of the
   'service.port' value for task-group level connect-enabled services.

2) automatically generate a port-mapping

3) enable an 'expose.checks' flag which automatically creates exposed endpoints
   for every compatible consul service check (http/grpc checks on connect
   enabled services).
2020-03-31 17:15:27 -06:00
..
interfaces allow only positive shutdown delay 2019-12-16 11:38:30 -05:00
state stale allocation data leads to incorrect (and even negative) metrics (#5637) 2019-05-07 15:54:36 -04:00
taskrunner tests: restart restartpolicy for all tasks in tests 2020-03-24 21:52:48 -04:00
alloc_runner.go allocrunner: Push state from hooks to taskrunners 2020-03-23 13:58:30 -04:00
alloc_runner_hooks.go hook resources: Init with empty resources during setup 2020-03-23 13:58:30 -04:00
alloc_runner_test.go tests: update AR task restart policy 2020-03-24 17:00:42 -04:00
alloc_runner_unix_test.go tests: restart restartpolicy for all tasks in tests 2020-03-24 21:52:48 -04:00
allocdir_hook.go client: cleanup and document context uses 2019-03-12 15:03:54 -07:00
config.go client: Pass an RPC Client to AllocRunners 2020-03-23 13:58:30 -04:00
consulsock_hook.go connect: remove proxy socket for restarted client 2019-09-25 14:58:17 -04:00
consulsock_hook_test.go connect: add unix socket to proxy grpc for envoy (#6232) 2019-09-03 08:43:38 -07:00
csi_hook.go csi: annotate remaining missing cancellation contexts (#7552) 2020-03-30 16:46:43 -04:00
groupservice_hook.go client: enable configuring enable_tag_override for services 2020-02-10 08:00:55 -06:00
groupservice_hook_test.go update rest of consul packages 2020-02-16 16:25:04 -06:00
health_hook.go add default update stanza and max_parallel=0 disables deployments (#6191) 2019-09-02 10:30:09 -07:00
health_hook_test.go health: fail health if any task is pending 2020-03-22 11:13:41 -04:00
migrate_hook.go client: cleanup and document context uses 2019-03-12 15:03:54 -07:00
network_hook.go driver/networking: don't recreate existing network namespaces 2019-09-25 14:58:17 -04:00
network_hook_test.go driver/networking: don't recreate existing network namespaces 2019-09-25 14:58:17 -04:00
network_manager_linux.go spellcheck: Fix spelling of retrieve 2019-12-05 18:59:47 -06:00
network_manager_linux_test.go ar: rearrange network hook to support building on windows 2019-07-31 01:03:19 -04:00
network_manager_nonlinux.go ar: refactor network bridge config to use go-cni lib (#6255) 2019-09-04 16:33:25 -04:00
networking.go ar: refactor network bridge config to use go-cni lib (#6255) 2019-09-04 16:33:25 -04:00
networking_bridge_linux.go connect: enable proxy.passthrough configuration 2020-03-31 17:15:27 -06:00
task_hook_coordinator.go address review feedback 2020-03-21 17:52:58 -04:00
task_hook_coordinator_test.go refactor TaskHookCoordinator tests to use mock package and add failed init and sidecar test cases 2020-03-21 17:52:56 -04:00
testing.go client: enable nomad client to request and set SI tokens for tasks 2020-01-31 19:03:38 -06:00
upstream_allocs_hook.go client: cleanup and document context uses 2019-03-12 15:03:54 -07:00
util.go allocrunnerv2 -> allocrunner 2018-10-16 16:56:56 -07:00