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

add configurable pagination to nfd-master

This commit is contained in:
Igor Velichkovich 2025-01-04 11:25:56 -08:00
parent af706a819e
commit 4c4db8be40
4 changed files with 12 additions and 3 deletions

View file

@ -1,7 +1,8 @@
module sigs.k8s.io/node-feature-discovery/api/nfd
go 1.22.2
toolchain go1.23.7
go 1.23.0
toolchain go1.24.0
require (
github.com/stretchr/testify v1.8.4

View file

@ -117,6 +117,8 @@ func initFlags(flagset *flag.FlagSet) (*master.Args, *master.ConfigOverrideArgs)
"in the same format as in the config file (i.e. json or yaml). These options")
flagset.BoolVar(&args.EnableLeaderElection, "enable-leader-election", false,
"Enables a leader election. Enable this when running more than one replica on nfd master.")
flagset.Int64Var(&args.ListSize, "node-feature-informer-list-size", 0,
"the list size to use when listing node features to sync informer cache")
args.Klog = klogutils.InitKlogFlags(flagset)

View file

@ -57,6 +57,7 @@ type nfdApiControllerOptions struct {
ResyncPeriod time.Duration
K8sClient k8sclient.Interface
NodeFeatureNamespaceSelector *metav1.LabelSelector
ListSize int64
}
func init() {
@ -101,6 +102,9 @@ func newNfdController(config *restclient.Config, nfdApiControllerOptions nfdApiC
if opts.ResourceVersion == "0" {
opts.ResourceVersion = ""
}
if nfdApiControllerOptions.ListSize != 0 {
opts.Limit = nfdApiControllerOptions.ListSize
}
}
featureInformer := nfdinformersv1alpha1.New(informerFactory, "", tweakListOpts).NodeFeatures()
if _, err := featureInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{

View file

@ -45,7 +45,6 @@ import (
restclient "k8s.io/client-go/rest"
"k8s.io/client-go/tools/leaderelection"
"k8s.io/client-go/tools/leaderelection/resourcelock"
"k8s.io/klog/v2"
controller "k8s.io/kubernetes/pkg/controller"
taintutils "k8s.io/kubernetes/pkg/util/taints"
"sigs.k8s.io/yaml"
@ -122,6 +121,8 @@ type Args struct {
Prune bool
Options string
EnableLeaderElection bool
MetricsPort int
ListSize int64
Overrides ConfigOverrideArgs
}
@ -1295,6 +1296,7 @@ func (m *nfdMaster) startNfdApiController() error {
ResyncPeriod: m.config.ResyncPeriod.Duration,
K8sClient: m.k8sClient,
NodeFeatureNamespaceSelector: m.config.Restrictions.NodeFeatureNamespaceSelector,
ListSize: m.args.ListSize,
})
if err != nil {
return fmt.Errorf("failed to initialize CRD controller: %w", err)