Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Filter ¶
func Filter(gvk schema.GroupVersionKind) func(obj interface{}) bool
Filter makes it simple to create FilterFunc's for use with cache.FilteringResourceEventHandler that filter based on the schema.GroupVersionKind of the controlling resources.
func PassNew ¶
func PassNew(f func(interface{})) func(interface{}, interface{})
PassNew makes it simple to create an UpdateFunc for use with cache.ResourceEventHandlerFuncs that can delegate the same methods as AddFunc/DeleteFunc but passing through only the second argument (which is the "new" object).
Types ¶
type Impl ¶
type Impl struct { // Reconciler is the workhorse of this controller, it is fed the keys // from the workqueue to process. Public for testing. Reconciler Reconciler // WorkQueue is a rate limited work queue. This is used to queue work to be // processed instead of performing it as soon as a change happens. This // means we can ensure we only process a fixed amount of resources at a // time, and makes it easy to ensure we are never processing the same item // simultaneously in two different workers. WorkQueue workqueue.RateLimitingInterface // contains filtered or unexported fields }
Impl is our core controller implementation. It handles queuing and feeding work from the queue to an implementation of Reconciler.
func NewImpl ¶
func NewImpl(r Reconciler, logger *zap.SugaredLogger, workQueueName string) *Impl
NewImpl instantiates an instance of our controller that will feed work to the provided Reconciler as it is enqueued.
func (*Impl) Enqueue ¶
func (c *Impl) Enqueue(obj interface{})
Enqueue takes a resource, converts it into a namespace/name string, and passes it to EnqueueKey.
func (*Impl) EnqueueControllerOf ¶
func (c *Impl) EnqueueControllerOf(obj interface{})
EnqueueControllerOf takes a resource, identifies its controller resource, converts it into a namespace/name string, and passes that to EnqueueKey.
func (*Impl) EnqueueKey ¶
EnqueueKey takes a namespace/name string and puts it onto the work queue.