Relation endpoints¶
This page lists all relation endpoints exposed by the HAProxy charm, grouped by role.
Provides¶
haproxy-route¶
Interface:
haproxy-routeSupported charms: Any charm implementing the
haproxy-routeinterface
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-tcpSupported charms: Any charm implementing the
haproxy-route-tcpinterface
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:
ingressSupported charms: Any charm implementing the Traefik-compatible
ingressinterface
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_unitSupported charms: Any charm implementing the Traefik-compatible
ingress-per-unitinterface
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:
httpSupported charms: Any charm implementing the
httpinterface
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¶
Interface:
cos_agentSupported charms: grafana-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¶
Interface:
tls-certificatesSupported charms: self-signed-certificates, manual-tls-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:
httpSupported charms: Any charm implementing the
httpinterface
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:
haclusterSupported 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_transferSupported charms: Any charm implementing the
certificate_transferinterface
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¶
Interface:
spoe-authSupported charms: haproxy-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¶
Interface:
ddos_protectionSupported charms: haproxy-ddos-protection-configurator
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¶
Interface:
haproxy-route-policySupported charms: 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-peersSupported 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.