Merge pull request #120777 from atiratree/reintroduce-resource-quota-monitor

reintroduce resourcequota.NewMonitor
This commit is contained in:
Kubernetes Prow Robot 2023-09-20 21:22:25 -07:00 committed by GitHub
commit bf421d52f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 10 deletions

View File

@ -151,16 +151,15 @@ func NewController(ctx context.Context, options *ControllerOptions) (*Controller
) )
if options.DiscoveryFunc != nil { if options.DiscoveryFunc != nil {
qm := &QuotaMonitor{ qm := NewMonitor(
informersStarted: options.InformersStarted, options.InformersStarted,
informerFactory: options.InformerFactory, options.InformerFactory,
ignoredResources: options.IgnoredResourcesFunc(), options.IgnoredResourcesFunc(),
resourceChanges: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "resource_quota_controller_resource_changes"), options.ReplenishmentResyncPeriod,
resyncPeriod: options.ReplenishmentResyncPeriod, rq.replenishQuota,
replenishmentFunc: rq.replenishQuota, rq.registry,
registry: rq.registry, options.UpdateFilter,
updateFilter: options.UpdateFilter, )
}
rq.quotaMonitor = qm rq.quotaMonitor = qm

View File

@ -103,6 +103,20 @@ type QuotaMonitor struct {
updateFilter UpdateFilter updateFilter UpdateFilter
} }
// NewMonitor creates a new instance of a QuotaMonitor
func NewMonitor(informersStarted <-chan struct{}, informerFactory informerfactory.InformerFactory, ignoredResources map[schema.GroupResource]struct{}, resyncPeriod controller.ResyncPeriodFunc, replenishmentFunc ReplenishmentFunc, registry quota.Registry, updateFilter UpdateFilter) *QuotaMonitor {
return &QuotaMonitor{
informersStarted: informersStarted,
informerFactory: informerFactory,
ignoredResources: ignoredResources,
resourceChanges: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "resource_quota_controller_resource_changes"),
resyncPeriod: resyncPeriod,
replenishmentFunc: replenishmentFunc,
registry: registry,
updateFilter: updateFilter,
}
}
// monitor runs a Controller with a local stop channel. // monitor runs a Controller with a local stop channel.
type monitor struct { type monitor struct {
controller cache.Controller controller cache.Controller