From 175e0c81aa15723e56da339396cd65e70a037ce6 Mon Sep 17 00:00:00 2001 From: Talor Itzhak Date: Thu, 5 Jan 2023 15:12:23 +0200 Subject: [PATCH] topology-updater: add kubelet-state-dir flag On different Kubernetes flavors like OpenShift for exmaple, the Kubelet state directory path is different. make it configurable for maximum flexability. Signed-off-by: Talor Itzhak --- cmd/nfd-topology-updater/main.go | 4 ++++ .../kubeletnotifier/kubeletnotifier.go | 1 - pkg/nfd-topology-updater/nfd-topology-updater.go | 9 +++++---- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/cmd/nfd-topology-updater/main.go b/cmd/nfd-topology-updater/main.go index a345beaa8..a41f3aba4 100644 --- a/cmd/nfd-topology-updater/main.go +++ b/cmd/nfd-topology-updater/main.go @@ -21,6 +21,7 @@ import ( "fmt" "net/url" "os" + "path" "time" "k8s.io/klog/v2" @@ -40,6 +41,8 @@ const ( kubeletSecurePort = 10250 ) +var DefaultKubeletStateDir = path.Join(string(hostpath.VarDir), "lib", "kubelet") + func main() { flags := flag.NewFlagSet(ProgramName, flag.ExitOnError) @@ -140,6 +143,7 @@ func initFlags(flagset *flag.FlagSet) (*topology.Args, *resourcemonitor.Args) { flagset.StringVar(&args.ConfigFile, "config", "/etc/kubernetes/node-feature-discovery/nfd-topology-updater.conf", "Config file to use.") flagset.BoolVar(&resourcemonitorArgs.PodSetFingerprint, "pods-fingerprint", false, "Compute and report the pod set fingerprint") + flagset.StringVar(&args.KubeletStateDir, "kubelet-state-dir", DefaultKubeletStateDir, "Kubelet state directory path for watching state and checkpoint files") klog.InitFlags(flagset) diff --git a/pkg/nfd-topology-updater/kubeletnotifier/kubeletnotifier.go b/pkg/nfd-topology-updater/kubeletnotifier/kubeletnotifier.go index ea641b85d..6c1736ac3 100644 --- a/pkg/nfd-topology-updater/kubeletnotifier/kubeletnotifier.go +++ b/pkg/nfd-topology-updater/kubeletnotifier/kubeletnotifier.go @@ -33,7 +33,6 @@ const ( FSUpdate EventType = "fsUpdate" ) -// TODO make path configurable var stateFiles = sets.NewString( "cpu_manager_state", "memory_manager_state", diff --git a/pkg/nfd-topology-updater/nfd-topology-updater.go b/pkg/nfd-topology-updater/nfd-topology-updater.go index f72445117..6e390915a 100644 --- a/pkg/nfd-topology-updater/nfd-topology-updater.go +++ b/pkg/nfd-topology-updater/nfd-topology-updater.go @@ -47,10 +47,11 @@ const ( // Args are the command line arguments type Args struct { - NoPublish bool - Oneshot bool - KubeConfigFile string - ConfigFile string + NoPublish bool + Oneshot bool + KubeConfigFile string + ConfigFile string + KubeletStateDir string Klog map[string]*utils.KlogFlagVal }