func (c *MasterConfig) RunClusterQuotaReconciliationController() { osClient, kClient := c.ResourceQuotaManagerClients() resourceQuotaRegistry := quota.NewAllResourceQuotaRegistry(osClient, kClient) groupKindsToReplenish := quota.AllEvaluatedGroupKinds options := clusterquotareconciliation.ClusterQuotaReconcilationControllerOptions{ ClusterQuotaInformer: c.Informers.ClusterResourceQuotas(), ClusterQuotaMapper: c.ClusterQuotaMappingController.GetClusterQuotaMapper(), ClusterQuotaClient: osClient, Registry: resourceQuotaRegistry, ResyncPeriod: defaultResourceQuotaSyncPeriod, ControllerFactory: quotacontroller.NewAllResourceReplenishmentControllerFactory(c.Informers, osClient, kClient), ReplenishmentResyncPeriod: controller.StaticResyncPeriodFunc(defaultReplenishmentSyncPeriod), GroupKindsToReplenish: groupKindsToReplenish, } controller := clusterquotareconciliation.NewClusterQuotaReconcilationController(options) c.ClusterQuotaMappingController.GetClusterQuotaMapper().AddListener(controller) go controller.Run(5, utilwait.NeverStop) }
// RunResourceQuotaManager starts resource quota controller for OpenShift resources func (c *MasterConfig) RunResourceQuotaManager(cm *cmapp.CMServer) { concurrentResourceQuotaSyncs := defaultConcurrentResourceQuotaSyncs resourceQuotaSyncPeriod := defaultResourceQuotaSyncPeriod replenishmentSyncPeriodFunc := controller.StaticResyncPeriodFunc(defaultReplenishmentSyncPeriod) if cm != nil { // TODO: should these be part of os master config? concurrentResourceQuotaSyncs = int(cm.ConcurrentResourceQuotaSyncs) resourceQuotaSyncPeriod = cm.ResourceQuotaSyncPeriod.Duration replenishmentSyncPeriodFunc = kctrlmgr.ResyncPeriod(cm) } osClient, kClient := c.ResourceQuotaManagerClients() resourceQuotaRegistry := quota.NewAllResourceQuotaRegistry(osClient, kClient) resourceQuotaControllerOptions := &kresourcequota.ResourceQuotaControllerOptions{ KubeClient: kClient, ResyncPeriod: controller.StaticResyncPeriodFunc(resourceQuotaSyncPeriod), Registry: resourceQuotaRegistry, GroupKindsToReplenish: quota.AllEvaluatedGroupKinds, ControllerFactory: quotacontroller.NewAllResourceReplenishmentControllerFactory(c.Informers, osClient, kClient), ReplenishmentResyncPeriod: replenishmentSyncPeriodFunc, } go kresourcequota.NewResourceQuotaController(resourceQuotaControllerOptions).Run(concurrentResourceQuotaSyncs, utilwait.NeverStop) }