Skip to content

Commit 1cb1dac

Browse files
author
OpenShift Bot
authored
Merge pull request #9658 from deads2k/cq-07-controller
Merged by openshift-bot
2 parents 38179e7 + cca0e89 commit 1cb1dac

File tree

12 files changed

+1149
-255
lines changed

12 files changed

+1149
-255
lines changed

Godeps/_workspace/src/k8s.io/kubernetes/pkg/controller/resourcequota/resource_quota_controller.go

+16-36
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Godeps/_workspace/src/k8s.io/kubernetes/pkg/quota/resources.go

+31
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/client/clusteresourcequota.go

+7
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ type ClusterResourceQuotaInterface interface {
1515
List(opts kapi.ListOptions) (*quotaapi.ClusterResourceQuotaList, error)
1616
Get(name string) (*quotaapi.ClusterResourceQuota, error)
1717
Create(resourceQuota *quotaapi.ClusterResourceQuota) (*quotaapi.ClusterResourceQuota, error)
18+
Update(resourceQuota *quotaapi.ClusterResourceQuota) (*quotaapi.ClusterResourceQuota, error)
1819
Delete(name string) error
1920
Watch(opts kapi.ListOptions) (watch.Interface, error)
2021
}
@@ -48,6 +49,12 @@ func (c *clusterResourceQuotas) Create(resourceQuota *quotaapi.ClusterResourceQu
4849
return
4950
}
5051

52+
func (c *clusterResourceQuotas) Update(resourceQuota *quotaapi.ClusterResourceQuota) (result *quotaapi.ClusterResourceQuota, err error) {
53+
result = &quotaapi.ClusterResourceQuota{}
54+
err = c.r.Put().Resource("clusterresourcequotas").Name(resourceQuota.Name).Body(resourceQuota).Do().Into(result)
55+
return
56+
}
57+
5158
func (c *clusterResourceQuotas) Delete(name string) (err error) {
5259
err = c.r.Delete().Resource("clusterresourcequotas").Name(name).Do().Error()
5360
return

pkg/client/testclient/fake_clusterresourcequota.go

+8
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@ func (c *FakeClusterResourceQuotas) Create(inObj *quotaapi.ClusterResourceQuota)
4141
return obj.(*quotaapi.ClusterResourceQuota), err
4242
}
4343

44+
func (c *FakeClusterResourceQuotas) Update(inObj *quotaapi.ClusterResourceQuota) (*quotaapi.ClusterResourceQuota, error) {
45+
obj, err := c.Fake.Invokes(ktestclient.NewRootUpdateAction("clusterresourcequotas", inObj), inObj)
46+
if obj == nil {
47+
return nil, err
48+
}
49+
50+
return obj.(*quotaapi.ClusterResourceQuota), err
51+
}
4452
func (c *FakeClusterResourceQuotas) Delete(name string) error {
4553
_, err := c.Fake.Invokes(ktestclient.NewRootDeleteAction("clusterresourcequotas", name), &quotaapi.ClusterResourceQuota{})
4654
return err

pkg/cmd/server/origin/run_components.go

+30
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"k8s.io/kubernetes/pkg/controller"
2020
kresourcequota "k8s.io/kubernetes/pkg/controller/resourcequota"
2121
sacontroller "k8s.io/kubernetes/pkg/controller/serviceaccount"
22+
quotainstall "k8s.io/kubernetes/pkg/quota/install"
2223
"k8s.io/kubernetes/pkg/registry/service/allocator"
2324
etcdallocator "k8s.io/kubernetes/pkg/registry/service/allocator/etcd"
2425
"k8s.io/kubernetes/pkg/serviceaccount"
@@ -52,6 +53,7 @@ import (
5253
imageapi "github.com/openshift/origin/pkg/image/api"
5354
quota "github.com/openshift/origin/pkg/quota"
5455
quotacontroller "github.com/openshift/origin/pkg/quota/controller"
56+
"github.com/openshift/origin/pkg/quota/controller/clusterquotareconciliation"
5557
sdnplugin "github.com/openshift/origin/pkg/sdn/plugin"
5658
serviceaccountcontrollers "github.com/openshift/origin/pkg/serviceaccounts/controllers"
5759
)
@@ -508,3 +510,31 @@ func (c *MasterConfig) RunClusterQuotaMappingController() {
508510
go c.ClusterQuotaMappingController.Run(5, utilwait.NeverStop)
509511
})
510512
}
513+
514+
func (c *MasterConfig) RunClusterQuotaReconciliationController() {
515+
osClient, kClient := c.ResourceQuotaManagerClients()
516+
resourceQuotaRegistry := quotainstall.NewRegistry(kClient)
517+
groupKindsToReplenish := []unversioned.GroupKind{
518+
kapi.Kind("Pod"),
519+
kapi.Kind("Service"),
520+
kapi.Kind("ReplicationController"),
521+
kapi.Kind("PersistentVolumeClaim"),
522+
kapi.Kind("Secret"),
523+
kapi.Kind("ConfigMap"),
524+
}
525+
526+
options := clusterquotareconciliation.ClusterQuotaReconcilationControllerOptions{
527+
ClusterQuotaInformer: c.Informers.ClusterResourceQuotas(),
528+
ClusterQuotaMapper: c.ClusterQuotaMappingController.GetClusterQuotaMapper(),
529+
ClusterQuotaClient: osClient,
530+
531+
Registry: resourceQuotaRegistry,
532+
ResyncPeriod: defaultResourceQuotaSyncPeriod,
533+
ControllerFactory: kresourcequota.NewReplenishmentControllerFactory(c.Informers.Pods().Informer(), kClient),
534+
ReplenishmentResyncPeriod: controller.StaticResyncPeriodFunc(defaultReplenishmentSyncPeriod),
535+
GroupKindsToReplenish: groupKindsToReplenish,
536+
}
537+
controller := clusterquotareconciliation.NewClusterQuotaReconcilationController(options)
538+
c.ClusterQuotaMappingController.GetClusterQuotaMapper().AddListener(controller)
539+
go controller.Run(5, utilwait.NeverStop)
540+
}

pkg/cmd/server/start/start_master.go

+1
Original file line numberDiff line numberDiff line change
@@ -656,6 +656,7 @@ func startControllers(oc *origin.MasterConfig, kc *kubernetes.MasterConfig) erro
656656
oc.RunImageImportController()
657657
oc.RunOriginNamespaceController()
658658
oc.RunSDNController()
659+
oc.RunClusterQuotaReconciliationController()
659660
oc.RunClusterQuotaMappingController()
660661

661662
_, _, serviceServingCertClient, err := oc.GetServiceAccountClients(bootstrappolicy.ServiceServingCertServiceAccountName)

0 commit comments

Comments
 (0)