README

Consul Build Status

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.

Expand ▾ Collapse ▴

Documentation

The Go Gopher

There is no documentation for this package.

Source Files

Directories

Path Synopsis
acl
agent
agent/ae Package ae provides tools to synchronize state between local and remote consul servers.
agent/cache Package cache provides caching features for data from a Consul server.
agent/cache-types Code generated by mockery v1.0.0
agent/checks
agent/config
agent/connect
agent/connect/ca
agent/connect/ca/plugin
agent/consul The snapshot endpoint is a special non-RPC endpoint that supports streaming for taking and restoring snapshots for disaster recovery.
agent/consul/autopilot
agent/consul/fsm
agent/consul/prepared_query
agent/consul/state
agent/debug
agent/exec
agent/local
agent/metadata
agent/mock
agent/pool
agent/proxycfg Package proxycfg provides a component that monitors local agent state for Connect proxy service registrations and maintains the necessary cache state for those proxies locally.
agent/proxyprocess Package proxy contains logic for agent interaction with proxies, primarily "managed" proxies.
agent/router Package servers provides a Manager interface for Manager managed metadata.Server objects.
agent/structs
agent/systemd
agent/token
agent/xds Package xds provides an impementation of a gRPC service that exports Envoy's xDS API for config discovery.
api
command
command/acl
command/acl/agenttokens
command/acl/bootstrap
command/acl/policy
command/acl/policy/create
command/acl/policy/delete
command/acl/policy/list
command/acl/policy/read
command/acl/policy/update
command/acl/rules
command/acl/token
command/acl/token/clone
command/acl/token/create
command/acl/token/delete
command/acl/token/list
command/acl/token/read
command/acl/token/update
command/agent
command/catalog
command/catalog/list/dc
command/catalog/list/nodes
command/catalog/list/services
command/connect
command/connect/ca
command/connect/ca/get
command/connect/ca/set
command/connect/envoy
command/connect/proxy
command/debug
command/event
command/exec
command/flags
command/forceleave
command/helpers
command/info
command/intention
command/intention/check
command/intention/create
command/intention/delete
command/intention/finder
command/intention/get
command/intention/match
command/join
command/keygen
command/keyring
command/kv
command/kv/del
command/kv/exp
command/kv/get
command/kv/imp
command/kv/impexp
command/kv/put
command/leave
command/lock
command/maint
command/members
command/monitor
command/operator
command/operator/autopilot
command/operator/autopilot/get
command/operator/autopilot/set
command/operator/raft
command/operator/raft/listpeers
command/operator/raft/removepeer
command/reload
command/rtt
command/services
command/services/deregister
command/services/register
command/snapshot
command/snapshot/inspect
command/snapshot/restore
command/snapshot/save
command/tls
command/tls/ca
command/tls/ca/create
command/tls/cert
command/tls/cert/create
command/validate
command/version
command/watch
connect
connect/certgen certgen: a tool for generating test certificates on disk for use as test-fixtures and for end-to-end testing and local development.
connect/proxy
ipaddr
lib
lib/file
lib/freeport Package freeport provides a helper for allocating free ports across multiple processes on the same machine.
lib/semaphore Package semaphore implements a simple semaphore that is based on golang.org/x/sync/semaphore but doesn't support weights.
logger
sentinel
service_os
snapshot The archive utilities manage the internal format of a snapshot, which is a tar file with the following contents: meta.json - JSON-encoded snapshot metadata from Raft state.bin - Encoded snapshot data from Raft SHA256SUMS - SHA-256 sums of the above two files The integrity information is automatically created and checked, and a failure there just looks like an error to the caller.
testrpc
testutil
testutil/retry Package retry provides support for repeating operations in tests.
tlsutil
types
version
watch