// NewReplicationControllerEvaluator returns an evaluator that can evaluate replication controllers func NewReplicationControllerEvaluator(kubeClient clientset.Interface) quota.Evaluator { allResources := []api.ResourceName{api.ResourceReplicationControllers} return &generic.GenericEvaluator{ Name: "Evaluator.ReplicationController", InternalGroupKind: api.Kind("ReplicationController"), InternalOperationResources: map[admission.Operation][]api.ResourceName{ admission.Create: allResources, }, MatchedResourceNames: allResources, MatchesScopeFunc: generic.MatchesNoScopeFunc, ConstraintsFunc: generic.ObjectCountConstraintsFunc(api.ResourceReplicationControllers), UsageFunc: generic.ObjectCountUsageFunc(api.ResourceReplicationControllers), ListFuncByNamespace: func(namespace string, options api.ListOptions) (runtime.Object, error) { return kubeClient.Core().ReplicationControllers(namespace).List(options) }, } }
// NewServiceEvaluator returns an evaluator that can evaluate service quotas func NewServiceEvaluator(kubeClient clientset.Interface) quota.Evaluator { allResources := []api.ResourceName{ api.ResourceServices, api.ResourceServicesNodePorts, api.ResourceServicesLoadBalancers, } return &generic.GenericEvaluator{ Name: "Evaluator.Service", InternalGroupKind: api.Kind("Service"), InternalOperationResources: map[admission.Operation][]api.ResourceName{ admission.Create: allResources, admission.Update: allResources, }, MatchedResourceNames: allResources, MatchesScopeFunc: generic.MatchesNoScopeFunc, ConstraintsFunc: generic.ObjectCountConstraintsFunc(api.ResourceServices), UsageFunc: ServiceUsageFunc, ListFuncByNamespace: func(namespace string, options api.ListOptions) (runtime.Object, error) { return kubeClient.Core().Services(namespace).List(options) }, } }