Documentation ¶
Index ¶
- Constants
- type InformerCollection
- func (ic *InformerCollection) Add(key InformerKey, obj interface{}, t *testing.T) error
- func (ic *InformerCollection) AddEventHandler(informerKey InformerKey, handler cache.ResourceEventHandler)
- func (ic *InformerCollection) GetByKey(informerKey InformerKey, objectKey string) (interface{}, bool, error)
- func (ic *InformerCollection) IsMonitoredNamespace(namespace string) bool
- func (ic *InformerCollection) List(informerKey InformerKey) []interface{}
- func (ic *InformerCollection) Update(key InformerKey, obj interface{}, t *testing.T) error
- type InformerCollectionOption
- type InformerKey
Constants ¶
const ( // DefaultKubeEventResyncInterval is the default resync interval for k8s events // This is set to 0 because we do not need resyncs from k8s client, and have our // own Ticker to turn on periodic resyncs. DefaultKubeEventResyncInterval = 0 * time.Second )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type InformerCollection ¶
type InformerCollection struct {
// contains filtered or unexported fields
}
InformerCollection is an abstraction around a set of informers initialized with the clients stored in its fields. This data type should only be passed around as a pointer
func NewInformerCollection ¶
func NewInformerCollection(meshName string, fsmNamespace string, stop <-chan struct{}, opts ...InformerCollectionOption) (*InformerCollection, error)
NewInformerCollection creates a new InformerCollection
func (*InformerCollection) Add ¶
func (ic *InformerCollection) Add(key InformerKey, obj interface{}, t *testing.T) error
Add is only exported for the sake of tests and requires a testing.T to ensure it's never used in production. This functionality was added for the express purpose of testing flexibility since alternatives can often lead to flaky tests and race conditions between the time an object is added to a fake clientset and when that object is actually added to the informer `cache.Store`
func (*InformerCollection) AddEventHandler ¶
func (ic *InformerCollection) AddEventHandler(informerKey InformerKey, handler cache.ResourceEventHandler)
AddEventHandler adds an handler to the informer indexed by the given InformerKey
func (*InformerCollection) GetByKey ¶
func (ic *InformerCollection) GetByKey(informerKey InformerKey, objectKey string) (interface{}, bool, error)
GetByKey retrieves an item (based on the given index) from the store of the informer indexed by the given InformerKey
func (*InformerCollection) IsMonitoredNamespace ¶
func (ic *InformerCollection) IsMonitoredNamespace(namespace string) bool
IsMonitoredNamespace returns a boolean indicating if the namespace is among the list of monitored namespaces
func (*InformerCollection) List ¶
func (ic *InformerCollection) List(informerKey InformerKey) []interface{}
List returns the contents of the store of the informer indexed by the given InformerKey
func (*InformerCollection) Update ¶
func (ic *InformerCollection) Update(key InformerKey, obj interface{}, t *testing.T) error
Update is only exported for the sake of tests and requires a testing.T to ensure it's never used in production. This functionality was added for the express purpose of testing flexibility since the alternatives can often lead to flaky tests and race conditions between the time an object is added to a fake clientset and when that object is actually added to the informer `cache.Store`
type InformerCollectionOption ¶
type InformerCollectionOption func(*InformerCollection)
InformerCollectionOption is a function that modifies an informer collection
func WithKubeClient ¶
func WithKubeClient(kubeClient kubernetes.Interface) InformerCollectionOption
WithKubeClient sets the kubeClient for the InformerCollection
type InformerKey ¶
type InformerKey string
InformerKey stores the different Informers we keep for K8s resources
const ( // InformerKeyNamespace is the InformerKey for a Namespace informer InformerKeyNamespace InformerKey = "Namespace" // InformerKeyPod is the InformerKey for a Pod informer InformerKeyPod InformerKey = "Pod" // InformerKeySidecarPod is the InformerKey for a Sidecar Pod informer InformerKeySidecarPod InformerKey = "Sidecar-Pod" )