From 58d14aa43fae2e10afd9e917b3258fee34e82f89 Mon Sep 17 00:00:00 2001 From: Myah Mitchell Date: Thu, 4 Dec 2025 11:22:16 -0600 Subject: [PATCH] Add option to enable HA/CARP failover support to the os-netbird plugin --- .../src/etc/inc/plugins.inc.d/netbird.inc | 7 +++ .../src/etc/rc.syshook.d/carp/50-netbird | 59 +++++++++++++++++++ .../OPNsense/Netbird/forms/settings.xml | 6 ++ .../app/models/OPNsense/Netbird/Settings.xml | 4 ++ 4 files changed, 76 insertions(+) create mode 100644 security/netbird/src/etc/rc.syshook.d/carp/50-netbird diff --git a/security/netbird/src/etc/inc/plugins.inc.d/netbird.inc b/security/netbird/src/etc/inc/plugins.inc.d/netbird.inc index 1d6b7fce09..0910e15fab 100644 --- a/security/netbird/src/etc/inc/plugins.inc.d/netbird.inc +++ b/security/netbird/src/etc/inc/plugins.inc.d/netbird.inc @@ -34,6 +34,13 @@ function netbird_enabled() return !(new \OPNsense\Netbird\Settings())->general->enable->isEmpty(); } +function netbird_carp_enabled() +{ + $settings = new \OPNsense\Netbird\Settings(); + return (string)$settings->general->enable == '1' && + (string)$settings->general->enablecarp == '1'; +} + function netbird_services() { $services = []; diff --git a/security/netbird/src/etc/rc.syshook.d/carp/50-netbird b/security/netbird/src/etc/rc.syshook.d/carp/50-netbird new file mode 100644 index 0000000000..d002cd8c71 --- /dev/null +++ b/security/netbird/src/etc/rc.syshook.d/carp/50-netbird @@ -0,0 +1,59 @@ +#!/usr/local/bin/php +configdRun("netbird up"); + break; + case 'BACKUP': + log_msg("NetBird CARP: Transitioning to BACKUP state, stopping NetBird interfaces"); + $backend->configdRun("netbird down"); + break; + } +} diff --git a/security/netbird/src/opnsense/mvc/app/controllers/OPNsense/Netbird/forms/settings.xml b/security/netbird/src/opnsense/mvc/app/controllers/OPNsense/Netbird/forms/settings.xml index 2f5f4224fc..4f7f6d8b1e 100644 --- a/security/netbird/src/opnsense/mvc/app/controllers/OPNsense/Netbird/forms/settings.xml +++ b/security/netbird/src/opnsense/mvc/app/controllers/OPNsense/Netbird/forms/settings.xml @@ -9,6 +9,12 @@ checkbox Enable NetBird + + settings.general.enablecarp + + checkbox + When enabled, NetBird interfaces will start on MASTER state and stop on BACKUP state. + settings.general.wireguardPort diff --git a/security/netbird/src/opnsense/mvc/app/models/OPNsense/Netbird/Settings.xml b/security/netbird/src/opnsense/mvc/app/models/OPNsense/Netbird/Settings.xml index a99ce9985a..53a725792c 100644 --- a/security/netbird/src/opnsense/mvc/app/models/OPNsense/Netbird/Settings.xml +++ b/security/netbird/src/opnsense/mvc/app/models/OPNsense/Netbird/Settings.xml @@ -8,6 +8,10 @@ 0 Y + + 0 + Y + 51820 Y