This repository provides a collection of operators related to HAProxy. HAProxy is an open-source reverse proxy that provides fast, efficient, and reliable proxying for TCP and HTTP-based applications.
For deployment, integration, and management guidance, see the official HAProxy operator documentation.
docs/ # HAProxy charm documentation source
haproxy-operator/ # Juju charm: HAProxy reverse proxy and ingress provider
haproxy-ddos-protection-configurator/ # Juju charm: DDoS protection configuration provider for HAProxy
haproxy-route-policy-operator/ # Juju charm: route-policy API service for HAProxy route requests
haproxy-route-policy/ # Snap workload: HAProxy Route Policy Django application
haproxy-spoe-auth-operator/ # Juju charm: HAProxy SPOE authentication agent
haproxy-spoe-auth-snap/ # Snap workload: HAProxy SPOE authentication agent
terraform/ # Terraform modules for deploying the HAProxy charm
tests/ # Shared integration and spread tests
This repository contains the code for the following charms:
| Component | Path | Role |
|---|---|---|
haproxy |
haproxy-operator/ |
A machine charm managing HAProxy. See the haproxy README for more information. |
haproxy-ddos-protection-configurator |
haproxy-ddos-protection-configurator/ |
A Juju charm that serves as a configurator for HAProxy to provide DDoS protection capabilities. |
haproxy-spoe-auth-operator |
haproxy-spoe-auth-operator/ |
A machine charm deploying an SPOE agent that serves as an authentication proxy. See the haproxy-spoe-auth-operator README for more information. |
haproxy-route-policy-operator |
haproxy-route-policy-operator/ |
A machine charm deploying the haproxy-route-policy application for controlling the data from different haproxy-route relations. See the haproxy-route-policy-operator README for more information. |
The repository also contains the snapped workload of some charms:
| Component | Path | Role | Related charm |
|---|---|---|---|
haproxy-spoe-auth |
haproxy-spoe-auth-snap/ |
A snap of the SPOE agent made for the haproxy-spoe-auth-operator charm. See the haproxy-spoe-auth-snap README for more information. | haproxy-spoe-auth-operator |
haproxy-route-policy |
haproxy-route-policy/ |
A snap of the haproxy-route-policy app made for the haproxy-route-policy-operator charm. See the haproxy-route-policy-snap README for more information. |
haproxy-route-policy-operator |
| Name | Listing |
|---|---|
haproxy |
https://charmhub.io/haproxy |
haproxy-ddos-protection-configurator |
https://charmhub.io/haproxy-ddos-protection-configurator |
haproxy-route-policy |
https://charmhub.io/haproxy-route-policy |
haproxy-spoe-auth |
https://charmhub.io/haproxy-spoe-auth |
haproxy-route-policy |
https://snapcraft.io/haproxy-route-policy |
haproxy-spoe-auth |
https://snapcraft.io/haproxy-spoe-auth |
For a step-by-step basic deployment, start with docs/tutorial/getting-started.md.
That tutorial covers setup, deploying the HAProxy charm, configuring TLS,
deploying the backend application, and cleanup.
Our documentation is stored in the docs directory and
can be viewed at https://canonical.com/juju/docs/haproxy-charm/.
It is based on the Canonical Sphinx Stack and hosted on
Read the Docs. In structuring, the
documentation employs the Diátaxis approach.
You may open a pull request with your documentation changes, or you can file a bug to provide constructive feedback or suggestions.
To run the documentation locally before submitting your changes:
cd docs
make runGitHub runs automatic checks on the documentation to verify spelling, validate links and style guide compliance.
You can (and should) run the same checks locally:
make spelling
make linkcheck
make vale
make lint-mdThe HAProxy project is a member of the Ubuntu family. It is an open source project that warmly welcomes community projects, contributions, suggestions, fixes and constructive feedback.
See LICENSE.