All Projects → jippi → consul-envoy

jippi / consul-envoy

Licence: MIT License
Consul to Envoy API listener

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to consul-envoy

vault-consul-swarm
Deploy Vault and Consul with Docker Swarm
Stars: ✭ 20 (-42.86%)
Mutual labels:  consul, hashicorp, hashicorp-consul
consul-templaterb
consul-template-like with erb (ruby) template expressiveness
Stars: ✭ 65 (+85.71%)
Mutual labels:  consul, hashicorp, hashicorp-consul
sample-envoy-proxy
custom implementation of service discovery with envoy and inter-service communication for spring-boot applications
Stars: ✭ 29 (-17.14%)
Mutual labels:  routing, envoy
hookpick
A tool to manage some operational concepts of Hashicorp Vault
Stars: ✭ 83 (+137.14%)
Mutual labels:  consul, hashicorp
nomad-box
Nomad Box - Simple Terraform-powered setup to Azure of clustered Consul, Nomad and Traefik Load Balancer that runs Docker/GoLang/Java workloads. NOTE: Only suitable in dev environments at the moment until I learn more Terraform, Consul, Nomad, Vault :P
Stars: ✭ 18 (-48.57%)
Mutual labels:  consul, hashicorp
vault-consul-kubernetes
vault + consul on kubernetes
Stars: ✭ 60 (+71.43%)
Mutual labels:  consul, hashicorp
hashicorp-labs
Deploy locally on VM an Hashicorp cluster formed by Vault, Consul and Nomad. Ready for deploying and testing your apps.
Stars: ✭ 32 (-8.57%)
Mutual labels:  consul, hashicorp
vault-consul-docker
Vault + Consul + Docker
Stars: ✭ 75 (+114.29%)
Mutual labels:  hashicorp, hashicorp-consul
Hashi Helper
Disaster Recovery and Configuration Management for Consul and Vault
Stars: ✭ 155 (+342.86%)
Mutual labels:  consul, hashicorp
meshery
Meshery, the cloud native manager
Stars: ✭ 1,587 (+4434.29%)
Mutual labels:  consul, envoy
Envoy-Pilot
Envoy xDS Server with Consul
Stars: ✭ 72 (+105.71%)
Mutual labels:  consul, envoy
Ansible Vault
🔑 Ansible role for Hashicorp Vault
Stars: ✭ 189 (+440%)
Mutual labels:  consul, hashicorp
Marathon Consul
Integrates Marathon apps with Consul service discovery.
Stars: ✭ 174 (+397.14%)
Mutual labels:  consul, hashicorp
caravan
Caravan is your platform builder based on the HashiCorp stack.
Stars: ✭ 33 (-5.71%)
Mutual labels:  hashicorp, hashicorp-consul
Replicator
Automated Cluster and Job Scaling For HashiCorp Nomad
Stars: ✭ 166 (+374.29%)
Mutual labels:  consul, hashicorp
local-hashicorp-stack
Local Hashicorp Stack for DevOps Development without Hypervisor or Cloud
Stars: ✭ 23 (-34.29%)
Mutual labels:  consul, hashicorp
Hashi Up
bootstrap HashiCorp Consul, Nomad, or Vault over SSH < 1 minute
Stars: ✭ 113 (+222.86%)
Mutual labels:  consul, hashicorp
Layer5
Layer5, the service mesh company, representing every service mesh
Stars: ✭ 137 (+291.43%)
Mutual labels:  consul, envoy
flightpath
XDS to run Envoy as an edge proxy for Consul Connect.
Stars: ✭ 15 (-57.14%)
Mutual labels:  consul, envoy
vault-load-testing
Automated load tests for Vault and Consul using the locust.io Python framework
Stars: ✭ 44 (+25.71%)
Mutual labels:  consul, hashicorp

About consul-envoy

This project aim to be a quick'n'dirty way to get Envoy and Consul talking nicely, so any Consul service URL can be routed through evnoy.

The current code allows to route *.service.consul to the backends availble in the Consul catalog

Currently RDS - Route discovery service, SDS - Service discovery service and CDS - Cluster discovery service is implemented

Project goal

Making using Envoy with Consul as easy as fabio and traefik, possible exposting additional configuration to envoy through Consul Service tags (similar to fabio urlprefix-* configuration).

Configuration

  • PORT (env) - the HTTP port to listen on (example: 8877)
  • CONSUL_* (env) - the default Consul environment variables is used when connecting to the Consul cluster. (e.g. CONSUL_HTTP_ADDR)

Building

make requirements to install Go Vendor and fetch dependencies make install to build the binary (consul-envoy) into ${GOPATH}/bin make dist to build platform specific binary into ./build/consul-enovy-${OS}-${ARCH}

Example envoy config

The configuration assume that this project is named envoy-consul in the Consul catalog and listens on port 8877

{
    "listeners": [
        {
            "address": "tcp://0.0.0.0:80",
            "filters": [
                {
                    "name": "http_connection_manager",
                    "config": {
                        "codec_type": "auto",
                        "stat_prefix": "http",
                        "use_remote_address": true,
                        "rds": {
                            "route_config_name": "default",
                            "refresh_delay_ms": 10000,
                            "cluster": "rds_http"
                        },
                        "filters": [
                            {
                                "name": "router",
                                "config": {}
                            }
                        ]
                    }
                }
            ]
        },
    ],
    "admin": {
        "access_log_path": "/dev/null",
        "address": "tcp://0.0.0.0:8001"
    },
    "cluster_manager": {
        "cds": {
            "cluster": {
                "name": "cds",
                "type": "logical_dns",
                "lb_type": "round_robin",
                "connect_timeout_ms": 1000,
                "hosts": [
                    {
                        "url": "tcp://consul-envoy.service.consul:8877"
                    }
                ]
            }
        },
        "sds": {
            "refresh_delay_ms": 5000,
            "cluster": {
                "name": "sds",
                "type": "logical_dns",
                "lb_type": "round_robin",
                "connect_timeout_ms": 1000,
                "hosts": [
                    {
                        "url": "tcp://consul-envoy.service.consul:8877"
                    }
                ]
            }
        },
        "clusters": [
            {
                "name": "rds_http",
                "type": "logical_dns",
                "lb_type": "round_robin",
                "connect_timeout_ms": 1000,
                "hosts": [
                    {
                        "url": "tcp://consul-envoy.service.consul:8877"
                    }
                ]
            }
        ]
    }
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].