Support different `managed-addresses` for different VRRP instances in FIFO mode
simu opened this issue · comments
Summary
As an operator of Keepalived+Floaty setups
I want to be able to use Floaty's FIFO mode for configurations with multiple independent VRRP instances with different VIPs
So that I can profit from the advantages of FIFO mode without being restricted in the possible configurations that work with FIFO mode.
Context
We've added initial support for FIFO mode in #51, but didn't consider more complex Keepalived setups with multiple VRRP instances which may transition between states independently. Currently, Floaty in FIFO mode only works correctly for Keepalived configurations with a single VRRP instance which contains all addresses specified in Floaty's managed-addresses
configuration.
We should extend Floaty's config to allow configuration files to contain multiple managed-addresses
configurations for different VRRP instances so that Floaty can manage those VIP sets independently when the corresponding VRRP instance's state changes.
Out of Scope
- Extend the VSHN-internal Puppet profile to support the new feature
Further links
Acceptance criteria
- Floaty FIFO mode can manage multiple sets of VIPs (one set per VRRP instance) independently
Implementation Ideas
- Change config to have a new key which is only read in FIFO mode which contains a map from VRRP instance name to VIPs (similar to
managed-addresses
currently) - Fix or replace Floaty's keepalived config parsing to support extracting the VIPs associated with a VRRP instance directly from the Keepalived config