MCPcopy
hub / github.com/hashicorp/consul

github.com/hashicorp/consul @v2.0.1 sqlite

repository ↗ · DeepWiki ↗ · release v2.0.1 ↗
29,662 symbols 148,332 edges 3,520 files 8,988 documented · 30%
README

Consul logo Consul

License: BUSL-1.1 Docker Pulls Go Report Card

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

  • Documentation and Tutorials: [https://developer.hashicorp.com/consul]
  • Forum: Discuss

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 - Consul Service Mesh 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 with Transparent Proxy.

  • API Gateway - Consul API Gateway manages access to services within Consul Service Mesh, allow users to define traffic and authorization policies to services deployed within the mesh.

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

  • Dynamic App Configuration - An HTTP API that allows users to store indexed objects within Consul, for storing configuration parameters and application metadata.

Consul runs on Linux, macOS, FreeBSD, Solaris, and Windows and includes an optional browser based UI. 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:

  • Standalone binary install: https://learn.hashicorp.com/collections/consul/get-started-vms
  • Minikube install: https://learn.hashicorp.com/tutorials/consul/kubernetes-minikube
  • Kind install: https://learn.hashicorp.com/tutorials/consul/kubernetes-kind
  • Kubernetes install: https://learn.hashicorp.com/tutorials/consul/kubernetes-deployment-guide
  • Deploy HCP Consul: https://learn.hashicorp.com/tutorials/consul/hcp-gs-deploy

Documentation

Full, comprehensive documentation is available on the Consul website: https://developer.hashicorp.com/consul/docs

Contributing

Thank you for your interest in contributing! Please refer to CONTRIBUTING.md for guidance. For contributions specifically to the browser based UI, please refer to the UI's README.md for guidance.

Extension points exported contracts — how you extend this code

Monitor (Interface)
Monitor provides a mechanism to stream logs using go-hclog InterceptLogger and SinkAdapter. It allows streaming of logs [19 …
logging/monitor/monitor.go
Reconciler (Interface)
Reconciler implements the business logic of a controller. [10 implementers]
internal/controller/controller.go
ConfigWatcher (Interface)
ConfigWatcher is a simple interface to allow dynamic configurations from pluggable sources. [11 implementers]
connect/proxy/config.go
RPC (Interface)
RPC is an interface that an RPC client must implement. This is a helper interface that is implemented by the agent deleg [15 …
agent/checks/check.go
Reconciler (Interface)
Reconciler is the main implementation interface for Controllers. A Reconciler receives any change notifications for conf [10 …
agent/consul/controller/reconciler.go
CARoots (Interface)
CARoots is the interface used to consume updates about the CA root certificates. [43 implementers]
agent/proxycfg/data_sources.go
NetRPC (Interface)
NetRPC reprents an interface for making RPC requests [15 implementers]
agent/rpcclient/common.go
DirectRPC (Interface)
DirectRPC is the interface that needs to be satisifed for AutoConfig to be able to perform direct RPCs against individua [15 …
agent/auto-config/config.go

Core symbols most depended-on inside this repo

Equal
called by 6816
api/watch/watch.go
Fatalf
called by 5609
agent/connect/testing_ca.go
Errorf
called by 4710
sdk/testutil/retry/interface.go
Run
called by 3469
agent/consul/server.go
Error
called by 3318
agent/grpc-internal/handler.go
Len
called by 1761
agent/consul/filter.go
Get
called by 995
agent/cacheshim/cache.go
New
called by 915
agent/structs/structs.go

Shape

Method 14,798
Function 9,994
Struct 3,398
Class 694
Interface 391
TypeAlias 274
FuncType 113

Languages

Go92%
TypeScript8%

Modules by API surface

proto/private/pbconfigentry/config_entry.pb.go1,193 symbols
proto/private/pbpeering/peering.pb.go313 symbols
agent/structs/structs.go272 symbols
proto-public/pbresource/resource.pb.go238 symbols
proto/private/pbconfigentry/config_entry.pb.binary.go218 symbols
agent/structs/acl.go201 symbols
proto/private/pbconfigentry/config_entry.gen.go192 symbols
proto/private/pbservice/service.pb.go158 symbols
agent/agent_test.go152 symbols
agent/consul/state/catalog.go144 symbols
agent/agent_endpoint_test.go142 symbols
agent/agent.go142 symbols

Dependencies from manifests, versioned

cel.dev/exprv0.25.1 · 1×
cloud.google.com/go/auth/oauth2adaptv0.2.8 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
dario.cat/mergov1.0.2 · 1×
fortio.org/dflagv1.5.2 · 1×
fortio.org/fortiov1.54.0 · 1×
fortio.org/logv1.3.0 · 1×
fortio.org/setsv1.0.2 · 1×
fortio.org/versionv1.0.2 · 1×
github.com/Azure/azure-sdk-for-gov68.0.0+incompatible · 1×

For agents

$ claude mcp add consul \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact