https://github.com/anubhavmishra/envoy-consul-sds
Envoy Consul Service Discovery Service
https://github.com/anubhavmishra/envoy-consul-sds
consul envoy nomad sds
Last synced: 3 months ago
JSON representation
Envoy Consul Service Discovery Service
- Host: GitHub
- URL: https://github.com/anubhavmishra/envoy-consul-sds
- Owner: anubhavmishra
- License: apache-2.0
- Created: 2017-09-03T08:04:41.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2023-05-05T02:39:49.000Z (over 2 years ago)
- Last Synced: 2025-06-06T07:41:01.702Z (5 months ago)
- Topics: consul, envoy, nomad, sds
- Language: Go
- Size: 4.03 MB
- Stars: 68
- Watchers: 8
- Forks: 18
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-nomad - anubhavmishra/envoy-consul-sds - A tutorial on how to get Envoy running on Nomad and using Envoy's SDS(Service Discovery Service) to access Consul API. (Tutorials)
- awesome-nomad - anubhavmishra/envoy-consul-sds - Envoy-consul-sds is a service that implements Envoy's Service Discovery Service API on top of Consul's health endpoint API to enable dynamic service discovery and proxying for applications running on HashiCorp Nomad. (Documentation, examples, demos, and awesome lists)
README
# envoy-consul-sds - Envoy Consul Service Discovery Service
This tutorial is based on [Kelsey Hightower](https://github.com/kelseyhightower)'s [kubernetes-envoy-sds](https://github.com/kelseyhightower/kubernetes-envoy-sds) tutorial but using [Consul](https://consul.io) and [Nomad](https://www.nomadproject.io/).
`envoy-consul-sds` service implements the [Envoy SDS API](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/service_discovery.html#service-discovery-service-sds) on top of [Consul Health Endpoint API](https://www.consul.io/api/health.html). `envoy-consul-sds` service returns a list of healthy endpoints for Envoy to use as upstream backends for a cluster. Each Consul service can be referenced in the Envoy config file by its DNS name.
**NOTE: This project uses [Envoy API v1](https://www.envoyproxy.io/docs/envoy/latest/api-v1/api#). It doesn't use Envoy xDS for configuration. Please read [Envoy API v2](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api) for more information.**
## Goal
In this tutorial we will run Nginx on [Nomad](https://www.nomadproject.io/) and register it in [Consul](https://www.consul.io/). Then we will use Envoy to access Nginx using Consul DNS interface.
The idea is to explore ways [Envoy](https://lyft.github.io/envoy/) can integrate with applications running on Nomad using Consul.
## Tutorial
* [Bootstrap the Nomad Infrastructure on Google Compute Engine](./docs/bootstrap-nomad-google-compute-engine.md)
* [Deploy Envoy Consul Service Discovery Service](./docs/deploy-envoy-consul-sds.md)
* [Deploy Envoy System Job](./docs/deploy-envoy-system-job.md)
* [Deploy Nginx Service](./docs/deploy-nginx-service.md)
* [Clean up](./docs/clean-up.md)