1
0
Fork 0
mirror of https://github.com/kubernetes-sigs/node-feature-discovery.git synced 2025-03-15 04:57:56 +00:00

Add common utility function for getting node name

This commit is contained in:
Markus Lehtonen 2022-12-23 09:50:15 +02:00
parent 7b94c8bd38
commit aa97105854
7 changed files with 18 additions and 19 deletions

View file

@ -26,7 +26,6 @@ import (
"k8s.io/klog/v2" "k8s.io/klog/v2"
kubeletconfigv1beta1 "k8s.io/kubelet/config/v1beta1" kubeletconfigv1beta1 "k8s.io/kubelet/config/v1beta1"
nfdclient "sigs.k8s.io/node-feature-discovery/pkg/nfd-client"
topology "sigs.k8s.io/node-feature-discovery/pkg/nfd-client/topology-updater" topology "sigs.k8s.io/node-feature-discovery/pkg/nfd-client/topology-updater"
"sigs.k8s.io/node-feature-discovery/pkg/resourcemonitor" "sigs.k8s.io/node-feature-discovery/pkg/resourcemonitor"
"sigs.k8s.io/node-feature-discovery/pkg/topologypolicy" "sigs.k8s.io/node-feature-discovery/pkg/topologypolicy"
@ -111,12 +110,12 @@ func parseArgs(flags *flag.FlagSet, osArgs ...string) (*topology.Args, *resource
} }
if len(resourcemonitorArgs.KubeletConfigURI) == 0 { if len(resourcemonitorArgs.KubeletConfigURI) == 0 {
if len(nfdclient.NodeName()) == 0 { if len(utils.NodeName()) == 0 {
fmt.Fprintf(flags.Output(), "unable to determine the default kubelet config endpoint 'https://${NODE_NAME}:%d/configz' due to empty NODE_NAME environment, "+ fmt.Fprintf(flags.Output(), "unable to determine the default kubelet config endpoint 'https://${NODE_NAME}:%d/configz' due to empty NODE_NAME environment, "+
"please either define the NODE_NAME environment variable or specify endpoint with the -kubelet-config-uri flag\n", kubeletSecurePort) "please either define the NODE_NAME environment variable or specify endpoint with the -kubelet-config-uri flag\n", kubeletSecurePort)
os.Exit(1) os.Exit(1)
} }
resourcemonitorArgs.KubeletConfigURI = fmt.Sprintf("https://%s:%d/configz", nfdclient.NodeName(), kubeletSecurePort) resourcemonitorArgs.KubeletConfigURI = fmt.Sprintf("https://%s:%d/configz", utils.NodeName(), kubeletSecurePort)
} }
return args, resourcemonitorArgs return args, resourcemonitorArgs

View file

