Documentation ¶
Index ¶
Constants ¶
const DefaultBufferSize = 8192
DefaultBufferSize indicates the buffer size of the underlying channels that will be created for object kinds by default. This literally equates to the number of Kubernetes objects which can be in the queue at a single time.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Queue ¶
type Queue struct {
// contains filtered or unexported fields
}
Queue provides a pub/sub queue with channels for individual Kubernetes objects, the purpose of which is to submit GenericEvents for those objects to trigger reconciliation when the object has been successfully configured in the dataplane so that its status can be updated (for instance, with IP address information in the case of Ingress resources).
func NewQueue ¶
func NewQueue(opts ...QueueOption) *Queue
NewQueue provides a new Queue object which can be used to publish status update events or subscribe to those events.
func (*Queue) Publish ¶
Publish emits a GenericEvent for the provided objects that indicates to subscribers that the status of that object needs to be updated. It's a no-op if there are no subscriptions for the object kind.
func (*Queue) Subscribe ¶
func (q *Queue) Subscribe(gvk schema.GroupVersionKind) chan event.GenericEvent
Subscribe provides a consumer channel where generic events for the provided object kind will be published when the status for the object needs to be updated.
Note that more than one consumer can subscribe to a channel for a particular object kind, but that this only represents a single channel: events will not be duplicated and each subscriber will receive events on a first come first serve basis.
type QueueOption ¶
type QueueOption func(*Queue)
QueueOption provides a functional option for configuring a Queue object.
func WithBufferSize ¶
func WithBufferSize(size int) QueueOption
WithBufferSize sets the buffer size of the underlying channels that will be created for object kinds.