mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +00:00
Merge pull request #22628 from wojtek-t/efficient_resource_quota_controller
Auto commit by PR queue bot
This commit is contained in:
commit
88d0ac4a67
@ -243,8 +243,9 @@ func StartControllers(s *options.CMServer, kubeClient *client.Client, kubeconfig
|
|||||||
KubeClient: resourceQuotaControllerClient,
|
KubeClient: resourceQuotaControllerClient,
|
||||||
ResyncPeriod: controller.StaticResyncPeriodFunc(s.ResourceQuotaSyncPeriod.Duration),
|
ResyncPeriod: controller.StaticResyncPeriodFunc(s.ResourceQuotaSyncPeriod.Duration),
|
||||||
Registry: resourceQuotaRegistry,
|
Registry: resourceQuotaRegistry,
|
||||||
GroupKindsToReplenish: groupKindsToReplenish,
|
|
||||||
ControllerFactory: resourcequotacontroller.NewReplenishmentControllerFactory(resourceQuotaControllerClient),
|
ControllerFactory: resourcequotacontroller.NewReplenishmentControllerFactory(resourceQuotaControllerClient),
|
||||||
|
ReplenishmentResyncPeriod: ResyncPeriod(s),
|
||||||
|
GroupKindsToReplenish: groupKindsToReplenish,
|
||||||
}
|
}
|
||||||
go resourcequotacontroller.NewResourceQuotaController(resourceQuotaControllerOptions).Run(s.ConcurrentResourceQuotaSyncs, wait.NeverStop)
|
go resourcequotacontroller.NewResourceQuotaController(resourceQuotaControllerOptions).Run(s.ConcurrentResourceQuotaSyncs, wait.NeverStop)
|
||||||
|
|
||||||
|
@ -45,6 +45,8 @@ type ResourceQuotaControllerOptions struct {
|
|||||||
Registry quota.Registry
|
Registry quota.Registry
|
||||||
// Knows how to build controllers that notify replenishment events
|
// Knows how to build controllers that notify replenishment events
|
||||||
ControllerFactory ReplenishmentControllerFactory
|
ControllerFactory ReplenishmentControllerFactory
|
||||||
|
// Controls full resync of objects monitored for replenihsment.
|
||||||
|
ReplenishmentResyncPeriod controller.ResyncPeriodFunc
|
||||||
// List of GroupKind objects that should be monitored for replenishment at
|
// List of GroupKind objects that should be monitored for replenishment at
|
||||||
// a faster frequency than the quota controller recalculation interval
|
// a faster frequency than the quota controller recalculation interval
|
||||||
GroupKindsToReplenish []unversioned.GroupKind
|
GroupKindsToReplenish []unversioned.GroupKind
|
||||||
@ -124,7 +126,7 @@ func NewResourceQuotaController(options *ResourceQuotaControllerOptions) *Resour
|
|||||||
for _, groupKindToReplenish := range options.GroupKindsToReplenish {
|
for _, groupKindToReplenish := range options.GroupKindsToReplenish {
|
||||||
controllerOptions := &ReplenishmentControllerOptions{
|
controllerOptions := &ReplenishmentControllerOptions{
|
||||||
GroupKind: groupKindToReplenish,
|
GroupKind: groupKindToReplenish,
|
||||||
ResyncPeriod: options.ResyncPeriod,
|
ResyncPeriod: options.ReplenishmentResyncPeriod,
|
||||||
ReplenishmentFunc: rq.replenishQuota,
|
ReplenishmentFunc: rq.replenishQuota,
|
||||||
}
|
}
|
||||||
replenishmentController, err := options.ControllerFactory.NewController(controllerOptions)
|
replenishmentController, err := options.ControllerFactory.NewController(controllerOptions)
|
||||||
|
@ -114,6 +114,7 @@ func TestSyncResourceQuota(t *testing.T) {
|
|||||||
api.Kind("PersistentVolumeClaim"),
|
api.Kind("PersistentVolumeClaim"),
|
||||||
},
|
},
|
||||||
ControllerFactory: NewReplenishmentControllerFactory(kubeClient),
|
ControllerFactory: NewReplenishmentControllerFactory(kubeClient),
|
||||||
|
ReplenishmentResyncPeriod: controller.NoResyncPeriodFunc,
|
||||||
}
|
}
|
||||||
quotaController := NewResourceQuotaController(resourceQuotaControllerOptions)
|
quotaController := NewResourceQuotaController(resourceQuotaControllerOptions)
|
||||||
err := quotaController.syncResourceQuota(resourceQuota)
|
err := quotaController.syncResourceQuota(resourceQuota)
|
||||||
@ -199,6 +200,7 @@ func TestSyncResourceQuotaSpecChange(t *testing.T) {
|
|||||||
api.Kind("PersistentVolumeClaim"),
|
api.Kind("PersistentVolumeClaim"),
|
||||||
},
|
},
|
||||||
ControllerFactory: NewReplenishmentControllerFactory(kubeClient),
|
ControllerFactory: NewReplenishmentControllerFactory(kubeClient),
|
||||||
|
ReplenishmentResyncPeriod: controller.NoResyncPeriodFunc,
|
||||||
}
|
}
|
||||||
quotaController := NewResourceQuotaController(resourceQuotaControllerOptions)
|
quotaController := NewResourceQuotaController(resourceQuotaControllerOptions)
|
||||||
err := quotaController.syncResourceQuota(resourceQuota)
|
err := quotaController.syncResourceQuota(resourceQuota)
|
||||||
@ -275,6 +277,7 @@ func TestSyncResourceQuotaNoChange(t *testing.T) {
|
|||||||
api.Kind("PersistentVolumeClaim"),
|
api.Kind("PersistentVolumeClaim"),
|
||||||
},
|
},
|
||||||
ControllerFactory: NewReplenishmentControllerFactory(kubeClient),
|
ControllerFactory: NewReplenishmentControllerFactory(kubeClient),
|
||||||
|
ReplenishmentResyncPeriod: controller.NoResyncPeriodFunc,
|
||||||
}
|
}
|
||||||
quotaController := NewResourceQuotaController(resourceQuotaControllerOptions)
|
quotaController := NewResourceQuotaController(resourceQuotaControllerOptions)
|
||||||
err := quotaController.syncResourceQuota(resourceQuota)
|
err := quotaController.syncResourceQuota(resourceQuota)
|
||||||
|
Loading…
Reference in New Issue
Block a user