@ -56,15 +56,6 @@ type Args struct {
Klog map[string]*utils.KlogFlagVal Klog map[string]*utils.KlogFlagVal
} }
var nodeName string
func init() {
nodeName = os.Getenv("NODE_NAME")
}
// NodeName returns the name of the k8s node we're running on.
func NodeName() string { return nodeName }
// NewNfdBaseClient creates a new NfdBaseClient instance. // NewNfdBaseClient creates a new NfdBaseClient instance.
func NewNfdBaseClient(args *Args) (NfdBaseClient, error) { func NewNfdBaseClient(args *Args) (NfdBaseClient, error) {
nfd := NfdBaseClient{args: *args} nfd := NfdBaseClient{args: *args}

View file

@ -78,7 +78,7 @@ func NewTopologyUpdater(args Args, resourcemonitorArgs resourcemonitor.Args, pol
args: args, args: args,
resourcemonitorArgs: resourcemonitorArgs, resourcemonitorArgs: resourcemonitorArgs,
nodeInfo: &staticNodeInfo{ nodeInfo: &staticNodeInfo{
nodeName: os.Getenv("NODE_NAME"), nodeName: utils.NodeName(),
tmPolicy: policy, tmPolicy: policy,
}, },
stop: make(chan struct{}, 1), stop: make(chan struct{}, 1),

View file

@ -157,7 +157,7 @@ func newDefaultConfig() *NFDConfig {
// one request if OneShot is set to 'true' in the worker args. // one request if OneShot is set to 'true' in the worker args.
func (w *nfdWorker) Run() error { func (w *nfdWorker) Run() error {
klog.Infof("Node Feature Discovery Worker %s", version.Get()) klog.Infof("Node Feature Discovery Worker %s", version.Get())
klog.Infof("NodeName: '%s'", clientcommon.NodeName()) klog.Infof("NodeName: '%s'", utils.NodeName())
klog.Infof("Kubernetes namespace: '%s'", w.kubernetesNamespace) klog.Infof("Kubernetes namespace: '%s'", w.kubernetesNamespace)
// Create watcher for config file and read initial configuration // Create watcher for config file and read initial configuration
@ -559,7 +559,7 @@ func (w *nfdWorker) advertiseFeatureLabels(labels Labels) error {
labelReq := pb.SetLabelsRequest{Labels: labels, labelReq := pb.SetLabelsRequest{Labels: labels,
Features: source.GetAllFeatures(), Features: source.GetAllFeatures(),
NfdVersion: version.Get(), NfdVersion: version.Get(),
NodeName: clientcommon.NodeName()} NodeName: utils.NodeName()}
cli, err := w.getGrpcClient() cli, err := w.getGrpcClient()
if err != nil { if err != nil {
@ -581,7 +581,7 @@ func (m *nfdWorker) updateNodeFeatureObject(labels Labels) error {
if err != nil { if err != nil {
return err return err
} }
nodename := clientcommon.NodeName() nodename := utils.NodeName()
namespace := m.kubernetesNamespace namespace := m.kubernetesNamespace
features := source.GetAllFeatures() features := source.GetAllFeatures()

View file

@ -21,7 +21,6 @@ import (
"crypto/x509" "crypto/x509"
"fmt" "fmt"
"net" "net"
"os"
"path" "path"
"regexp" "regexp"
"sort" "sort"
@ -101,7 +100,7 @@ type nfdMaster struct {
// NewNfdMaster creates a new NfdMaster server instance. // NewNfdMaster creates a new NfdMaster server instance.
func NewNfdMaster(args *Args) (NfdMaster, error) { func NewNfdMaster(args *Args) (NfdMaster, error) {
nfd := &nfdMaster{args: *args, nfd := &nfdMaster{args: *args,
nodeName: os.Getenv("NODE_NAME"), nodeName: utils.NodeName(),
namespace: utils.GetKubernetesNamespace(), namespace: utils.GetKubernetesNamespace(),
ready: make(chan bool, 1), ready: make(chan bool, 1),
stop: make(chan struct{}, 1), stop: make(chan struct{}, 1),

View file

@ -21,6 +21,16 @@ import (
"strings" "strings"
) )
var nodeName string
// NodeName returns the name of the k8s node we're running on.
func NodeName() string {
if nodeName == "" {
nodeName = os.Getenv("NODE_NAME")
}
return nodeName
}
// GetKubernetesNamespace returns the kubernetes namespace we're running under, // GetKubernetesNamespace returns the kubernetes namespace we're running under,
// or an empty string if the namespace cannot be determined. // or an empty string if the namespace cannot be determined.
func GetKubernetesNamespace() string { func GetKubernetesNamespace() string {

View file

@ -82,7 +82,7 @@ func (s *systemSource) Discover() error {
// Get node name // Get node name
s.features.Attributes[NameFeature] = nfdv1alpha1.NewAttributeFeatures(nil) s.features.Attributes[NameFeature] = nfdv1alpha1.NewAttributeFeatures(nil)
s.features.Attributes[NameFeature].Elements["nodename"] = os.Getenv("NODE_NAME") s.features.Attributes[NameFeature].Elements["nodename"] = utils.NodeName()
// Get os-release information // Get os-release information
release, err := parseOSRelease() release, err := parseOSRelease()