Skip to content

Commit 6bdb759

Browse files
zhujian7claude
andcommitted
Replace inefficient list-and-filter with indexed lookup in runController
Use managedClusterAddonIndexer.ByIndex() instead of listing all ManagedClusterAddOns and filtering by name. This provides O(1) indexed lookup instead of O(n) linear scan. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> Signed-off-by: zhujian <[email protected]>
1 parent 700b773 commit 6bdb759

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

pkg/addon/controllers/addontemplate/controller.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"github.com/openshift/library-go/pkg/operator/events"
99
"k8s.io/apimachinery/pkg/api/errors"
1010
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
11-
"k8s.io/apimachinery/pkg/labels"
1211
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
1312
"k8s.io/client-go/dynamic/dynamicinformer"
1413
kubeinformers "k8s.io/client-go/informers"
@@ -131,9 +130,10 @@ func (c *addonTemplateController) stopUnusedManagers(
131130

132131
stopFunc, ok := c.addonManagers[addOnName]
133132
if ok {
133+
logger.Info("Sart to stop the manager for addon", "addonName", addOnName)
134134
stopFunc()
135135
delete(c.addonManagers, addOnName)
136-
logger.Info("Stopping the manager for addon", "addonName", addOnName)
136+
logger.Info("The manager for addon stopped", "addonName", addOnName)
137137
}
138138
return nil
139139
}
@@ -249,13 +249,14 @@ func (c *addonTemplateController) runController(ctx context.Context, addonName s
249249
kubeInformers.Start(ctx.Done())
250250

251251
// trigger the manager to reconcile for the existing managed cluster addons
252-
mcas, err := c.addonInformers.Addon().V1alpha1().ManagedClusterAddOns().Lister().List(labels.Everything())
252+
mcas, err := c.managedClusterAddonIndexer.ByIndex(addonindex.ManagedClusterAddonByName, addonName)
253253
if err != nil {
254-
logger.Info("Failed to list ManagedClusterAddOns", "error", err)
254+
logger.Info("Failed to list ManagedClusterAddOns by index", "error", err)
255255
} else {
256256
for _, mca := range mcas {
257-
if mca.Name == addonName {
258-
mgr.Trigger(mca.Namespace, addonName)
257+
addon, ok := mca.(*addonv1alpha1.ManagedClusterAddOn)
258+
if ok {
259+
mgr.Trigger(addon.Namespace, addonName)
259260
}
260261
}
261262
}

0 commit comments

Comments
 (0)