net/haproxy: add HAProxy load balancer to plugins #10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds the popular HAProxy load balancer to OPNsense. It allows for far more complex configurations and has a superior feature-set when compared to the (included) relayd load balancer.
Wording/language improvements, code reviews and suggestions are very very welcome!
Feel free to assign any HAProxy issue to me from now on.
Sponsored by: markt.de
LIMITATIONS
Besides that some more complex configurations may be a bit tricky on first attempt (especially ACLs/Actions): All possible parameters are always visible, even if they are not usable in this combination, which can be quite confusing. I hope this will be fixed alongside opnsense/core#870.
WARNING
I consider this plugin to be ALPHA quality software. While the code was tested fairly well, the resulting HAProxy configuration may contain errors or non-functional entries. The plugin should be ready for production use alongside the 16.7 release of OPNsense. (Please ship this plugin with 16.1.x to get some feedback and fix critical bugs before 16.7.)
ACKNOWLEDGEMENT
Thanks to @fichtner and @AdSchellevis for their tremendous support! This plugin uses a lot existing OPNsense code, which is reflected by the copyright notes. Besides that it was apparently heavily inspired by the pf***** HAProxy plugin (but no original code was included).
SCREENSHOTS
Some screenshots to demonstrate how this plugin integrates with the HAProxy framework and GUI.
Add servers once, but use them in multiple configurations:

Define your own (complex) health checks:

Upload and manage your Lua scripts:

Define your own HTTP error pages:

Get useful hints on syntax errors or other configuration issues:
