Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure. https://www.consul.io
Go to file
Freddy fdd10dd8b8
Expose HTTP-based paths through Connect proxy (#6446)
Fixes: #5396

This PR adds a proxy configuration stanza called expose. These flags register
listeners in Connect sidecar proxies to allow requests to specific HTTP paths from outside of the node. This allows services to protect themselves by only
listening on the loopback interface, while still accepting traffic from non
Connect-enabled services.

Under expose there is a boolean checks flag that would automatically expose all
registered HTTP and gRPC check paths.

This stanza also accepts a paths list to expose individual paths. The primary
use case for this functionality would be to expose paths for third parties like
Prometheus or the kubelet.

Listeners for requests to exposed paths are be configured dynamically at run
time. Any time a proxy, or check can be registered, a listener can also be
created.

In this initial implementation requests to these paths are not
authenticated/encrypted.
2019-09-25 20:55:52 -06:00
.circleci connect: intermediate CA certs generated with the vault provider lack URI SANs (#6491) 2019-09-23 12:04:40 -05:00
.github Update questions issue template directing q's to the forum (#5957) 2019-06-12 09:07:44 -05:00
acl Fix to prevent allowing recursive KV deletions when we shouldn’t 2019-05-22 20:13:30 +00:00
agent Expose HTTP-based paths through Connect proxy (#6446) 2019-09-25 20:55:52 -06:00
api Expose HTTP-based paths through Connect proxy (#6446) 2019-09-25 20:55:52 -06:00
bench
build-support Add support for implementing new requests with protobufs instea… (#6502) 2019-09-20 14:37:22 -04:00
command Expose HTTP-based paths through Connect proxy (#6446) 2019-09-25 20:55:52 -06:00
connect connect: don't colon-hex-encode the AuthorityKeyId and SubjectKeyId fields in connect certs (#6492) 2019-09-23 12:52:35 -05:00
demo demo: Added udp port forwarding 2018-05-30 13:56:56 +09:00
ipaddr Ensure Consul is IPv6 compliant (#5468) 2019-06-04 10:02:38 -04:00
lib connect: remove managed proxies (#6220) 2019-08-09 15:19:30 -04:00
logger log rotation: limit count of rotated log files (#5831) 2019-07-19 15:36:34 -06:00
sdk Nil checks in the testWriter to prevent using a bad testing.TB (#6517) 2019-09-20 17:01:08 -04:00
sentinel Update to use a consulent build tag instead of just ent (#5759) 2019-05-01 11:11:27 -04:00
service_os Changes made : 2018-06-28 21:18:14 -04:00
snapshot Move internal/ to sdk/ (#5568) 2019-03-27 08:54:56 -04:00
terraform terraform: remove modules in repo (#5085) 2019-04-04 16:31:43 -07:00
test Expose HTTP-based paths through Connect proxy (#6446) 2019-09-25 20:55:52 -06:00
testrpc Move internal/ to sdk/ (#5568) 2019-03-27 08:54:56 -04:00
tlsutil connect: don't colon-hex-encode the AuthorityKeyId and SubjectKeyId fields in connect certs (#6492) 2019-09-23 12:52:35 -05:00
types Removes remoteConsuls in favor of the new router. 2017-03-16 16:42:19 -07:00
ui-v2 ui: [bugfix] Tag wrapping on detail pages (#6478) 2019-09-17 17:29:04 +01:00
vendor connect: intermediate CA certs generated with the vault provider lack URI SANs (#6491) 2019-09-23 12:04:40 -05:00
version Release v1.6.1 2019-09-12 19:39:59 +00:00
website Expose HTTP-based paths through Connect proxy (#6446) 2019-09-25 20:55:52 -06:00
.dockerignore Update the scripting 2018-06-14 21:42:47 -04:00
.gitignore connect: Support RSA keys in addition to ECDSA (#6055) 2019-07-30 17:47:39 -04:00
CHANGELOG.md update changelog 2019-09-24 10:05:49 -05:00
GNUmakefile Add support for implementing new requests with protobufs instea… (#6502) 2019-09-20 14:37:22 -04:00
INTERNALS.md docs: correct link to top level agent package (#4750) 2018-10-04 09:15:55 -05:00
LICENSE
NOTICE.md add copyright notice file 2018-07-09 10:58:26 -07:00
README.md Contribution guide (#4704) 2018-10-05 09:06:40 -07:00
Vagrantfile Adds a basic Linux Vagrant setup, stolen from Nomad. 2017-10-06 08:10:12 -07:00
go.mod connect: intermediate CA certs generated with the vault provider lack URI SANs (#6491) 2019-09-23 12:04:40 -05:00
go.sum connect: intermediate CA certs generated with the vault provider lack URI SANs (#6491) 2019-09-23 12:04:40 -05:00
main.go Added Side Effect import for Windows Service 2018-06-18 14:55:11 -04:00
main_test.go

README.md

Consul Build Status Join the chat at https://gitter.im/hashicorp-consul/Lobby

Consul is a tool for service discovery and configuration. Consul is distributed, highly available, and extremely scalable.

Consul provides several key features:

  • 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.

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

  • Service Segmentation - Consul Connect enables secure service-to-service communication with automatic TLS encryption and identity-based authorization.

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

An extensive quick start is viewable on the Consul website:

https://www.consul.io/intro/getting-started/install.html

Documentation

Full, comprehensive documentation is viewable on the Consul website:

https://www.consul.io/docs

Contributing

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