Hi hashicorp team,
I work at eBay in Amsterdam and I have written a zero-conf consul aware HTTP(S) load-balancer in Go which can be used instead of consul-template + haproxy/varnish/apache/nginx. It builds its routing table from host/path prefixes the services publish via tags and the service status. Once a change is detected it switches the routing table dynamically without restart. It also supports canary testing by routing N% of traffic to a variable number of instances of a service.
https://github.com/eBay/fabio
We're using it to run all of marktplaats.nl (> 5-10k req/sec peak) through it and parts of kijiji.it which are eBay classifieds sites in the Netherlands and Italy.
The code has been under development for the last 5 months and runs now in production and I was able to open-source it a couple of days ago.
consul has quickly become our state and coordination backend for our micro services architecture for multiple different platforms in several countries. We're very happy with the quality and ease-of-use of your products and I'm personally looking forward to testing nomad.
It would be cool if you could list the project on your consul tools page. Please let me know whether it meets your standards and/or expectations for tools to be listed there. Feel free to ask questions.
Add support for an X-Consul-Token HTTP request header to specify the
token with which this request should be fulfilled. The header would have
precedence over the responding Agent's default token, but would have
lower precedence than a token specified in the query string.
adding consul-do Do something based on leadership status
https://github.com/zeroXten/consul-do
From README.md
Useful for running cronjobs in HA mode.
Run something like this on two or more servers:
* * * * * /usr/bin/consul-do JOB-1 $(/bin/hostname) && /path/to/job1
*/10 * * * * /usr/bin/consul-do JOB-2 $(/bin/hostname) && /path/to/job2
Only one of the servers will be elected leader and will therefore run the job. Should the leader fail, a follower will take over.