A supertask for all issues with VRRP and IPv6.
The situation is the following: keepalived 1.3.x made an incompatible change and no longer supports mixing IPv4 and IPv6 virtual addresses in the same VRRP instance. This is arguably a good thing, but it's still an incompatible change, and we cannot do anything about it. If we want to move forward with IPv6 VRRP in particular, or VRRP in general, we have to support it.
Besides, keepalived from Debian Jessie has some bugs that are holding us back, and that are fixed in the latest version.
The only question is how to handle it.
Option one:
Make the VRRP config script separate IPv4 and IPv6 VIPs and generate two instances. The advantage is that we can keep our CLI compatible despite the incompatible change in keepalived. The disadvantage is that it implementing IPv6-specific options such as hello source address and peer address will be awkward (remember, you can no longer advertise IPv6 VIPs over IPv4, so we'll need separate options for IPv4 and IPv6 hello source).
Option two:
Make a new vrrp6 subtree (or similar) specially for IPv6 and disallow IPv6 VIPs in the vrrp subtree. This is incompatible and nearly impossible to migrate automatically, but far cleaner.