alchemy-charmers / layer-haproxy

GNU General Public License v3.0
3 stars 1 forks source link

Overview

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 :-)

Usage

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.

Known Limitations and Issues

This charm is under development, several other use cases/features are still under consideration. Merge requests are appreciated, some examples of current limitations include.

Configuration

See the full list of configuration options below. This will detail some of the options that are worth highlighting.

Upgrades

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.

Contact Information

Upstream Project Information