jcmoraisjr / haproxy-ingress

HAProxy Ingress
https://haproxy-ingress.github.io
Apache License 2.0
1.04k stars 270 forks source link
hacktoberfest haproxy ingress-controller kubernetes

HAProxy Ingress controller

Ingress controller implementation for HAProxy loadbalancer.

build helm

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.

Use HAProxy Ingress

Documentation:

Supported versions:

HAProxy Ingress Embedded
HAProxy
Supported
Kubernetes
External
HAProxy (*)
v0.15 (snapshot) 2.6 1.19+ 2.2+
v0.14 (latest) 2.4 1.19+ 2.2+
v0.13 2.3 up to v0.13.10
2.4 on v0.13.11+
1.19+ 2.2+
v0.12 (critical fixes) 2.2 1.18 - 1.21 2.0+

Community:

Develop HAProxy Ingress

The instructions below are valid for v0.14 and newer. See v0.13 branch for older versions.

Building and running locally:

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 run

Dependencies to run locally:

Building container image:

Fast build - cross compile for linux (locally) and generate localhost/haproxy-ingress:latest:

make image

Official image - build in a multi-stage Dockerfile and generate localhost/haproxy-ingress:latest:

make docker-build

Deploy local image using Helm:

helm repo add haproxy-ingress https://haproxy-ingress.github.io/charts
helm install haproxy-ingress haproxy-ingress/haproxy-ingress\
  --create-namespace --namespace=ingress-controller\
  --set controller.image.repository=localhost/haproxy-ingress\
  --set controller.image.tag=latest\
  --set controller.image.pullPolicy=Never

make options:

The following make variables are supported:

The following make targets are supported: