This charm provides HAProxy. HAProxy describes itself as a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. It is particularly suited for very high traffic web sites and powers quite a number of the world's most visited ones. Over the years it has become the de-facto standard open source load balancer, is now shipped with most mainstream Linux distributions, and is often deployed by default in cloud platforms. Since it does not advertise itself, we only know it's used when the admins report it :-)
To deploy:
juju deploy cs:~alchemy-charmers/haproxy
You will most likely want to use a bundle to set options during deployment. The primary use case for this charm is to allow other charms that implement the reverse proxy interface to automatically register for reverse proxy. This charm will allow both http and tcp reverse proxy's to be requested from other charms. Additionally, for http reverse proxy Letsencrypt is provided to allow HAProxy to automatically register for a certificate and terminate the SSL/TLS connection. Finally, this charm provides options to use UPNP for automatically requesting ports via UPNP. Most of these features are off by default, see the configuration options to enable them.
This charm is under development, several other use cases/features are still under consideration. Merge requests are appreciated, some examples of current limitations include.
See the full list of configuration options below. This will detail some of the options that are worth highlighting.
Some limited upgrade support is available. The charm will only upgrade for specific versions. Currently this includes:
Upgrading to a new Ubuntu release is currently tested from Xenial to Bionic. The upgrade procedures are the standard juju series upgrade procedures. Substitute your machine id in the example below.
From the juju client
juju upgrade-series $MACHINE prepare bionic
juju ssh $MACHINE
From the machine
sudo su -
apt update
apt upgrade -y
apt dist-upgrade -y
do-release-upgrade -f DistUpgradeViewNonInteractive
reboot now
The upgrade will automatically answer all questions, there is no need to interact with the release upgrade. When it is complete a reboot should be done manually.
Complete from the juju client
juju upgrade-series $MACHINE complete
Xenial to Bionic: After setting the upgrade to 'complete' HAProxy will be upgraded to the LTS
1.8 release. The charm can not change the juju config value. To make this match the installed
version set run juju config haproxy version="1.8"
. Optionally, you can set this to 1.9
instead and an upgrade to 1.9 will be performed.