@@ -52,7 +52,6 @@ type nfdController struct {
5252}
5353
5454type nfdApiControllerOptions struct {
55- DisableNodeFeature bool
5655 DisableNodeFeatureGroup bool
5756 ResyncPeriod time.Duration
5857 K8sClient k8sclient.Interface
@@ -92,72 +91,64 @@ func newNfdController(config *restclient.Config, nfdApiControllerOptions nfdApiC
9291 informerFactory := nfdinformers .NewSharedInformerFactory (nfdClient , nfdApiControllerOptions .ResyncPeriod )
9392
9493 // Add informer for NodeFeature objects
95- if ! nfdApiControllerOptions .DisableNodeFeature {
96- tweakListOpts := func (opts * metav1.ListOptions ) {
97- // Tweak list opts on initial sync to avoid timeouts on the apiserver.
98- // NodeFeature objects are huge and the Kubernetes apiserver
99- // (v1.30) experiences http handler timeouts when the resource
100- // version is set to some non-empty value (TODO: find out why).
101- if opts .ResourceVersion == "0" {
102- opts .ResourceVersion = ""
103- }
94+ tweakListOpts := func (opts * metav1.ListOptions ) {
95+ // Tweak list opts on initial sync to avoid timeouts on the apiserver.
96+ // NodeFeature objects are huge and the Kubernetes apiserver
97+ // (v1.30) experiences http handler timeouts when the resource
98+ // version is set to some non-empty value (TODO: find out why).
99+ if opts .ResourceVersion == "0" {
100+ opts .ResourceVersion = ""
104101 }
105- featureInformer := nfdinformersv1alpha1 .New (informerFactory , "" , tweakListOpts ).NodeFeatures ()
106- if _ , err := featureInformer .Informer ().AddEventHandler (cache.ResourceEventHandlerFuncs {
107- AddFunc : func (obj interface {}) {
108- nfr := obj .(* nfdv1alpha1.NodeFeature )
109- klog .V (2 ).InfoS ("NodeFeature added" , "nodefeature" , klog .KObj (nfr ))
110- if c .isNamespaceSelected (nfr .Namespace ) {
111- c .updateOneNode ("NodeFeature" , nfr )
112- } else {
113- klog .V (2 ).InfoS ("NodeFeature namespace is not selected, skipping" , "nodefeature" , klog .KObj (nfr ))
114- }
115- if ! nfdApiControllerOptions .DisableNodeFeatureGroup {
116- c .updateAllNodeFeatureGroups ()
117- }
118- },
119- UpdateFunc : func (oldObj , newObj interface {}) {
120- nfr := newObj .(* nfdv1alpha1.NodeFeature )
121- klog .V (2 ).InfoS ("NodeFeature updated" , "nodefeature" , klog .KObj (nfr ))
122- c .updateOneNode ("NodeFeature" , nfr )
123- if ! nfdApiControllerOptions .DisableNodeFeatureGroup {
124- c .updateAllNodeFeatureGroups ()
125- }
126- },
127- DeleteFunc : func (obj interface {}) {
128- nfr := obj .(* nfdv1alpha1.NodeFeature )
129- klog .V (2 ).InfoS ("NodeFeature deleted" , "nodefeature" , klog .KObj (nfr ))
102+ }
103+ featureInformer := nfdinformersv1alpha1 .New (informerFactory , "" , tweakListOpts ).NodeFeatures ()
104+ if _ , err := featureInformer .Informer ().AddEventHandler (cache.ResourceEventHandlerFuncs {
105+ AddFunc : func (obj interface {}) {
106+ nfr := obj .(* nfdv1alpha1.NodeFeature )
107+ klog .V (2 ).InfoS ("NodeFeature added" , "nodefeature" , klog .KObj (nfr ))
108+ if c .isNamespaceSelected (nfr .Namespace ) {
130109 c .updateOneNode ("NodeFeature" , nfr )
131- if ! nfdApiControllerOptions .DisableNodeFeatureGroup {
132- c .updateAllNodeFeatureGroups ()
133- }
134- },
135- }); err != nil {
136- return nil , err
137- }
138- c .featureLister = featureInformer .Lister ()
110+ } else {
111+ klog .V (2 ).InfoS ("NodeFeature namespace is not selected, skipping" , "nodefeature" , klog .KObj (nfr ))
112+ }
113+ if ! nfdApiControllerOptions .DisableNodeFeatureGroup {
114+ c .updateAllNodeFeatureGroups ()
115+ }
116+ },
117+ UpdateFunc : func (oldObj , newObj interface {}) {
118+ nfr := newObj .(* nfdv1alpha1.NodeFeature )
119+ klog .V (2 ).InfoS ("NodeFeature updated" , "nodefeature" , klog .KObj (nfr ))
120+ c .updateOneNode ("NodeFeature" , nfr )
121+ if ! nfdApiControllerOptions .DisableNodeFeatureGroup {
122+ c .updateAllNodeFeatureGroups ()
123+ }
124+ },
125+ DeleteFunc : func (obj interface {}) {
126+ nfr := obj .(* nfdv1alpha1.NodeFeature )
127+ klog .V (2 ).InfoS ("NodeFeature deleted" , "nodefeature" , klog .KObj (nfr ))
128+ c .updateOneNode ("NodeFeature" , nfr )
129+ if ! nfdApiControllerOptions .DisableNodeFeatureGroup {
130+ c .updateAllNodeFeatureGroups ()
131+ }
132+ },
133+ }); err != nil {
134+ return nil , err
139135 }
136+ c .featureLister = featureInformer .Lister ()
140137
141138 // Add informer for NodeFeatureRule objects
142139 nodeFeatureRuleInformer := informerFactory .Nfd ().V1alpha1 ().NodeFeatureRules ()
143140 if _ , err := nodeFeatureRuleInformer .Informer ().AddEventHandler (cache.ResourceEventHandlerFuncs {
144141 AddFunc : func (object interface {}) {
145142 klog .V (2 ).InfoS ("NodeFeatureRule added" , "nodefeaturerule" , klog .KObj (object .(metav1.Object )))
146- if ! nfdApiControllerOptions .DisableNodeFeature {
147- c .updateAllNodes ()
148- }
143+ c .updateAllNodes ()
149144 },
150145 UpdateFunc : func (oldObject , newObject interface {}) {
151146 klog .V (2 ).InfoS ("NodeFeatureRule updated" , "nodefeaturerule" , klog .KObj (newObject .(metav1.Object )))
152- if ! nfdApiControllerOptions .DisableNodeFeature {
153- c .updateAllNodes ()
154- }
147+ c .updateAllNodes ()
155148 },
156149 DeleteFunc : func (object interface {}) {
157150 klog .V (2 ).InfoS ("NodeFeatureRule deleted" , "nodefeaturerule" , klog .KObj (object .(metav1.Object )))
158- if ! nfdApiControllerOptions .DisableNodeFeature {
159- c .updateAllNodes ()
160- }
151+ c .updateAllNodes ()
161152 },
162153 }); err != nil {
163154 return nil , err
0 commit comments