open-nomad/nomad
Seth Hoenig ed13e5723f consul/connect: dynamically select envoy sidecar at runtime
As newer versions of Consul are released, the minimum version of Envoy
it supports as a sidecar proxy also gets bumped. Starting with the upcoming
Consul v1.9.X series, Envoy v1.11.X will no longer be supported. Current
versions of Nomad hardcode a version of Envoy v1.11.2 to be used as the
default implementation of Connect sidecar proxy.

This PR introduces a change such that each Nomad Client will query its
local Consul for a list of Envoy proxies that it supports (https://github.com/hashicorp/consul/pull/8545)
and then launch the Connect sidecar proxy task using the latest supported version
of Envoy. If the `SupportedProxies` API component is not available from
Consul, Nomad will fallback to the old version of Envoy supported by old
versions of Consul.

Setting the meta configuration option `meta.connect.sidecar_image` or
setting the `connect.sidecar_task` stanza will take precedence as is
the current behavior for sidecar proxies.

Setting the meta configuration option `meta.connect.gateway_image`
will take precedence as is the current behavior for connect gateways.

`meta.connect.sidecar_image` and `meta.connect.gateway_image` may make
use of the special `${NOMAD_envoy_version}` variable interpolation, which
resolves to the newest version of Envoy supported by the Consul agent.

Addresses #8585 #7665
2020-10-13 09:14:12 -05:00
..
deploymentwatcher refactor: make it clear where we're accessing dstate 2020-07-20 11:25:53 -04:00
drainer avoid logging in draining job watcher 2020-03-30 07:06:53 -04:00
event Transaction change tracking 2020-09-01 10:27:20 -04:00
mock consul/connect: dynamically select envoy sidecar at runtime 2020-10-13 09:14:12 -05:00
state Allow job Version to start at non-zero value (#9071) 2020-10-12 13:59:48 -04:00
structs consul/connect: dynamically select envoy sidecar at runtime 2020-10-13 09:14:12 -05:00
types
volumewatcher csi: volumewatcher only needs one pass to collect past claims 2020-10-09 11:03:51 -04:00
acl.go Audit config, seams for enterprise audit features 2020-03-23 13:47:42 -04:00
acl_endpoint.go address feedback review 2019-11-26 08:39:04 -05:00
acl_endpoint_test.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
acl_test.go Audit config, seams for enterprise audit features 2020-03-23 13:47:42 -04:00
alloc_endpoint.go rpc: allow querying allocs across namespaces 2020-06-17 16:31:06 -04:00
alloc_endpoint_test.go testS: add all namespaces test for allocations 2020-06-22 10:26:08 -04:00
autopilot.go implement MinQuorum 2020-02-16 16:04:59 -06:00
autopilot_test.go tests: deflake TestAutopilot_RollingUpdate 2020-04-03 17:15:41 -04:00
blocked_evals.go blocked_evals reset system evals on Flush 2019-07-18 10:32:13 -04:00
blocked_evals_system.go blocked_evals system evals indexed by job and node 2019-07-18 10:32:12 -04:00
blocked_evals_test.go blocked_evals_test disable calls Flush 2019-07-18 10:32:13 -04:00
client_agent_endpoint.go api: nomad debug new /agent/host (#8325) 2020-07-02 09:51:25 -04:00
client_agent_endpoint_test.go minor tweaks from Ent 2020-07-20 09:25:09 -04:00
client_alloc_endpoint.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
client_alloc_endpoint_test.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
client_csi_endpoint.go msgpack-rpc errors cannot be wrapped (#8633) 2020-08-11 10:25:43 -04:00
client_csi_endpoint_test.go csi: retry controller client RPCs on next controller (#8561) 2020-08-06 13:24:24 -04:00
client_fs_endpoint.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
client_fs_endpoint_test.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
client_rpc.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
client_rpc_test.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
client_stats_endpoint.go server 2018-09-15 16:23:13 -07:00
client_stats_endpoint_test.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
config.go csi: release claims via csi_hook postrun unpublish RPC (#8580) 2020-08-06 14:51:46 -04:00
consul.go consul/connect: add initial support for ingress gateways 2020-08-21 16:21:54 -05:00
consul_policy.go nomad: fix leftover missed refactoring in consul policy checking 2020-01-31 19:05:06 -06:00
consul_policy_test.go nomad: fix leftover missed refactoring in consul policy checking 2020-01-31 19:05:06 -06:00
consul_test.go consul/connect: add initial support for ingress gateways 2020-08-21 16:21:54 -05:00
core_sched.go CSI: fix missing ACL tokens for leader-driven RPCs (#8607) 2020-08-07 15:37:27 -04:00
core_sched_test.go failed core jobs should not have follow-ups (#8682) 2020-08-18 16:48:43 -04:00
csi_endpoint.go csi: remove stray TODO comment 2020-10-09 11:03:51 -04:00
csi_endpoint_test.go csi: validate mount options during volume registration (#9044) 2020-10-08 09:23:21 -04:00
deployment_endpoint.go Update nomad/deployment_endpoint.go 2020-09-08 16:39:51 -05:00
deployment_endpoint_test.go remove test for ent-only behavior 2020-06-17 11:27:29 -04:00
deployment_watcher_shims.go Fix typos 2018-05-07 14:50:01 -05:00
drainer_int_test.go tests: use GreaterOrEqual and apply change to other tests 2020-05-27 11:22:48 -04:00
drainer_shims.go set node.StatusUpdatedAt in raft 2019-05-21 16:13:32 -04:00
endpoints_oss.go include pro tag in serveral oss.go files 2020-02-10 15:56:14 -05:00
eval_broker.go nomad: refactor waitForIndex into SnapshotAfter 2019-05-17 13:30:23 -07:00
eval_broker_test.go nomad: TestEvalBroker_Dequeue_Empty_Timeout() proper goroutine error handling (#6657) 2019-11-08 14:35:06 -05:00
eval_endpoint.go acl: check ACL against object namespace 2019-10-08 12:59:22 -04:00
eval_endpoint_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06:00
fsm.go add scaling policy type 2020-09-29 17:57:46 -04:00
fsm_not_ent.go sync 2017-10-13 14:36:02 -07:00
fsm_registry_oss.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
fsm_test.go core: improve job deregister error logging 2020-09-21 08:59:03 -07:00
heartbeat.go goimports 2019-01-22 15:44:31 -08:00
heartbeat_test.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
job_endpoint.go Allow job Version to start at non-zero value (#9071) 2020-10-12 13:59:48 -04:00
job_endpoint_hook_connect.go consul/connect: dynamically select envoy sidecar at runtime 2020-10-13 09:14:12 -05:00
job_endpoint_hook_connect_test.go consul/connect: remove envoy dns option from gateway proxy config 2020-08-24 09:11:55 -05:00
job_endpoint_hook_expose_check.go consul/connect: validate group network on expose port injection 2020-09-14 10:25:03 -05:00
job_endpoint_hook_expose_check_test.go consul/connect: validate group network on expose port injection 2020-09-14 10:25:03 -05:00
job_endpoint_hooks.go core: add semver constraint 2019-11-19 08:40:19 -08:00
job_endpoint_oss.go Allow job Version to start at non-zero value (#9071) 2020-10-12 13:59:48 -04:00
job_endpoint_test.go add scaling policy type 2020-09-29 17:57:46 -04:00
leader.go failed core jobs should not have follow-ups (#8682) 2020-08-18 16:48:43 -04:00
leader_oss.go include pro tag in serveral oss.go files 2020-02-10 15:56:14 -05:00
leader_test.go Merge branch 'master' into f-cc-ingress 2020-08-26 15:31:05 -05:00
merge.go
node_endpoint.go csi: release claims via csi_hook postrun unpublish RPC (#8580) 2020-08-06 14:51:46 -04:00
node_endpoint_test.go csi: release claims via csi_hook postrun unpublish RPC (#8580) 2020-08-06 14:51:46 -04:00
operator_endpoint.go minor tweaks from Ent 2020-07-20 09:25:09 -04:00
operator_endpoint_test.go loosen raft timeout 2020-06-07 16:38:11 -04:00
periodic.go Atomic eval insertion with job (de-)registration 2020-07-14 11:59:29 -04:00
periodic_endpoint.go goimports 2019-01-22 15:44:31 -08:00
periodic_endpoint_test.go csi: fix index maintenance for CSIVolume and CSIPlugin tables (#7049) 2020-03-23 13:58:29 -04:00
periodic_test.go stop periodic dispatch at end of tests (#8111) 2020-06-04 09:15:00 -04:00
plan_apply.go scheduler/reconcile: set FollowupEvalID on lost stop_after_client_disconnect (#8105) (#8138) 2020-06-09 17:13:53 -04:00
plan_apply_not_ent.go sync 2017-10-13 14:36:02 -07:00
plan_apply_pool.go Log reason a plan gets rejected per node. 2017-07-13 17:14:02 -07:00
plan_apply_pool_test.go Enable more linters 2017-09-26 15:26:33 -07:00
plan_apply_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06:00
plan_endpoint.go goimports 2019-01-22 15:44:31 -08:00
plan_endpoint_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06:00
plan_normalization_test.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
plan_queue.go nomad: refactor waitForIndex into SnapshotAfter 2019-05-17 13:30:23 -07:00
plan_queue_test.go nomad: fix test goroutine (#6593) 2019-10-31 08:23:32 -04:00
raft_rpc.go Refactor 2018-02-15 13:59:00 -08:00
regions_endpoint.go server 2018-09-15 16:23:13 -07:00
regions_endpoint_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06:00
rpc.go If leadership fails, consider it handled 2020-05-31 22:06:17 -04:00
rpc_test.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
scaling_endpoint.go add acl validation to Scaling.ListPolicies and Scaling.GetPolicy 2020-03-24 14:39:05 +00:00
scaling_endpoint_test.go state_store/fix the prefix bugs for scaling policies documented in 1a9318 2020-08-27 04:25:37 +00:00
search_endpoint.go csi: CLI for volume status, registration/deregistration and plugin status (#7193) 2020-03-23 13:58:30 -04:00
search_endpoint_oss.go csi: implement volume ACLs (#7339) 2020-03-23 13:59:25 -04:00
search_endpoint_test.go csi: plugin deregistration on plugin job GC (#7502) 2020-03-26 17:07:18 -04:00
serf.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
serf_test.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
server.go consul/connect: add initial support for ingress gateways 2020-08-21 16:21:54 -05:00
server_setup_oss.go oss compoments for multi-vault namespaces 2020-07-24 10:14:59 -04:00
server_test.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
stats_fetcher.go server 2018-09-15 16:23:13 -07:00
stats_fetcher_test.go Simplify Bootstrap logic in tests 2020-03-02 13:47:43 -05:00
status_endpoint.go server 2018-09-15 16:23:13 -07:00
status_endpoint_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06:00
system_endpoint.go server 2018-09-15 16:23:13 -07:00
system_endpoint_test.go tests: swap lib/freeport for tweaked helper/freeport 2019-12-09 08:37:32 -06:00
testing.go consul/connect: add initial support for ingress gateways 2020-08-21 16:21:54 -05:00
timetable.go vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:45:21 -04:00
timetable_test.go fixup! vendor: explicit use of hashicorp/go-msgpack 2020-03-31 09:48:07 -04:00
util.go csi: client RPCs should return wrapped errors for checking (#8605) 2020-08-07 11:01:36 -04:00
util_test.go remove unused dropButLastChannel 2020-02-13 18:56:53 -05:00
vault.go Merge pull request #8524 from hashicorp/b-vault-health-checks 2020-08-11 16:01:07 -04:00
vault_test.go Merge pull request #8524 from hashicorp/b-vault-health-checks 2020-08-11 16:01:07 -04:00
vault_testing.go on leadership establishment, revoke Vault tokens in background 2020-05-21 07:38:27 -04:00
worker.go add create and modify timestamps to evaluations (#5881) 2019-08-07 09:50:35 -07:00
worker_test.go scheduler/reconcile: set FollowupEvalID on lost stop_after_client_disconnect (#8105) (#8138) 2020-06-09 17:13:53 -04:00