// NewClusterQuotaMappingController builds a mapping between namespaces and clusterresourcequotas func NewClusterQuotaMappingController(namespaceInformer shared.NamespaceInformer, quotaInformer shared.ClusterResourceQuotaInformer) *ClusterQuotaMappingController { c := &ClusterQuotaMappingController{ namespaceQueue: workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter()), quotaQueue: workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter()), clusterQuotaMapper: NewClusterQuotaMapper(), } namespaceInformer.Informer().AddEventHandler(framework.ResourceEventHandlerFuncs{ AddFunc: c.addNamespace, UpdateFunc: c.updateNamespace, DeleteFunc: c.deleteNamespace, }) c.namespaceLister = namespaceInformer.Lister() c.namespacesSynced = namespaceInformer.Informer().HasSynced quotaInformer.Informer().AddEventHandler(framework.ResourceEventHandlerFuncs{ AddFunc: c.addQuota, UpdateFunc: c.updateQuota, DeleteFunc: c.deleteQuota, }) c.quotaLister = quotaInformer.Lister() c.quotasSynced = quotaInformer.Informer().HasSynced return c }
// NewClusterQuotaMappingController builds a mapping between namespaces and clusterresourcequotas func NewClusterQuotaMappingController(namespaceInformer shared.NamespaceInformer, quotaInformer shared.ClusterResourceQuotaInformer) *ClusterQuotaMappingController { c := &ClusterQuotaMappingController{ namespaceQueue: workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter()), quotaQueue: workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter()), clusterQuotaMapper: &clusterQuotaMapper{ requiredQuotaToSelector: map[string]*unversioned.LabelSelector{}, requiredNamespaceToLabels: map[string]map[string]string{}, completedQuotaToSelector: map[string]*unversioned.LabelSelector{}, completedNamespaceToLabels: map[string]map[string]string{}, quotaToNamespaces: map[string]sets.String{}, namespaceToQuota: map[string]sets.String{}, }, } namespaceInformer.Informer().AddEventHandler(framework.ResourceEventHandlerFuncs{ AddFunc: c.addNamespace, UpdateFunc: c.updateNamespace, DeleteFunc: c.deleteNamespace, }) c.namespaceLister = namespaceInformer.Lister() c.namespacesSynced = namespaceInformer.Informer().HasSynced quotaInformer.Informer().AddEventHandler(framework.ResourceEventHandlerFuncs{ AddFunc: c.addQuota, UpdateFunc: c.updateQuota, DeleteFunc: c.deleteQuota, }) c.quotaLister = quotaInformer.Lister() c.quotasSynced = quotaInformer.Informer().HasSynced return c }