Limiting duplicate ip address in virtual_ipaddress hash
Pull Request (PR) description
Add support for the track_interface option of a vrrp sync group.
This Pull Request (PR) fixes the following issues
None
This option is available in more recent versions of keepalived.
Added option to collect exported vrrp::script resources (similar to how lvs::virtualserver collects exported lvs::realserver resources) so that the real_servers can export check scripts that contain identifying information (such as IP address, etc).
The $collectexported param is defaulted to false to avoid changing the current behavior though an empty trackscript{} block doesn't appear to cause any issues when added to the config so it may be preferable to default it to true to mimic the virtualserver/realserver functionality.
<!--
Thank you for contributing to this project!
-->
Enable managment of keepalived on Alpine Linux
<!--
Replace this comment with the list of issues or n/a.
Use format:
Fixes #123
Fixes #124
-->
feature-completness-with-2.1.5 tries to make puppet-keealived feature complete in a sense that all options keepalievd 2.1.5 provides, can be set via this puppet module.
Currently a lot of options are missing :/
This is currently and at the moment Work In Progress. I just wanted to push early to have the change to get early feedback, too.
So far global_defs
should be completely covered. Only a few options are missing in spec
. Anyone reading this is invited to give me a pair of eyes and provide some hints how to cover the missing ones!
I had a talk with @ghoneycutt and he gave me the /ok/ to just do a large commit, as I do not change features, but just adding new options. As you can see in global_defs
some options are now set to undef
as they only reflect the implicit default state of keepalived. I'm not quiet sure if this is just some old stuff or if keepalived actually switched that in the last 3(?) years...
In the next days I want to try to do the same with vrrp_instance
. As I have no clue about LVS, I will quietly ignore this for now. I maybe will continue with vrrp_script
then...
Anyway I have some "questions" aka I'm unsure about it, and like to get feedback:
* I've set all params
of global_defs
to have a Data Type; I tried to reflect documentation from keepaliveds manpage as good as I could. Could someone have a look and give me a "go ahead"/continue or a "please stop and do it that way"?
* Should the test in spec cover allowed vaues of an option? Like if when an Integer can only be set between 0 and 99, or where does this go?
* How do I write a spec for situations with like nftables
: it could be just set, (with puppet via true
, but in the config without parameter) and it could also have one parameter or two, if the user wants to specify the chain.
Closing note for now:
I've ordered all options as they appear in keepaliveds documentation to make it easier to compare the state of "feature completeness".
Thanks.
This PR adds support for garpmasterrepeat (keepalived::vrrp::instance) and garp_interval (global)
Since https://github.com/voxpupuli/puppet-keepalived/commit/5ce7c9e14e3993765908f1fa062c3dbc0c9fcc84, we are using the Integer data type to define the VRRP instance priority and the router id.
Examples should use Integer as well.
modulesync 5.4.0
The use_vmac_addr
parameter tells keepalived to use virtual MAC addresses for virtual IPs.
The parameter use_vmac
only affects VRRP packages.
With this, setting parameter to check for vrrp processes is possible.
<!--
Thank you for contributing to this project!
-->
This PR adds an option to the vrrp instance definition to automatically set sysctl settings recommended by the keepalived project (https://github.com/acassen/keepalived/blob/master/keepalived/vrrp/vrrp_if_config.c#L23).
This PR fixes problems with ARP-Flux.