@@ -81,7 +81,6 @@ func (r *FluentBitConfigReconciler) Reconcile(ctx context.Context, req ctrl.Requ
8181 }
8282
8383 for _ , fb := range fbs .Items {
84-
8584 var cfgs fluentbitv1alpha2.ClusterFluentBitConfigList
8685 if err := r .List (ctx , & cfgs ); err != nil {
8786 if errors .IsNotFound (err ) {
@@ -95,54 +94,29 @@ func (r *FluentBitConfigReconciler) Reconcile(ctx context.Context, req ctrl.Requ
9594 if cfg .Name != fb .Spec .FluentBitConfigName {
9695 continue
9796 }
97+
9898 var inputs fluentbitv1alpha2.ClusterInputList
99- selector , err := metav1 .LabelSelectorAsSelector (& cfg .Spec .InputSelector )
100- if err != nil {
101- return ctrl.Result {}, err
102- }
103- if err = r .List (ctx , & inputs , client.MatchingLabelsSelector {Selector : selector }); err != nil {
99+ if err := listClusterResources (ctx , r .Client , & cfg .Spec .InputSelector , & inputs ); err != nil {
104100 return ctrl.Result {}, err
105101 }
106102
107- // List all filters matching the label selector.
108103 var filters fluentbitv1alpha2.ClusterFilterList
109- selector , err = metav1 .LabelSelectorAsSelector (& cfg .Spec .FilterSelector )
110- if err != nil {
111- return ctrl.Result {}, err
112- }
113- if err = r .List (ctx , & filters , client.MatchingLabelsSelector {Selector : selector }); err != nil {
104+ if err := listClusterResources (ctx , r .Client , & cfg .Spec .FilterSelector , & filters ); err != nil {
114105 return ctrl.Result {}, err
115106 }
116107
117- // List all outputs matching the label selector.
118108 var outputs fluentbitv1alpha2.ClusterOutputList
119- selector , err = metav1 .LabelSelectorAsSelector (& cfg .Spec .OutputSelector )
120- if err != nil {
121- return ctrl.Result {}, err
122- }
123- if err = r .List (ctx , & outputs , client.MatchingLabelsSelector {Selector : selector }); err != nil {
109+ if err := listClusterResources (ctx , r .Client , & cfg .Spec .OutputSelector , & outputs ); err != nil {
124110 return ctrl.Result {}, err
125111 }
126112
127- // List all parsers matching the label selector.
128113 var parsers fluentbitv1alpha2.ClusterParserList
129- selector , err = metav1 .LabelSelectorAsSelector (& cfg .Spec .ParserSelector )
130- if err != nil {
131- return ctrl.Result {}, err
132- }
133- if err = r .List (ctx , & parsers , client.MatchingLabelsSelector {Selector : selector }); err != nil {
114+ if err := listClusterResources (ctx , r .Client , & cfg .Spec .ParserSelector , & parsers ); err != nil {
134115 return ctrl.Result {}, err
135116 }
136117
137- // List all multiline parsers matching the label selector.
138118 var multilineParsers fluentbitv1alpha2.ClusterMultilineParserList
139- selector , err = metav1 .LabelSelectorAsSelector (& cfg .Spec .MultilineParserSelector )
140- if err != nil {
141- return ctrl.Result {}, err
142- }
143- if err = r .List (
144- ctx , & multilineParsers , client.MatchingLabelsSelector {Selector : selector },
145- ); err != nil {
119+ if err := listClusterResources (ctx , r .Client , & cfg .Spec .MultilineParserSelector , & multilineParsers ); err != nil {
146120 return ctrl.Result {}, err
147121 }
148122
@@ -292,6 +266,32 @@ func (r *FluentBitConfigReconciler) processNamespacedFluentBitCfgs(
292266 return filters , outputs , parsers , clusterParsers , multilineParsers , clusterMultilineParsers , rewriteTagConfigs , nil
293267}
294268
269+ func listClusterResources [T client.ObjectList ](
270+ ctx context.Context , cli client.Client , selector * metav1.LabelSelector , list T ,
271+ ) error {
272+ sel , err := metav1 .LabelSelectorAsSelector (selector )
273+ if err != nil {
274+ return err
275+ }
276+ if err := cli .List (ctx , list , client.MatchingLabelsSelector {Selector : sel }); err != nil {
277+ return err
278+ }
279+ return nil
280+ }
281+
282+ func listNamespacedResources [T client.ObjectList ](
283+ ctx context.Context , cli client.Client , list T , namespace string , selector * metav1.LabelSelector ,
284+ ) error {
285+ sel , err := metav1 .LabelSelectorAsSelector (selector )
286+ if err != nil {
287+ return err
288+ }
289+ if err := cli .List (ctx , list , client .InNamespace (namespace ), client.MatchingLabelsSelector {Selector : sel }); err != nil {
290+ return err
291+ }
292+ return nil
293+ }
294+
295295func (r * FluentBitConfigReconciler ) ListNamespacedResources (
296296 ctx context.Context , cfg fluentbitv1alpha2.FluentBitConfig ,
297297) (
@@ -306,62 +306,26 @@ func (r *FluentBitConfigReconciler) ListNamespacedResources(
306306 var multipleParsers fluentbitv1alpha2.MultilineParserList
307307 var clusterMultipleParsers fluentbitv1alpha2.ClusterMultilineParserList
308308
309- selector , err := metav1 .LabelSelectorAsSelector (& cfg .Spec .FilterSelector )
310- if err != nil {
311- return filters , outputs , parsers , clusterParsers , multipleParsers , clusterMultipleParsers , err
312- }
313- if err := r .List (
314- ctx , & filters , client .InNamespace (cfg .Namespace ), client.MatchingLabelsSelector {Selector : selector },
315- ); err != nil {
316- return filters , outputs , parsers , clusterParsers , multipleParsers , clusterMultipleParsers , err
317- }
318-
319- selector , err = metav1 .LabelSelectorAsSelector (& cfg .Spec .OutputSelector )
320- if err != nil {
321- return filters , outputs , parsers , clusterParsers , multipleParsers , clusterMultipleParsers , err
322- }
323- if err := r .List (
324- ctx , & outputs , client .InNamespace (cfg .Namespace ), client.MatchingLabelsSelector {Selector : selector },
325- ); err != nil {
309+ if err := listNamespacedResources (ctx , r .Client , & filters , cfg .Namespace , & cfg .Spec .FilterSelector ); err != nil {
326310 return filters , outputs , parsers , clusterParsers , multipleParsers , clusterMultipleParsers , err
327311 }
328312
329- selector , err = metav1 .LabelSelectorAsSelector (& cfg .Spec .ParserSelector )
330- if err != nil {
313+ if err := listNamespacedResources (ctx , r .Client , & outputs , cfg .Namespace , & cfg .Spec .OutputSelector ); err != nil {
331314 return filters , outputs , parsers , clusterParsers , multipleParsers , clusterMultipleParsers , err
332315 }
333- if err := r .List (
334- ctx , & parsers , client .InNamespace (cfg .Namespace ), client.MatchingLabelsSelector {Selector : selector },
335- ); err != nil {
316+ if err := listNamespacedResources (ctx , r .Client , & parsers , cfg .Namespace , & cfg .Spec .ParserSelector ); err != nil {
336317 return filters , outputs , parsers , clusterParsers , multipleParsers , clusterMultipleParsers , err
337318 }
338319
339- selector , err = metav1 .LabelSelectorAsSelector (& cfg .Spec .ClusterParserSelector )
340- if err != nil {
341- return filters , outputs , parsers , clusterParsers , multipleParsers , clusterMultipleParsers , err
342- }
343- if err := r .List (ctx , & clusterParsers , client.MatchingLabelsSelector {Selector : selector }); err != nil {
320+ if err := listNamespacedResources (ctx , r .Client , & clusterParsers , cfg .Namespace , & cfg .Spec .ClusterParserSelector ); err != nil {
344321 return filters , outputs , parsers , clusterParsers , multipleParsers , clusterMultipleParsers , err
345322 }
346323
347- selector , err = metav1 .LabelSelectorAsSelector (& cfg .Spec .MultilineParserSelector )
348- if err != nil {
349- return filters , outputs , parsers , clusterParsers , multipleParsers , clusterMultipleParsers , err
350- }
351- if err := r .List (
352- ctx , & multipleParsers , client .InNamespace (cfg .Namespace ), client.MatchingLabelsSelector {Selector : selector },
353- ); err != nil {
324+ if err := listNamespacedResources (ctx , r .Client , & multipleParsers , cfg .Namespace , & cfg .Spec .MultilineParserSelector ); err != nil {
354325 return filters , outputs , parsers , clusterParsers , multipleParsers , clusterMultipleParsers , err
355326 }
356327
357- selector , err = metav1 .LabelSelectorAsSelector (& cfg .Spec .ClusterMultilineParserSelector )
358- if err != nil {
359- return filters , outputs , parsers , clusterParsers , multipleParsers , clusterMultipleParsers , err
360- }
361- if err := r .List (
362- ctx , & clusterMultipleParsers , client .InNamespace (cfg .Namespace ),
363- client.MatchingLabelsSelector {Selector : selector },
364- ); err != nil {
328+ if err := listNamespacedResources (ctx , r .Client , & clusterMultipleParsers , cfg .Namespace , & cfg .Spec .ClusterMultilineParserSelector ); err != nil {
365329 return filters , outputs , parsers , clusterParsers , multipleParsers , clusterMultipleParsers , err
366330 }
367331
0 commit comments