This is exactly what Brane's patch I referenced does. You can even do
"include conf.d/*.cfg" and drop-in additional cfg files without
touching haproxy.cfg.

On Tue, Jan 14, 2014 at 6:01 AM, Timh Bergström
<[email protected]> wrote:
> I would really love a clean/native way to basically do "includes" in
> the configuration file;
>
> haproxy.cfg:
> ## Haproxy Configuration
> include "defaults.cfg"
> include "statistics.cfg"
> include "combined/appservers.cfg"
> include "frontends/webservers.cfg"
> include "frontends/mailservers.cfg"
> include "backends/webservers.cfg"
> include "backends/mailservers.cfg"
>
> haproxy -f /etc/haproxy.cfg ...
>
> //T
> Timh Bergström
> www.quickvz.com
>
>
>
> On Mon, Jan 13, 2014 at 6:30 PM, Dmitry Borodaenko
> <[email protected]> wrote:
>> Greetings,
>>
>> Can the question of loading HAProxy configuration from multiple files
>> be revisited once again?
>>
>> The most useful implementation I've found so far is this:
>> http://marc.info/?l=haproxy&m=129235503410444
>>
>> Even though it's been a few years, that patch still cleanly applies to
>> the latest HAProxy 1.4 and 1.5. At the time, it was rejected, and
>> since then nobody has stepped up to address the concerns that were
>> raised against it.
>>
>> As far as I understand, primary reasons this has not yet been merged
>> or otherwise implemented were:
>>
>> 1) There's already a way to load configuration from multiple files by
>> specifying multiple "-f" parameters on haproxy command line.
>>
>> My biggest concern with that approach is that you need an init script
>> that is tailored to a specific layout of configuration fragment files,
>> and may break or misbehave if its assumptions about the layout are not
>> met. Multiply the number of possible layouts by the number of init
>> systems (SysV init, upstart, systemd, OpenRC etc.) and making this
>> reasonably generic becomes cumbersome, even before you consider
>> supporting different Linux distributions.
>>
>> 2) HAProxy configuration is sensitive to the order of sections, and a
>> fragment of a section placed at the wrong place can break all sorts of
>> things.
>>
>> I think the best way to address this is to enforce additional
>> validation on file fragments, e.g. require that any included file
>> excplicitly associates each setting line with a section. In other
>> words, it shouldn't have hanging setting lines that can end up being
>> associated with a section from another file depending on the file sort
>> order. Also, AFAIU specifying multiple configuration files on the
>> command line exposes the same problem, so even merging this patch as
>> is would at least not  make things worse.
>>
>> 3) Unrestricted include directive allows to create an include loop.
>>
>> I believe that concern is already addressed by the patch linked above
>> by setting a limit on the nesting level in the
>> INCLUDE_RECURSION_LEVEL_MAX macro.
>>
>> Is there any other major problem I've missed?
>>
>> Thanks,
>>
>> --
>> Dmitry Borodaenko
>>



-- 
Dmitry Borodaenko

Reply via email to