From f51e0b59bd157bace282f5734b9b607561f82c29 Mon Sep 17 00:00:00 2001 From: Dominik <96340450+TheDoDoo@users.noreply.github.com> Date: Thu, 20 Mar 2025 16:28:39 +0100 Subject: [PATCH] [management] Posture checks handle suffixes like "-dev" in netbird version (#3511) --- management/server/posture/nb_version.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/management/server/posture/nb_version.go b/management/server/posture/nb_version.go index f63db85b1..e98e8e795 100644 --- a/management/server/posture/nb_version.go +++ b/management/server/posture/nb_version.go @@ -3,6 +3,7 @@ package posture import ( "context" "fmt" + "strings" "github.com/hashicorp/go-version" log "github.com/sirupsen/logrus" @@ -16,13 +17,22 @@ type NBVersionCheck struct { var _ Check = (*NBVersionCheck)(nil) +// sanitizeVersion removes anything after the pre-release tag (e.g., "-dev", "-alpha", etc.) +func sanitizeVersion(version string) string { + parts := strings.Split(version, "-") + return parts[0] +} + func (n *NBVersionCheck) Check(ctx context.Context, peer nbpeer.Peer) (bool, error) { - peerNBVersion, err := version.NewVersion(peer.Meta.WtVersion) + peerVersion := sanitizeVersion(peer.Meta.WtVersion) + minVersion := sanitizeVersion(n.MinVersion) + + peerNBVersion, err := version.NewVersion(peerVersion) if err != nil { return false, err } - constraints, err := version.NewConstraint(">= " + n.MinVersion) + constraints, err := version.NewConstraint(">= " + minVersion) if err != nil { return false, err }