Relation endpoints

This page lists all relation endpoints exposed by the HAProxy charm, grouped by role.

Provides

haproxy-route

  • Interface: haproxy-route

  • Supported charms: Any charm implementing the haproxy-route interface

Allows HTTP-based backend charms to register themselves with HAProxy, configuring hosts, paths, ports, load-balancing, health checks, and rewrite rules.

Example haproxy-route integrate command:

juju integrate <charm>:haproxy-route haproxy:haproxy-route

haproxy-route-tcp

  • Interface: haproxy-route-tcp

  • Supported charms: Any charm implementing the haproxy-route-tcp interface

Allows TCP-based backend charms to register themselves with HAProxy using SNI-based routing, with support for TLS termination and health checks.

Example haproxy-route-tcp integrate command:

juju integrate <charm>:haproxy-route-tcp haproxy:haproxy-route-tcp

ingress

  • Interface: ingress

  • Supported charms: Any charm implementing the Traefik-compatible ingress interface

Exposes per-application ingress to charms that use the Traefik-compatible ingress interface, load-balancing traffic across all units of the application.

Example ingress integrate command:

juju integrate <charm>:ingress haproxy:ingress

ingress-per-unit

  • Interface: ingress_per_unit

  • Supported charms: Any charm implementing the Traefik-compatible ingress-per-unit interface

Provides a dedicated ingress URL per unit, rather than per application, for charms that use the Traefik-compatible ingress-per-unit interface.

Example ingress-per-unit integrate command:

juju integrate <charm>:ingress-per-unit haproxy:ingress-per-unit

website

  • Interface: http

  • Supported charms: Any charm implementing the http interface

Legacy interface that exposes HAProxy as an HTTP endpoint to other charms expecting a reverse proxy. Prefer haproxy-route for new integrations.

Example website integrate command:

juju integrate <charm>:reverseproxy haproxy:website

cos-agent

Integrates HAProxy with the Canonical Observability Stack, enabling metrics and log collection via the Grafana Agent.

Example cos-agent integrate command:

juju integrate grafana-agent:juju-info haproxy:cos-agent

Requires

certificates

Requests TLS certificates from a certificate authority charm so HAProxy can serve HTTPS frontends.

Example certificates integrate command:

juju integrate haproxy:certificates self-signed-certificates:certificates

reverseproxy

  • Interface: http

  • Supported charms: Any charm implementing the http interface

Legacy interface allowing backend charms to register themselves as reverse proxy targets. Prefer haproxy-route for new integrations.

Example reverseproxy integrate command:

juju integrate haproxy:reverseproxy <charm>:website

ha

  • Interface: hacluster

  • Supported charms: hacluster

Integrates with the hacluster charm to enable active/passive high-availability using a shared virtual IP address. See Configure high-availability for more details.

Example ha integrate command:

juju integrate haproxy:ha hacluster:ha

receive-ca-certs

  • Interface: certificate_transfer

  • Supported charms: Any charm implementing the certificate_transfer interface

Receives CA certificates from another charm so HAProxy can trust custom certificate authorities when connecting to backends.

Example receive-ca-certs integrate command:

juju integrate haproxy:receive-ca-certs <charm>:send-ca-cert

spoe-auth

Delegates request authentication to an external SPOE agent using OpenID Connect. See HAProxy forward authentication proxy using OpenID Connect for details.

Example spoe-auth integrate command:

juju integrate haproxy:spoe-auth haproxy-spoe-auth:spoe-auth

ddos-protection

Receives DDoS protection policy settings — including rate limits, connection limits, and timeouts — from an external configurator charm. See Enable DDoS protection for more details.

Example ddos-protection integrate command:

juju integrate haproxy:ddos-protection haproxy-ddos-protection-configurator:ddos-protection

haproxy-route-policy

Receives approved routing policy rules from an external policy operator, controlling which backend route requests are permitted.

Example haproxy-route-policy integrate command:

juju integrate haproxy:haproxy-route-policy haproxy-route-policy:haproxy-route-policy

Peers

haproxy-peers

  • Interface: haproxy-peers

  • Supported charms: Internal peer relation, no external charms

Used by HAProxy units to coordinate state with each other, required for correct behavior when multiple units are deployed.