nixos/frr: adapt to frr-9

- fix #274286
- remove `-f configfile` from ExecStart
- use /etc/frr/${service}d.conf
- enable mgmtd when staticd is enabled
- don't frr-reload.py mgmtd
- remove obsolete lib.mdDoc
This commit is contained in:
Frank Doepper 2023-12-15 11:48:53 +01:00
parent bfb7a88267
commit 4df955130e

@ -23,10 +23,9 @@ let
"pbr"
"bfd"
"fabric"
"mgmt"
];
allServices = services ++ [ "zebra" ];
allServices = services ++ [ "zebra" "mgmt" ];
isEnabled = service: cfg.${service}.enable;
@ -137,6 +136,20 @@ in
'';
};
};
mgmt = (serviceOptions "mgmt") // {
enable = mkOption {
type = types.bool;
default = isEnabled "static";
defaultText = lib.literalExpression "config.services.frr.static.enable";
description = ''
Whether to enable the Configuration management daemon.
The Configuration management daemon is automatically
enabled if needed, at the moment this is when staticd
is enabled.
'';
};
};
};
}
{ options.services.frr = (genAttrs services serviceOptions); }
@ -164,7 +177,7 @@ in
environment.etc = let
mkEtcLink = service: {
name = "frr/${service}.conf";
name = "frr/${daemonName service}.conf";
value.source = configFile service;
};
in
@ -196,18 +209,18 @@ in
unitConfig.Documentation = if service == "zebra" then "man:zebra(8)"
else "man:${daemon}(8) man:zebra(8)";
restartTriggers = [
restartTriggers = mkIf (service != "mgmt") [
(configFile service)
];
reloadIfChanged = true;
reloadIfChanged = (service != "mgmt");
serviceConfig = {
PIDFile = "frr/${daemon}.pid";
ExecStart = "${pkgs.frr}/libexec/frr/${daemon} -f /etc/frr/${service}.conf"
ExecStart = "${pkgs.frr}/libexec/frr/${daemon}"
+ optionalString (scfg.vtyListenAddress != "") " -A ${scfg.vtyListenAddress}"
+ optionalString (scfg.vtyListenPort != null) " -P ${toString scfg.vtyListenPort}"
+ " " + (concatStringsSep " " scfg.extraOptions);
ExecReload = "${pkgs.python3.interpreter} ${pkgs.frr}/libexec/frr/frr-reload.py --reload --daemon ${daemonName service} --bindir ${pkgs.frr}/bin --rundir /run/frr /etc/frr/${service}.conf";
ExecReload = mkIf (service != "mgmt") "${pkgs.python3.interpreter} ${pkgs.frr}/libexec/frr/frr-reload.py --reload --daemon ${daemon} --bindir ${pkgs.frr}/bin --rundir /run/frr /etc/frr/${daemon}.conf";
Restart = "on-abnormal";
};
});