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.

Deploy to DO

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 easyhaproxy

Getting 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-ingress is still supported but deprecated. Use spec.ingressClassName for 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:

  1. Check pod events: kubectl describe pod -n easyhaproxy -l app=easyhaproxy
  2. Verify the Load Balancer is properly configured.
  3. Reinstall using: helm upgrade --install easyhaproxy byjg/easyhaproxy --namespace easyhaproxy --set service.create=true

We can't find any results for your search.

Try using different keywords or simplifying your search terms.