EasyHAProxy Ingress Controller
Generated on 19 Feb 2026 from the EasyHAProxy Ingress Controller catalog page
EasyHAProxy is a Kubernetes Ingress Controller and auto-discovery service built on HAProxy, a high-performance, battle-tested load balancer and reverse proxy for TCP and HTTP-based applications. EasyHAProxy automatically detects Kubernetes Ingress resources and configures HAProxy to route HTTP, HTTPS, and TCP traffic — with no manual HAProxy configuration required. It supports automatic SSL certificate issuance via Let’s Encrypt (ACME), custom TLS certificates, custom error pages, and extends HAProxy’s capabilities through plugins such as JWT validation, IP whitelisting, and Cloudflare support.
Getting started is straightforward: enable EasyHAProxy from the DigitalOcean Marketplace, point a Load Balancer to your cluster, and add spec.ingressClassName: easyhaproxy to your Ingress resources.
Software Included
| Package | Version | License |
|---|---|---|
| haproxy | 3.3.3 | GPL2 |
Creating an App using the Control Panel
Click the Deploy to DigitalOcean button to install a Kubernetes 1-Click Application. If you aren’t logged in, this link will prompt you to log in with your DigitalOcean account.
Creating an App using the API
In addition to creating EasyHAProxy Ingress Controller using the control panel, you can also use the DigitalOcean API. As an example, to create a 3 node DigitalOcean Kubernetes cluster made up of Basic Droplets in the SFO2 region, you can use the following doctl command. You need to authenticate with doctl with your API access token and replace the $CLUSTER_NAME variable with the chosen name for your cluster in the command below.
doctl kubernetes clusters create --size s-4vcpu-8gb $CLUSTER_NAME --1-clicks easyhaproxyGetting Started After Deploying EasyHAProxy Ingress Controller
After enabling EasyHAProxy, you must manually create a DigitalOcean Load Balancer pointing to your Kubernetes cluster — EasyHAProxy does not create one automatically. Here are the instructions.
How to Set Up Your Application for EasyHAProxy
Add spec.ingressClassName: easyhaproxy to your application’s Ingress resource:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
namespace: example
spec:
ingressClassName: easyhaproxy
rules:
- host: example.org
http:
paths:
- backend:
service:
name: example-service
port:
number: 8080
pathType: ImplementationSpecific
Backward compatibility: The annotation
kubernetes.io/ingress.class: easyhaproxy-ingressis still supported but deprecated. Usespec.ingressClassNamefor new deployments.
Troubleshooting
Verify EasyHAProxy is Running
Check that the pod is running and review logs:
kubectl get pods -n easyhaproxy
kubectl logs -n easyhaproxy -l app=easyhaproxy --tail=100
Test with a Simple HTTP Server
Install the Static HTTP Server to verify EasyHAProxy is routing traffic correctly:
helm repo add byjg https://opensource.byjg.com/helm
helm repo update
helm upgrade --install mysite byjg/static-httpserver \
--namespace default \
--set "ingress.hosts={www.example.org,example.org}" \
--set parameters.title=Welcome
EasyHAProxy Container Not Starting
EasyHAProxy is designed for single-replica deployment. In the default DigitalOcean Marketplace configuration (service.create: true), it runs as a standard Deployment and can be scheduled on any available node. If the pod is not starting:
- Check pod events:
kubectl describe pod -n easyhaproxy -l app=easyhaproxy - Verify the Load Balancer is properly configured.
- Reinstall using:
helm upgrade --install easyhaproxy byjg/easyhaproxy --namespace easyhaproxy --set service.create=true