Add default rate limiter used by all controllers
Signed-off-by: James Munnelly <james@munnelly.eu>
This commit is contained in:
parent
73f65b9490
commit
b103403ff7
@ -67,7 +67,7 @@ func New(ctx *controllerpkg.Context) *Controller {
|
||||
ctrl.syncHandler = ctrl.processNextWorkItem
|
||||
|
||||
// exponentially back-off self checks, with a base of 2s and max wait of 20s
|
||||
ctrl.queue = workqueue.NewNamedRateLimitingQueue(workqueue.NewItemExponentialFailureRateLimiter(time.Second*2, time.Second*20), "challenges")
|
||||
ctrl.queue = workqueue.NewNamedRateLimitingQueue(controllerpkg.DefaultItemBasedRateLimiter(), "challenges")
|
||||
|
||||
challengeInformer := ctrl.SharedInformerFactory.Certmanager().V1alpha1().Challenges()
|
||||
challengeInformer.Informer().AddEventHandler(&controllerpkg.QueuingEventHandler{Queue: ctrl.queue})
|
||||
|
||||
@ -51,7 +51,7 @@ func New(ctx *controllerpkg.Context) *Controller {
|
||||
ctrl := &Controller{Context: *ctx}
|
||||
ctrl.syncHandler = ctrl.processNextWorkItem
|
||||
|
||||
ctrl.queue = workqueue.NewNamedRateLimitingQueue(workqueue.NewItemExponentialFailureRateLimiter(time.Second*1, time.Second*10), "challenges-scheduler")
|
||||
ctrl.queue = workqueue.NewNamedRateLimitingQueue(controllerpkg.DefaultItemBasedRateLimiter(), "challenges-scheduler")
|
||||
|
||||
challengeInformer := ctrl.SharedInformerFactory.Certmanager().V1alpha1().Challenges()
|
||||
challengeInformer.Informer().AddEventHandler(&controllerpkg.QueuingEventHandler{Queue: ctrl.queue})
|
||||
|
||||
@ -65,7 +65,7 @@ func New(ctx *controllerpkg.Context) *Controller {
|
||||
ctrl := &Controller{Context: *ctx}
|
||||
ctrl.syncHandler = ctrl.processNextWorkItem
|
||||
|
||||
ctrl.queue = workqueue.NewNamedRateLimitingQueue(workqueue.NewItemExponentialFailureRateLimiter(time.Second*2, time.Minute*1), "orders")
|
||||
ctrl.queue = workqueue.NewNamedRateLimitingQueue(controllerpkg.DefaultItemBasedRateLimiter(), "orders")
|
||||
|
||||
orderInformer := ctrl.SharedInformerFactory.Certmanager().V1alpha1().Orders()
|
||||
orderInformer.Informer().AddEventHandler(&controllerpkg.QueuingEventHandler{Queue: ctrl.queue})
|
||||
|
||||
@ -58,7 +58,7 @@ type Controller struct {
|
||||
func New(ctx *controllerpkg.Context) *Controller {
|
||||
ctrl := &Controller{Context: ctx}
|
||||
ctrl.syncHandler = ctrl.processNextWorkItem
|
||||
ctrl.queue = workqueue.NewNamedRateLimitingQueue(workqueue.NewItemExponentialFailureRateLimiter(time.Second*2, time.Minute*1), "certificates")
|
||||
ctrl.queue = workqueue.NewNamedRateLimitingQueue(controllerpkg.DefaultItemBasedRateLimiter(), "certificates")
|
||||
|
||||
// Create a scheduled work queue that calls the ctrl.queue.Add method for
|
||||
// each object in the queue. This is used to schedule re-checks of
|
||||
|
||||
@ -54,7 +54,7 @@ type Controller struct {
|
||||
func New(ctx *controllerpkg.Context) *Controller {
|
||||
ctrl := &Controller{Context: *ctx}
|
||||
ctrl.syncHandler = ctrl.processNextWorkItem
|
||||
ctrl.queue = workqueue.NewNamedRateLimitingQueue(workqueue.NewItemExponentialFailureRateLimiter(time.Second*5, time.Minute*1), "clusterissuers")
|
||||
ctrl.queue = workqueue.NewNamedRateLimitingQueue(controllerpkg.DefaultItemBasedRateLimiter(), "clusterissuers")
|
||||
|
||||
clusterIssuerInformer := ctrl.SharedInformerFactory.Certmanager().V1alpha1().ClusterIssuers()
|
||||
clusterIssuerInformer.Informer().AddEventHandler(&controllerpkg.QueuingEventHandler{Queue: ctrl.queue})
|
||||
|
||||
@ -85,7 +85,7 @@ func New(
|
||||
) *Controller {
|
||||
ctrl := &Controller{Client: client, CMClient: cmClient, Recorder: recorder, defaults: defaults}
|
||||
ctrl.syncHandler = ctrl.processNextWorkItem
|
||||
ctrl.queue = workqueue.NewNamedRateLimitingQueue(workqueue.NewItemExponentialFailureRateLimiter(time.Second*5, time.Minute*1), "ingresses")
|
||||
ctrl.queue = workqueue.NewNamedRateLimitingQueue(controllerpkg.DefaultItemBasedRateLimiter(), "ingresses")
|
||||
|
||||
ingressInformer.Informer().AddEventHandler(&controllerpkg.QueuingEventHandler{Queue: ctrl.queue})
|
||||
ctrl.ingressLister = ingressInformer.Lister()
|
||||
|
||||
@ -55,7 +55,7 @@ func New(ctx *controllerpkg.Context) *Controller {
|
||||
}
|
||||
|
||||
ctrl.syncHandler = ctrl.processNextWorkItem
|
||||
ctrl.queue = workqueue.NewNamedRateLimitingQueue(workqueue.NewItemExponentialFailureRateLimiter(time.Second*5, time.Minute*1), "issuers")
|
||||
ctrl.queue = workqueue.NewNamedRateLimitingQueue(controllerpkg.DefaultItemBasedRateLimiter(), "issuers")
|
||||
|
||||
issuerInformer := ctrl.SharedInformerFactory.Certmanager().V1alpha1().Issuers()
|
||||
issuerInformer.Informer().AddEventHandler(&controllerpkg.QueuingEventHandler{Queue: ctrl.queue})
|
||||
|
||||
@ -18,6 +18,7 @@ package controller
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"time"
|
||||
|
||||
"k8s.io/apimachinery/pkg/util/runtime"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
@ -28,6 +29,10 @@ var (
|
||||
KeyFunc = cache.DeletionHandlingMetaNamespaceKeyFunc
|
||||
)
|
||||
|
||||
func DefaultItemBasedRateLimiter() workqueue.RateLimiter {
|
||||
return workqueue.NewItemExponentialFailureRateLimiter(time.Second*5, time.Minute*5)
|
||||
}
|
||||
|
||||
// QueuingEventHandler is an implementation of cache.ResourceEventHandler that
|
||||
// simply queues objects that are added/updated/deleted.
|
||||
type QueuingEventHandler struct {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user