Skip to content

Commit

Permalink
distinguish two resource detector
Browse files Browse the repository at this point in the history
  • Loading branch information
snowplayfire committed Jan 9, 2023
1 parent 0330535 commit f868a79
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 9 deletions.
13 changes: 7 additions & 6 deletions cmd/controller-manager/app/controllermanager.go
Original file line number Diff line number Diff line change
Expand Up @@ -546,12 +546,13 @@ func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stop

if features.FeatureGate.Enabled(features.PropagateDeps) {
dependenciesDistributor := &dependenciesdistributor.DependenciesDistributor{
Client: mgr.GetClient(),
DynamicClient: dynamicClientSet,
InformerManager: controlPlaneInformerManager,
ResourceInterpreter: resourceInterpreter,
RESTMapper: mgr.GetRESTMapper(),
EventRecorder: mgr.GetEventRecorderFor("dependencies-distributor"),
Client: mgr.GetClient(),
DynamicClient: dynamicClientSet,
InformerManager: controlPlaneInformerManager,
ResourceInterpreter: resourceInterpreter,
RESTMapper: mgr.GetRESTMapper(),
EventRecorder: mgr.GetEventRecorderFor("dependencies-distributor"),
ConcurrentResourceTemplateSyncs: opts.ConcurrentResourceTemplateSyncs,
}
if err := mgr.Add(dependenciesDistributor); err != nil {
klog.Fatalf("Failed to setup dependencies distributor: %v", err)
Expand Down
10 changes: 7 additions & 3 deletions pkg/dependenciesdistributor/dependencies_distributor.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,10 @@ type DependenciesDistributor struct {
RESTMapper meta.RESTMapper
ResourceInterpreter resourceinterpreter.ResourceInterpreter

// ConcurrentResourceTemplateSyncs is the number of resource templates that are allowed to sync concurrently.
// Larger number means responsive resource template syncing but more CPU(and network) load.
ConcurrentResourceTemplateSyncs int

// bindingReconcileWorker maintains a rate limited queue which used to store ResourceBinding's key and
// a reconcile function to consume the items in queue.
bindingReconcileWorker util.AsyncWorker
Expand All @@ -84,7 +88,7 @@ func (d *DependenciesDistributor) Start(ctx context.Context) error {
d.stopCh = ctx.Done()

bindingWorkerOptions := util.Options{
Name: "resourceBinding reconciler",
Name: "dependencies distributor" + "resourceBinding reconciler",
KeyFunc: detector.ClusterWideKeyFunc,
ReconcileFunc: d.ReconcileResourceBinding,
}
Expand All @@ -103,13 +107,13 @@ func (d *DependenciesDistributor) Start(ctx context.Context) error {
d.InformerManager.ForResource(resourceBindingGVR, bindingHandler)
d.resourceBindingLister = d.InformerManager.Lister(resourceBindingGVR)
resourceWorkerOptions := util.Options{
Name: "resource detector",
Name: "dependencies distributor" + "resource detector",
KeyFunc: detector.ClusterWideKeyFunc,
ReconcileFunc: d.Reconcile,
}
d.EventHandler = fedinformer.NewHandlerOnEvents(d.OnAdd, d.OnUpdate, d.OnDelete)
d.Processor = util.NewAsyncWorker(resourceWorkerOptions)
d.Processor.Run(2, d.stopCh)
d.Processor.Run(d.ConcurrentResourceTemplateSyncs, d.stopCh)
go d.discoverResources(30 * time.Second)

<-d.stopCh
Expand Down

0 comments on commit f868a79

Please sign in to comment.