Go to file
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
.changelog Make Raft trailing logs and snapshot timing reloadable (#10129) 2021-05-04 15:36:53 +01:00
.circleci connect: update supported envoy versions to 1.18.2, 1.17.2, 1.16.3, and 1.15.4 (#10101) 2021-04-29 15:22:03 -05:00
.github website: resolve unlinked content (#10087) 2021-04-23 10:51:13 -04:00
acl acl: remove t.Parallel 2020-11-17 12:37:02 -05:00
agent Fixup discovery chain handling in transparent mode (#10168) 2021-05-04 08:45:19 -06:00
api Rename "cluster" config entry to "mesh" (#10127) 2021-04-28 16:13:29 -06:00
bench
build-support xds: ensure that all envoyproxy/go-control-plane protobuf symbols are linked into the final binary (#10131) 2021-04-29 14:58:26 -05:00
command Give descriptive error if auth method not found (#10163) 2021-05-03 13:39:13 -07:00
connect connect/proxy: fix a number of problems with Listener 2021-04-28 17:21:35 -04:00
contributing contributing: add a quick doc on adding new streaming topics. 2021-04-01 17:19:59 -04:00
demo
grafana add readme outlining how to edit and publish 2021-01-12 14:47:11 -08:00
internal state: add a regression test for state store schema 2021-01-15 18:49:55 -05:00
ipaddr
lib lib/ttlcache: never decrease the expiry on update 2021-04-21 15:32:26 -04:00
logging Support Incremental xDS mode (#9855) 2021-04-29 13:54:05 -05:00
proto connect: update centralized upstreams representation in service-defaults (#10015) 2021-04-15 14:21:44 -05:00
sdk Implement traffic redirection exclusion based on proxy config and user-provided values (#10134) 2021-04-29 09:21:15 -07:00
sentinel Allow users to configure either unstructured or JSON logging (#7130) 2020-01-28 17:50:41 -06:00
service_os
snapshot testing: skip slow tests with -short 2020-12-07 13:42:55 -05:00
terraform
test connect: update supported envoy versions to 1.18.2, 1.17.2, 1.16.3, and 1.15.4 (#10101) 2021-04-29 15:22:03 -05:00
testrpc add testrpc.WaitForServiceIntentions to help unflake tests that manipulate intentions (#8867) 2020-10-07 14:20:25 -05:00
tlsutil tlsutil: fix a test for go1.16 2021-04-13 13:31:20 -04:00
types Move RPC router from Client/Server and into BaseDeps (#8559) 2020-08-27 11:23:52 -04:00
ui Update brand assets (#10081) 2021-05-03 16:19:09 +01:00
vendor Make Raft trailing logs and snapshot timing reloadable (#10129) 2021-05-04 15:36:53 +01:00
version changelog: add 1.9.1 entries (#9486) 2021-01-04 11:54:26 -05:00
website Make Raft trailing logs and snapshot timing reloadable (#10129) 2021-05-04 15:36:53 +01:00
.dockerignore
.gitattributes
.gitignore website: remove netlify artifacts and port missing redirects over to new format (#9601) 2021-01-21 10:16:17 -05:00
.golangci.yml xds: remove deprecated usages of xDS (#9602) 2021-02-22 15:00:15 -06:00
.hashibot.hcl hashibot: let hashibot help us more (#7281) 2020-02-19 15:30:27 +01:00
CHANGELOG.md chore: sync changelog entries back from 1.10.0-beta1, 1.9.5, 1.8.10, 1.7.14 (#10054) 2021-04-16 10:53:01 -05:00
GNUmakefile dev: adding a make target to regenerate envoy golden files (#10158) 2021-04-30 11:27:12 -05:00
INTERNALS.md Add contributing dir with Config file checklist (#7017) 2020-01-14 12:24:03 +00:00
LICENSE
NOTICE.md
README.md Added docs link to Learn tutorial for Kind. (#8610) 2020-09-11 17:03:35 -04:00
Vagrantfile
codecov.yml Update all the references in CI and makefile to the bindata file location 2020-10-01 16:19:10 +01:00
go.mod Make Raft trailing logs and snapshot timing reloadable (#10129) 2021-05-04 15:36:53 +01:00
go.sum Make Raft trailing logs and snapshot timing reloadable (#10129) 2021-05-04 15:36:53 +01:00
main.go Add Revision to version CLI output and add JSON support 2020-07-08 16:32:46 -04:00
main_test.go
package-lock.json Add Algolia indexing to CI 2020-06-29 12:14:43 -04:00

README.md

Consul CircleCI Discuss

Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.

Consul provides several key features:

  • Multi-Datacenter - Consul is built to be datacenter aware, and can support any number of regions without complex configuration.

  • Service Mesh/Service Segmentation - Consul Connect enables secure service-to-service communication with automatic TLS encryption and identity-based authorization. Applications can use sidecar proxies in a service mesh configuration to establish TLS connections for inbound and outbound connections without being aware of Connect at all.

  • Service Discovery - Consul makes it simple for services to register themselves and to discover other services via a DNS or HTTP interface. External services such as SaaS providers can be registered as well.

  • Health Checking - Health Checking enables Consul to quickly alert operators about any issues in a cluster. The integration with service discovery prevents routing traffic to unhealthy hosts and enables service level circuit breakers.

  • Key/Value Storage - A flexible key/value store enables storing dynamic configuration, feature flagging, coordination, leader election and more. The simple HTTP API makes it easy to use anywhere.

Consul runs on Linux, Mac OS X, FreeBSD, Solaris, and Windows. A commercial version called Consul Enterprise is also available.

Please note: We take Consul's security and our users' trust very seriously. If you believe you have found a security issue in Consul, please responsibly disclose by contacting us at security@hashicorp.com.

Quick Start

A few quick start guides are available on the Consul website:

Documentation

Full, comprehensive documentation is available on the Consul website:

https://www.consul.io/docs

Contributing

Thank you for your interest in contributing! Please refer to CONTRIBUTING.md for guidance.