Add build version to NetBird client user agent. (#248)

This also fix the runtime import aliases to avoid conflicts with stdlib
runtime.
This commit is contained in:
Philip Laine
2026-05-13 12:43:46 +02:00
committed by GitHub
parent 0ef20e5dc3
commit 360ef52aa3
4 changed files with 45 additions and 14 deletions
+2 -2
View File
@@ -48,9 +48,9 @@ linters:
- pkg: k8s.io/client-go/kubernetes/scheme - pkg: k8s.io/client-go/kubernetes/scheme
alias: clientgoscheme alias: clientgoscheme
- pkg: k8s.io/apimachinery/pkg/runtime - pkg: k8s.io/apimachinery/pkg/runtime
alias: apimachineryruntime alias: kruntime
- pkg: k8s.io/apimachinery/pkg/util/runtime - pkg: k8s.io/apimachinery/pkg/util/runtime
alias: utilruntime alias: kruntimeutil
- pkg: sigs.k8s.io/controller-runtime/pkg/metrics/server - pkg: sigs.k8s.io/controller-runtime/pkg/metrics/server
alias: metricsserver alias: metricsserver
- pkg: k8s.io/apimachinery/pkg/apis/meta/v1 - pkg: k8s.io/apimachinery/pkg/apis/meta/v1
+11 -10
View File
@@ -13,11 +13,12 @@ import (
"fmt" "fmt"
"os" "os"
"path/filepath" "path/filepath"
"runtime"
"strings" "strings"
corev1 "k8s.io/api/core/v1" corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/runtime" kruntime "k8s.io/apimachinery/pkg/runtime"
utilruntime "k8s.io/apimachinery/pkg/util/runtime" kruntimeutil "k8s.io/apimachinery/pkg/util/runtime"
clientgoscheme "k8s.io/client-go/kubernetes/scheme" clientgoscheme "k8s.io/client-go/kubernetes/scheme"
ctrl "sigs.k8s.io/controller-runtime" ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/certwatcher" "sigs.k8s.io/controller-runtime/pkg/certwatcher"
@@ -39,18 +40,18 @@ import (
) )
var ( var (
scheme = runtime.NewScheme() scheme = kruntime.NewScheme()
setupLog = ctrl.Log.WithName("setup") setupLog = ctrl.Log.WithName("setup")
) )
func init() { func init() {
utilruntime.Must(clientgoscheme.AddToScheme(scheme)) kruntimeutil.Must(clientgoscheme.AddToScheme(scheme))
utilruntime.Must(nbv1.AddToScheme(scheme)) kruntimeutil.Must(nbv1.AddToScheme(scheme))
utilruntime.Must(corev1.AddToScheme(scheme)) kruntimeutil.Must(corev1.AddToScheme(scheme))
utilruntime.Must(gwv1.Install(scheme)) kruntimeutil.Must(gwv1.Install(scheme))
utilruntime.Must(gwv1alpha2.Install(scheme)) kruntimeutil.Must(gwv1alpha2.Install(scheme))
utilruntime.Must(nbv1alpha1.AddToScheme(scheme)) kruntimeutil.Must(nbv1alpha1.AddToScheme(scheme))
// +kubebuilder:scaffold:scheme // +kubebuilder:scaffold:scheme
} }
@@ -216,7 +217,7 @@ func main() {
nbClient := netbird.NewWithOptions( nbClient := netbird.NewWithOptions(
netbird.WithManagementURL(managementURL), netbird.WithManagementURL(managementURL),
netbird.WithBearerToken(netbirdAPIKey), netbird.WithBearerToken(netbirdAPIKey),
netbird.WithUserAgent("netbird-operator"), netbird.WithUserAgent(fmt.Sprintf("netbird-operator/%s (%s/%s)", version.BuildVersion(), runtime.GOOS, runtime.GOARCH)),
) )
if err = (&controller.NBRoutingPeerReconciler{ if err = (&controller.NBRoutingPeerReconciler{
+30
View File
@@ -2,6 +2,36 @@
package version package version
import (
"runtime/debug"
)
func ClientImage() string { func ClientImage() string {
return "ghcr.io/netbirdio/netbird:0.70.4@sha256:3a28b9f7f32875c6a35f952ca7e9cb688b1e610365365ff55f6e790da3950f55" return "ghcr.io/netbirdio/netbird:0.70.4@sha256:3a28b9f7f32875c6a35f952ca7e9cb688b1e610365365ff55f6e790da3950f55"
} }
func BuildVersion() string {
bi, ok := debug.ReadBuildInfo()
if !ok {
return "unknown"
}
modified := true
for _, s := range bi.Settings {
if s.Key == "vcs.modified" {
if s.Value == "false" {
modified = false
}
break
}
}
develVersion := "devel"
if modified {
return develVersion
}
if bi.Main.Version == "" {
return develVersion
}
return bi.Main.Version
}
+2 -2
View File
@@ -16,7 +16,7 @@ import (
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
admissionv1 "k8s.io/api/admission/v1" admissionv1 "k8s.io/api/admission/v1"
corev1 "k8s.io/api/core/v1" corev1 "k8s.io/api/core/v1"
apimachineryruntime "k8s.io/apimachinery/pkg/runtime" kruntime "k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/rest" "k8s.io/client-go/rest"
ctrl "sigs.k8s.io/controller-runtime" ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client"
@@ -53,7 +53,7 @@ var _ = BeforeSuite(func() {
ctx, cancel = context.WithCancel(context.TODO()) ctx, cancel = context.WithCancel(context.TODO())
var err error var err error
scheme := apimachineryruntime.NewScheme() scheme := kruntime.NewScheme()
err = corev1.AddToScheme(scheme) err = corev1.AddToScheme(scheme)
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())