open-consul/agent/structs
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
..
acl.go Move static token resolution into the ACLResolver (#10013) 2021-04-14 12:39:35 -04:00
acl_cache.go
acl_cache_test.go
acl_legacy.go
acl_legacy_test.go
acl_oss.go
acl_test.go
auto_encrypt.go
autopilot.go
autopilot_oss.go
catalog.go
check_definition.go add http2 ping health checks (#8431) 2021-04-09 15:12:10 -04:00
check_definition_test.go add http2 ping health checks (#8431) 2021-04-09 15:12:10 -04:00
check_type.go add http2 ping health checks (#8431) 2021-04-09 15:12:10 -04:00
config_entry.go Rename "cluster" config entry to "mesh" (#10127) 2021-04-28 16:13:29 -06:00
config_entry_discoverychain.go
config_entry_discoverychain_oss.go
config_entry_discoverychain_test.go
config_entry_gateways.go
config_entry_gateways_test.go
config_entry_intentions.go
config_entry_intentions_oss.go
config_entry_intentions_test.go
config_entry_mesh.go Rename cluster config files to mesh as well (#10148) 2021-04-28 18:15:26 -06:00
config_entry_mesh_oss.go Rename cluster config files to mesh as well (#10148) 2021-04-28 18:15:26 -06:00
config_entry_oss.go
config_entry_oss_test.go
config_entry_test.go Rename "cluster" config entry to "mesh" (#10127) 2021-04-28 16:13:29 -06:00
connect.go
connect_ca.go
connect_ca_test.go
connect_oss.go
connect_proxy_config.go Merge pull request #10016 from hashicorp/topology-update 2021-04-15 14:11:23 -06:00
connect_proxy_config_oss.go Split Upstream.Identifier() so non-empty namespace is always prepended in ent (#10031) 2021-04-15 13:54:40 -06:00
connect_proxy_config_test.go Fixup tests 2021-04-13 16:08:41 -06:00
discovery_chain.go Fixup discovery chain handling in transparent mode (#10168) 2021-05-04 08:45:19 -06:00
discovery_chain_oss.go
errors.go
federation_state.go
identity.go
intention.go Augment intention decision summary with DefaultAllow mode 2021-04-12 19:32:09 -06:00
intention_oss.go
intention_test.go
operator.go
prepared_query.go
prepared_query_test.go
protobuf_compat.go
sanitize_oss.go
service_definition.go
service_definition_test.go
snapshot.go
structs.go Update viz endpoint to include topology from intentions 2021-04-14 10:20:15 -06:00
structs_filtering_test.go connect: update centralized upstreams representation in service-defaults (#10015) 2021-04-15 14:21:44 -05:00
structs_oss.go state: remove unnecessary kind index 2021-04-15 17:37:28 -04:00
structs_oss_test.go
structs_test.go
system_metadata.go
testing.go
testing_catalog.go
testing_connect_proxy_config.go
testing_intention.go
testing_service_definition.go
txn.go