Public | Automated Build

Last pushed: 2 years ago
Short Description
Short description is empty for this repo.
Full Description

HAProxy Firehose Router

This is a HAProxy Docker image for Firehose. It is configured via keys in etcd.


The HAProxy configuration is dynamically configured through confd. Every 30 seconds (configurable through CONFD_INTERVAL) it will look at certain keys in etcd. If there are keys changes it will update the configuration and reload HAProxy.


  • CONFD_INTERVAL - The interval in seconds to check for key changes.
  • CONFD_NODE - The backend servers address (defaults to
  • CONFD_BACKEND - The backend type can be etcd or consul (defaults to etcd).


The HAProxy template looks for certain keys in etcd. Some are optional and some are required.

  • /firehose/services/rainbows/* Required - The keys under this directory are used as the upstream servers. This is typically populated by registrator.
  • /firehose/put_allow/* Required - The keys under this directory are used to allow PUT calls to Firehose. The key name can be anything. The value of the key should be a single IP or subnet in CIDR format. Examples of this would be or
  • /firehose/healthcheck_path Required - This key should be set to the Firehose health check path. It is used by HAProxy to determine if a particular backend is healthy. The key is typically set to /firehose-healthcheck.
  • /firehose/syslog_endpoint Optional - This is the syslog endpoint to log to such as
  • /firehose/accept_proxy Optional - If this key exists (can be set to anything) then we enable accept-proxy on the HAProxy frontend. See for more ifnormation. This is typically used with AWS ELB proxy protocol support to pass through client IP addresses to HAProxy for authorization.
Docker Pull Command
Source Repository