[management] Posture checks handle suffixes like "-dev" in netbird version (#3511)

This commit is contained in:
Dominik 2025-03-20 16:28:39 +01:00 committed by GitHub
parent 32ec42a667
commit f51e0b59bd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3,6 +3,7 @@ package posture
import ( import (
"context" "context"
"fmt" "fmt"
"strings"
"github.com/hashicorp/go-version" "github.com/hashicorp/go-version"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
@ -16,13 +17,22 @@ type NBVersionCheck struct {
var _ Check = (*NBVersionCheck)(nil) 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) { 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 { if err != nil {
return false, err return false, err
} }
constraints, err := version.NewConstraint(">= " + n.MinVersion) constraints, err := version.NewConstraint(">= " + minVersion)
if err != nil { if err != nil {
return false, err return false, err
} }