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
alias: clientgoscheme
- pkg: k8s.io/apimachinery/pkg/runtime
alias: apimachineryruntime
alias: kruntime
- pkg: k8s.io/apimachinery/pkg/util/runtime
alias: utilruntime
alias: kruntimeutil
- pkg: sigs.k8s.io/controller-runtime/pkg/metrics/server
alias: metricsserver
- pkg: k8s.io/apimachinery/pkg/apis/meta/v1
+11 -10
View File
@@ -13,11 +13,12 @@ import (
"fmt"
"os"
"path/filepath"
"runtime"
"strings"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/runtime"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
kruntime "k8s.io/apimachinery/pkg/runtime"
kruntimeutil "k8s.io/apimachinery/pkg/util/runtime"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/certwatcher"
@@ -39,18 +40,18 @@ import (
)
var (
scheme = runtime.NewScheme()
scheme = kruntime.NewScheme()
setupLog = ctrl.Log.WithName("setup")
)
func init() {
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
kruntimeutil.Must(clientgoscheme.AddToScheme(scheme))
utilruntime.Must(nbv1.AddToScheme(scheme))
utilruntime.Must(corev1.AddToScheme(scheme))
utilruntime.Must(gwv1.Install(scheme))
utilruntime.Must(gwv1alpha2.Install(scheme))
utilruntime.Must(nbv1alpha1.AddToScheme(scheme))
kruntimeutil.Must(nbv1.AddToScheme(scheme))
kruntimeutil.Must(corev1.AddToScheme(scheme))
kruntimeutil.Must(gwv1.Install(scheme))
kruntimeutil.Must(gwv1alpha2.Install(scheme))
kruntimeutil.Must(nbv1alpha1.AddToScheme(scheme))
// +kubebuilder:scaffold:scheme
}
@@ -216,7 +217,7 @@ func main() {
nbClient := netbird.NewWithOptions(
netbird.WithManagementURL(managementURL),
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{
+30
View File
@@ -2,6 +2,36 @@
package version
import (
"runtime/debug"
)
func ClientImage() string {
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"
admissionv1 "k8s.io/api/admission/v1"
corev1 "k8s.io/api/core/v1"
apimachineryruntime "k8s.io/apimachinery/pkg/runtime"
kruntime "k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/rest"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -53,7 +53,7 @@ var _ = BeforeSuite(func() {
ctx, cancel = context.WithCancel(context.TODO())
var err error
scheme := apimachineryruntime.NewScheme()
scheme := kruntime.NewScheme()
err = corev1.AddToScheme(scheme)
Expect(err).NotTo(HaveOccurred())