Ingress controller implementation for HAProxy loadbalancer.
HAProxy Ingress is a Kubernetes ingress controller: it configures a HAProxy instance to route incoming requests from an external network to the in-cluster applications. The routing configurations are built reading specs from the Kubernetes cluster. Updates made to the cluster are applied on the fly to the HAProxy instance.
Documentation:
- Getting started guide: /docs/getting-started/
- Global and per ingress/service configuration keys: /docs/configuration/keys/
- Command-line options: /docs/configuration/command-line/
Supported versions:
HAProxy Ingress | Embedded HAProxy |
Supported Kubernetes |
External HAProxy (*) |
---|---|---|---|
v0.13 (latest) |
2.3 |
1.19+ |
2.2+ |
v0.12 |
2.2 |
1.18 - 1.21 |
2.0+ |
v0.10 |
2.0 |
1.8 - 1.21 |
- |
- Beta quality versions (
beta
/canary
tags) has some new, but battle tested features, usually running on some of our production clusters - Development versions (
alpha
/snapshot
tags) has major changes with few tests, usually not recommended for production - (*) Minimum supported HAProxy version if using an external HAProxy instance
Community:
- Slack: We're in the #haproxy-ingress channel on Kubernetes Slack. Take an invite here if not subscribed yet
- Users mailing list: Announcements and discussion on a mailing list
- Stack Overflow: Practical questions and curated answers
Building:
mkdir -p $GOPATH/src/github.com/jcmoraisjr
cd $GOPATH/src/github.com/jcmoraisjr
git clone https://github.com/jcmoraisjr/haproxy-ingress.git
cd haproxy-ingress
make
The following make
targets are currently supported:
install
: rungo install
which saves some building time.build
(default): compiles HAProxy Ingress and generates an ELF (Linux) executable atrootfs/haproxy-ingress-controller
despite the source platform.test
: run unit testsimage
: generates a Docker image taggedlocalhost/haproxy-ingress:latest