[pve-devel] [PATCH pve-network 1/1] frr: enable frr service on reloading the controller config
Stefan Hanreich
s.hanreich at proxmox.com
Tue Apr 8 21:39:17 CEST 2025
> On 08.04.2025 20:43 CEST Thomas Lamprecht <t.lamprecht at proxmox.com> wrote:
>
>
> On 08/04/2025 18:32, Stefan Hanreich wrote:
> > Since we now ship frr with Proxmox VE, the frr service is available on
> > the nodes but disabled on install. Prior to that users had to manually
> > install frr, which automatically enabled the service. When applying a
> > SDN configuration with an EVPN controller, we invoke systemctl restart
> > frr, which leads to the service running but still being in the
> > disabled state. This means that the EVPN setup is working until the
> > next reboot. To avoid the situation where users configure an EVPN
> > controller and everything seems to be working, until a restart breaks
> > the EVPN setup, additionally enable the frr service before restarting
> > it.
> >
> > Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
> > ---
> > src/PVE/Network/SDN/Controllers/EvpnPlugin.pm | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm b/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm
> > index c245ea2..4249cc5 100644
> > --- a/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm
> > +++ b/src/PVE/Network/SDN/Controllers/EvpnPlugin.pm
> > @@ -638,6 +638,7 @@ sub reload_controller {
> > };
> > if ($@) {
> > warn "frr reload command fail. Restarting frr.";
> > + run_command(['systemctl', 'enable', 'frr']);
>
> can we guard this with an file exists check for
> "/etc/systemd/system/multi-user.target.wants/frr.service"? Not a must, but does
> not feel right to unconditionally call systemctl enable.
probably a bit too convoluted and unclear, but this is guarded by the existence of frr-reload.py already, which requires frr to be installed (above in the if with an early return).
I can certainly whip up a v2 quite early tomorrow, shouldn't take long. Do you have any input on pre-installing frr-pythontools as well?
> > eval { run_command(['systemctl', 'restart', 'frr']); };
> > }
> > }
More information about the pve-devel
mailing list