open-consul/agent
Freddy ec38cf3206
Fixup discovery chain handling in transparent mode (#10168)
Co-authored-by: R.B. Boyer <4903+rboyer@users.noreply.github.com>

Previously we would associate the address of a discovery chain target
with the discovery chain's filter chain. This was broken for a few reasons:

- If the upstream is a virtual service, the client proxy has no way of
dialing it because virtual services are not targets of their discovery
chains. The targets are distinct services. This is addressed by watching
the endpoints of all upstream services, not just their discovery chain
targets.

- If multiple discovery chains resolve to the same target, that would
lead to multiple filter chains attempting to match on the target's
virtual IP. This is addressed by only matching on the upstream's virtual
IP.

NOTE: this implementation requires an intention to the redirecting
virtual service and not just to the final destination. This is how
we can know that the virtual service is an upstream to watch.

A later PR will look into traversing discovery chains when computing
upstreams so that intentions are only required to the discovery chain
targets.
2021-05-04 08:45:19 -06:00
..
ae testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
auto-config config: improve the interface of Load 2021-01-27 17:34:43 -05:00
cache cache: Fix bug where connection errors can cause early cache expiry (#9979) 2021-04-08 11:11:15 +01:00
cache-types rpcclient/health: integrate submatview.Store into rpcclient/health 2021-04-27 19:03:16 -04:00
checks add http2 ping health checks (#8431) 2021-04-09 15:12:10 -04:00
config config: default UseStreamingBackend to true 2021-04-28 18:58:02 -04:00
connect Replace CertURI.Authorize() calls. 2021-03-15 18:06:04 -06:00
consul Make Raft trailing logs and snapshot timing reloadable (#10129) 2021-05-04 15:36:53 +01:00
debug chore: upgrade to gopsutil/v3 (#9118) 2020-11-06 20:48:38 -05:00
dns config: move NodeName validation to config validation 2020-08-17 17:25:02 -04:00
exec
grpc Set gRPC keepalives to mirror Yamux keepalive behaviour 2021-04-07 14:09:22 +01:00
local local: default to the agent token instead of the user token 2021-02-19 18:35:08 -05:00
metadata Refactor to call non-voting servers read replicas (#9191) 2020-11-17 10:53:57 -05:00
mock checks: when a service does not exists in an alias, consider it failing (#7384) 2020-06-04 14:50:52 +02:00
pool introduce certopts (#9606) 2021-03-22 10:16:41 +01:00
proxycfg Fixup discovery chain handling in transparent mode (#10168) 2021-05-04 08:45:19 -06:00
router Correcting the changed function name in comment 2021-02-06 20:23:40 -05:00
routine-leak-checker introduce certopts (#9606) 2021-03-22 10:16:41 +01:00
rpc/subscribe structs: remove EnterpriseMeta.GetNamespace 2021-03-09 15:17:26 -05:00
rpcclient/health submatview: only return materializer from getEntry 2021-04-27 19:03:17 -04:00
structs Fixup discovery chain handling in transparent mode (#10168) 2021-05-04 08:45:19 -06:00
submatview submatview: fix godoc and comment typos 2021-04-28 12:27:38 -04:00
systemd
token token: OSS support for enterprise tokens 2020-08-31 15:10:15 -04:00
uiserver auto-updated agent/uiserver/bindata_assetfs.go from commit 211bc824a 2021-05-03 15:24:01 +00:00
xds Fixup discovery chain handling in transparent mode (#10168) 2021-05-04 08:45:19 -06:00
acl.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
acl_endpoint.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
acl_endpoint_legacy.go api: rename HTTPServer to HTTPHandlers 2020-09-18 17:38:23 -04:00
acl_endpoint_legacy_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
acl_endpoint_test.go Add fields to the /acl/auth-methods endpoint. (#9741) 2021-02-17 08:16:57 -08:00
acl_test.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
agent.go Make Raft trailing logs and snapshot timing reloadable (#10129) 2021-05-04 15:36:53 +01:00
agent_endpoint.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
agent_endpoint_test.go Fixup tests 2021-04-13 16:08:41 -06:00
agent_oss.go agent/token: Move token persistence out of agent 2020-08-31 15:00:34 -04:00
agent_test.go health: create health.Client in Agent.New 2021-04-27 19:03:16 -04:00
apiserver.go agent: fix bug with multiple listeners 2020-11-18 13:03:29 -05:00
apiserver_test.go agent: add apiServers type for managing HTTP servers 2020-09-03 13:40:12 -04:00
catalog_endpoint.go http: Check HTTPUseCache in a single place 2020-12-11 14:03:47 -05:00
catalog_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
check.go
config_endpoint.go connect: intentions are now managed as a new config entry kind "service-intentions" (#8834) 2020-10-06 13:24:05 -05:00
config_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
connect_auth.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
connect_ca_endpoint.go Add capability for the v1/connect/ca/roots endpoint to return a PEM encoded certificate chain (#8774) 2020-10-09 10:43:33 -04:00
connect_ca_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
coordinate_endpoint.go api: rename HTTPServer to HTTPHandlers 2020-09-18 17:38:23 -04:00
coordinate_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
denylist.go Replace whitelist/blacklist terminology with allowlist/denylist (#7971) 2020-05-29 14:19:16 -04:00
denylist_test.go Replace whitelist/blacklist terminology with allowlist/denylist (#7971) 2020-05-29 14:19:16 -04:00
discovery_chain_endpoint.go http: Check HTTPUseCache in a single place 2020-12-11 14:03:47 -05:00
discovery_chain_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
dns.go Do not filter tags unless req.TagFilter is set 2021-02-10 10:36:11 +01:00
dns_oss.go Update gateway-services-nodes API endpoint to allow multiple addresses 2020-06-24 16:35:23 -05:00
dns_test.go Avoid failing test due to undiscoverable node name 2021-04-12 09:26:55 -06:00
enterprise_delegate_oss.go
event_endpoint.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
event_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
federation_state_endpoint.go api: rename HTTPServer to HTTPHandlers 2020-09-18 17:38:23 -04:00
health_endpoint.go rpcclient/health: move all backend routing logic to client 2021-04-27 19:03:16 -04:00
health_endpoint_test.go api: ensure v1/health/ingress/:service endpoint works properly when streaming is enabled (#9967) 2021-04-05 13:23:00 -05:00
http.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
http_decode_test.go Add support for configuring TLS ServerName for health checks 2021-03-16 18:16:44 -04:00
http_oss.go http: fix a bug that would cause runtimeConfig to be cached 2021-03-24 14:48:18 -04:00
http_oss_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
http_register.go Switch to using the external autopilot module 2020-11-09 09:22:11 -05:00
http_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
intentions_endpoint.go agent: allow the /v1/connect/intentions/match endpoint to use the agent cache (#8875) 2020-10-08 14:51:53 -05:00
intentions_endpoint_oss_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
intentions_endpoint_test.go server: deletions of intentions by name using the intention API is now idempotent (#9278) 2021-01-04 11:27:00 -06:00
keyring.go agent: Move setupKeyring functions to keyring.go 2020-08-13 11:58:21 -04:00
keyring_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
kvs_endpoint.go Add content type headers to raw KV responses 2021-04-14 16:20:22 -04:00
kvs_endpoint_test.go Add content type headers to raw KV responses 2021-04-14 16:20:22 -04:00
nodeid.go chore: upgrade to gopsutil/v3 (#9118) 2020-11-06 20:48:38 -05:00
nodeid_test.go testing: Remove all the defer os.Removeall 2020-08-14 19:58:53 -04:00
notify.go
notify_test.go
operator_endpoint.go Switch to using the external autopilot module 2020-11-09 09:22:11 -05:00
operator_endpoint_oss.go Add a CLI command for retrieving the autopilot configuration. (#9142) 2020-11-11 13:19:02 -05:00
operator_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
prepared_query_endpoint.go http: Check HTTPUseCache in a single place 2020-12-11 14:03:47 -05:00
prepared_query_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
reload.go Refactor uiserver to separate package, cleaner Reloading 2020-10-01 11:32:25 +01:00
remote_exec.go
remote_exec_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
retry_join.go
retry_join_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
service_checks_test.go agent: move deprecated AddServiceFromSource to a test file 2021-01-25 17:25:03 -05:00
service_manager.go Replace TransparentProxy bool with ProxyMode 2021-04-12 09:35:14 -06:00
service_manager_test.go Replace TransparentProxy bool with ProxyMode 2021-04-12 09:35:14 -06:00
session_endpoint.go api: rename HTTPServer to HTTPHandlers 2020-09-18 17:38:23 -04:00
session_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
setup.go Make Raft trailing logs and snapshot timing reloadable (#10129) 2021-05-04 15:36:53 +01:00
sidecar_service.go agent: move deprecated AddServiceFromSource to a test file 2021-01-25 17:25:03 -05:00
sidecar_service_test.go agent: move deprecated AddServiceFromSource to a test file 2021-01-25 17:25:03 -05:00
signal_unix.go
signal_windows.go
snapshot_endpoint.go api: rename HTTPServer to HTTPHandlers 2020-09-18 17:38:23 -04:00
snapshot_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
status_endpoint.go api: rename HTTPServer to HTTPHandlers 2020-09-18 17:38:23 -04:00
status_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
streaming_test.go Added testing of GRPC with TLS combinations 2021-01-06 22:20:23 +01:00
testagent.go introduce certopts (#9606) 2021-03-22 10:16:41 +01:00
testagent_test.go config: Make Source an interface 2020-08-10 12:46:28 -04:00
translate_addr.go
txn_endpoint.go Add support for configuring TLS ServerName for health checks 2021-03-16 18:16:44 -04:00
txn_endpoint_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
ui_endpoint.go Merge pull request #10016 from hashicorp/topology-update 2021-04-15 14:11:23 -06:00
ui_endpoint_oss_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
ui_endpoint_test.go Update viz endpoint to include topology from intentions 2021-04-14 10:20:15 -06:00
user_event.go subscribe: Add steps to rpc/subscribe tests 2020-10-08 15:38:01 -04:00
user_event_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
util.go
util_test.go testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
watch_handler.go watch: Allow args from different types 2020-07-10 17:18:32 -04:00
watch_handler_test.go watch: Allow args from different types 2020-07-10 17:18:32 -04:00