From 01c08d67b62ce7bbea3760ef4b5c72c729d612d6 Mon Sep 17 00:00:00 2001 From: Markus Lehtonen Date: Thu, 17 Aug 2023 16:53:06 +0300 Subject: [PATCH] Rename nfd-topology-gc to nfd-gc This is preparation for making it a generic garbage collector for all nfd-managed api objects. --- cmd/{nfd-topology-gc => nfd-gc}/main.go | 18 ++++++------ cmd/{nfd-topology-gc => nfd-gc}/main_test.go | 0 .../{topology-gc.yaml => nfd-gc.yaml} | 0 .../nfd-nrt-gc.go => nfd-gc/nfd-gc.go} | 28 +++++++++---------- .../nfd-gc_test.go} | 6 ++-- 5 files changed, 26 insertions(+), 26 deletions(-) rename cmd/{nfd-topology-gc => nfd-gc}/main.go (74%) rename cmd/{nfd-topology-gc => nfd-gc}/main_test.go (100%) rename deployment/helm/node-feature-discovery/templates/{topology-gc.yaml => nfd-gc.yaml} (100%) rename pkg/{nfd-topology-gc/nfd-nrt-gc.go => nfd-gc/nfd-gc.go} (85%) rename pkg/{nfd-topology-gc/nfd-nrt-gc_test.go => nfd-gc/nfd-gc_test.go} (97%) diff --git a/cmd/nfd-topology-gc/main.go b/cmd/nfd-gc/main.go similarity index 74% rename from cmd/nfd-topology-gc/main.go rename to cmd/nfd-gc/main.go index 99626a489..a47488d16 100644 --- a/cmd/nfd-topology-gc/main.go +++ b/cmd/nfd-gc/main.go @@ -24,13 +24,13 @@ import ( "k8s.io/klog/v2" - nfdtopologygarbagecollector "sigs.k8s.io/node-feature-discovery/pkg/nfd-topology-gc" + nfdgarbagecollector "sigs.k8s.io/node-feature-discovery/pkg/nfd-gc" "sigs.k8s.io/node-feature-discovery/pkg/version" ) const ( // ProgramName is the canonical name of this program - ProgramName = "nfd-topology-gc" + ProgramName = "nfd-gc" ) func main() { @@ -50,10 +50,10 @@ func main() { klog.InfoS("version not set! Set -ldflags \"-X sigs.k8s.io/node-feature-discovery/pkg/version.version=`git describe --tags --dirty --always`\" during build or run.") } - // Get new TopologyGC instance - gc, err := nfdtopologygarbagecollector.New(args) + // Get new garbage collector instance + gc, err := nfdgarbagecollector.New(args) if err != nil { - klog.ErrorS(err, "failed to initialize topology garbage collector instance") + klog.ErrorS(err, "failed to initialize nfd garbage collector instance") os.Exit(1) } @@ -63,7 +63,7 @@ func main() { } } -func parseArgs(flags *flag.FlagSet, osArgs ...string) *nfdtopologygarbagecollector.Args { +func parseArgs(flags *flag.FlagSet, osArgs ...string) *nfdgarbagecollector.Args { args := initFlags(flags) _ = flags.Parse(osArgs) @@ -76,11 +76,11 @@ func parseArgs(flags *flag.FlagSet, osArgs ...string) *nfdtopologygarbagecollect return args } -func initFlags(flagset *flag.FlagSet) *nfdtopologygarbagecollector.Args { - args := &nfdtopologygarbagecollector.Args{} +func initFlags(flagset *flag.FlagSet) *nfdgarbagecollector.Args { + args := &nfdgarbagecollector.Args{} flagset.DurationVar(&args.GCPeriod, "gc-interval", time.Duration(1)*time.Hour, - "Interval between which Garbage Collector will try to cleanup any missed but already obsolete NodeResourceTopology. [Default: 1h]") + "interval between cleanup of obsolete api objects") flagset.StringVar(&args.Kubeconfig, "kubeconfig", "", "Kubeconfig to use") diff --git a/cmd/nfd-topology-gc/main_test.go b/cmd/nfd-gc/main_test.go similarity index 100% rename from cmd/nfd-topology-gc/main_test.go rename to cmd/nfd-gc/main_test.go diff --git a/deployment/helm/node-feature-discovery/templates/topology-gc.yaml b/deployment/helm/node-feature-discovery/templates/nfd-gc.yaml similarity index 100% rename from deployment/helm/node-feature-discovery/templates/topology-gc.yaml rename to deployment/helm/node-feature-discovery/templates/nfd-gc.yaml diff --git a/pkg/nfd-topology-gc/nfd-nrt-gc.go b/pkg/nfd-gc/nfd-gc.go similarity index 85% rename from pkg/nfd-topology-gc/nfd-nrt-gc.go rename to pkg/nfd-gc/nfd-gc.go index 2ec9de815..22bb95f2c 100644 --- a/pkg/nfd-topology-gc/nfd-nrt-gc.go +++ b/pkg/nfd-gc/nfd-gc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package nfdtopologygarbagecollector +package nfdgarbagecollector import ( "context" @@ -42,19 +42,19 @@ type Args struct { Kubeconfig string } -type TopologyGC interface { +type NfdGarbageCollector interface { Run() error Stop() } -type topologyGC struct { +type nfdGarbageCollector struct { stopChan chan struct{} topoClient topologyclientset.Interface gcPeriod time.Duration factory informers.SharedInformerFactory } -func New(args *Args) (TopologyGC, error) { +func New(args *Args) (NfdGarbageCollector, error) { kubeconfig, err := apihelper.GetKubeconfig(args.Kubeconfig) if err != nil { return nil, err @@ -62,10 +62,10 @@ func New(args *Args) (TopologyGC, error) { stop := make(chan struct{}) - return newTopologyGC(kubeconfig, stop, args.GCPeriod) + return newNfdGarbageCollector(kubeconfig, stop, args.GCPeriod) } -func newTopologyGC(config *restclient.Config, stop chan struct{}, gcPeriod time.Duration) (*topologyGC, error) { +func newNfdGarbageCollector(config *restclient.Config, stop chan struct{}, gcPeriod time.Duration) (*nfdGarbageCollector, error) { helper := apihelper.K8sHelpers{Kubeconfig: config} cli, err := helper.GetTopologyClient() if err != nil { @@ -75,7 +75,7 @@ func newTopologyGC(config *restclient.Config, stop chan struct{}, gcPeriod time. clientset := kubernetes.NewForConfigOrDie(config) factory := informers.NewSharedInformerFactory(clientset, 5*time.Minute) - return &topologyGC{ + return &nfdGarbageCollector{ topoClient: cli, stopChan: stop, gcPeriod: gcPeriod, @@ -83,7 +83,7 @@ func newTopologyGC(config *restclient.Config, stop chan struct{}, gcPeriod time. }, nil } -func (n *topologyGC) deleteNRT(nodeName string) { +func (n *nfdGarbageCollector) deleteNRT(nodeName string) { if err := n.topoClient.TopologyV1alpha2().NodeResourceTopologies().Delete(context.TODO(), nodeName, metav1.DeleteOptions{}); err != nil { if errors.IsNotFound(err) { klog.V(2).InfoS("NodeResourceTopology not found, omitting deletion", "nodeName", nodeName) @@ -96,7 +96,7 @@ func (n *topologyGC) deleteNRT(nodeName string) { klog.InfoS("NodeResourceTopology object has been deleted", "nodeName", nodeName) } -func (n *topologyGC) deleteNodeHandler(object interface{}) { +func (n *nfdGarbageCollector) deleteNodeHandler(object interface{}) { // handle a case when we are starting up and need to clear stale NRT resources obj := object if deletedFinalStateUnknown, ok := object.(cache.DeletedFinalStateUnknown); ok { @@ -114,7 +114,7 @@ func (n *topologyGC) deleteNodeHandler(object interface{}) { } // garbageCollect removes all stale API objects -func (n *topologyGC) garbageCollect() { +func (n *nfdGarbageCollector) garbageCollect() { klog.InfoS("performing garbage collection") nodes, err := n.factory.Core().V1().Nodes().Lister().List(labels.Everything()) if err != nil { @@ -145,7 +145,7 @@ func (n *topologyGC) garbageCollect() { } // periodicGC runs garbage collector at every gcPeriod to make sure we haven't missed any node -func (n *topologyGC) periodicGC(gcPeriod time.Duration) { +func (n *nfdGarbageCollector) periodicGC(gcPeriod time.Duration) { // Do initial round of garbage collection at startup time n.garbageCollect() @@ -162,7 +162,7 @@ func (n *topologyGC) periodicGC(gcPeriod time.Duration) { } } -func (n *topologyGC) startNodeInformer() error { +func (n *nfdGarbageCollector) startNodeInformer() error { nodeInformer := n.factory.Core().V1().Nodes().Informer() if _, err := nodeInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{ @@ -179,7 +179,7 @@ func (n *topologyGC) startNodeInformer() error { } // Run is a blocking function that removes stale NRT objects when Node is deleted and runs periodic GC to make sure any obsolete objects are removed -func (n *topologyGC) Run() error { +func (n *nfdGarbageCollector) Run() error { if err := n.startNodeInformer(); err != nil { return err } @@ -189,6 +189,6 @@ func (n *topologyGC) Run() error { return nil } -func (n *topologyGC) Stop() { +func (n *nfdGarbageCollector) Stop() { close(n.stopChan) } diff --git a/pkg/nfd-topology-gc/nfd-nrt-gc_test.go b/pkg/nfd-gc/nfd-gc_test.go similarity index 97% rename from pkg/nfd-topology-gc/nfd-nrt-gc_test.go rename to pkg/nfd-gc/nfd-gc_test.go index 746be8694..58af2b6b0 100644 --- a/pkg/nfd-topology-gc/nfd-nrt-gc_test.go +++ b/pkg/nfd-gc/nfd-gc_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package nfdtopologygarbagecollector +package nfdgarbagecollector import ( "context" @@ -93,7 +93,7 @@ func TestNRTGC(t *testing.T) { func newMockGC(nodes, nrts []string) *mockGC { k8sClient := fakek8sclientset.NewSimpleClientset(createFakeNodes(nodes...)...) return &mockGC{ - topologyGC: topologyGC{ + nfdGarbageCollector: nfdGarbageCollector{ factory: informers.NewSharedInformerFactory(k8sClient, 5*time.Minute), topoClient: faketopologyv1alpha2.NewSimpleClientset(createFakeNRTs(nrts...)...), stopChan: make(chan struct{}, 1), @@ -126,7 +126,7 @@ func createFakeNRTs(names ...string) []runtime.Object { } type mockGC struct { - topologyGC + nfdGarbageCollector k8sClient k8sclientset.Interface }