9 description = lib.mdDoc ''
10 Interface for inside_network, bound by vrrp.
15 type = types.enum [ "MASTER" "BACKUP" ];
17 description = lib.mdDoc ''
18 Initial state. As soon as the other machine(s) come up, an election will
19 be held and the machine with the highest "priority" will become MASTER.
20 So the entry here doesn't matter a whole lot.
24 virtualRouterId = mkOption {
26 description = lib.mdDoc ''
27 Arbitrary unique number 0..255. Used to differentiate multiple instances
28 of vrrpd running on the same NIC (and hence same socket).
35 description = lib.mdDoc ''
36 For electing MASTER, highest priority wins. To be MASTER, make 50 more
41 noPreempt = mkOption {
44 description = lib.mdDoc ''
45 VRRP will normally preempt a lower priority machine when a higher
46 priority machine comes online. "nopreempt" allows the lower priority
47 machine to maintain the master role, even when a higher priority machine
48 comes back online. NOTE: For this to work, the initial state of this
56 description = lib.mdDoc ''
61 vmacInterface = mkOption {
62 type = types.nullOr types.str;
64 description = lib.mdDoc ''
65 Name of the vmac interface to use. keepalived will come up with a name
66 if you don't specify one.
70 vmacXmitBase = mkOption {
73 description = lib.mdDoc ''
74 Send/Recv VRRP messages from base interface instead of VMAC interface.
78 unicastSrcIp = mkOption {
79 type = types.nullOr types.str;
81 description = lib.mdDoc ''
82 Default IP for binding vrrpd is the primary IP on interface. If you
83 want to hide location of vrrpd, use this IP as src_addr for unicast
88 unicastPeers = mkOption {
89 type = types.listOf types.str;
91 description = lib.mdDoc ''
92 Do not send VRRP adverts over VRRP multicast group. Instead it sends
93 adverts to the following list of ip addresses using unicast design
94 fashion. It can be cool to use VRRP FSM and features in a networking
95 environment where multicast is not supported! IP Addresses specified can
100 virtualIps = mkOption {
101 type = types.listOf (types.submodule (import ./virtual-ip-options.nix {
106 description = lib.mdDoc "Declarative vhost config";
109 trackScripts = mkOption {
110 type = types.listOf types.str;
112 example = [ "chk_cmd1" "chk_cmd2" ];
113 description = lib.mdDoc "List of script names to invoke for health tracking.";
116 trackInterfaces = mkOption {
117 type = types.listOf types.str;
119 example = [ "eth0" "eth1" ];
120 description = lib.mdDoc "List of network interfaces to monitor for health tracking.";
123 extraConfig = mkOption {
126 description = lib.mdDoc ''
127 Extra lines to be added verbatim to the vrrp_instance section.