Documentation ¶
Index ¶
- func AggregatedWatch(watches ...clients.ResourceWatch) clients.ResourceWatch
- func AggregatedWatchFromClients(clientOpts ...ClientWatchOpts) clients.ResourceWatch
- func ResourceWatch(rw clients.ResourceWatcher, namespace string, selector map[string]string) clients.ResourceWatch
- func SingleResourceWatch(rw clients.ResourceWatch, resourceName string) clients.ResourceWatch
- type Client
- func (c *Client) List(namespace string, opts clients.ListOpts) (resources.ResourceList, error)
- func (c *Client) Read(namespace, name string, opts clients.ReadOpts) (resources.Resource, error)
- func (c *Client) Watch(namespace string, opts clients.WatchOpts) (<-chan resources.ResourceList, <-chan error, error)
- func (c *Client) Write(resource resources.Resource, opts clients.WriteOpts) (resources.Resource, error)
- type ClientWatchOpts
- type WatchAggregator
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AggregatedWatch ¶
func AggregatedWatch(watches ...clients.ResourceWatch) clients.ResourceWatch
func AggregatedWatchFromClients ¶
func AggregatedWatchFromClients(clientOpts ...ClientWatchOpts) clients.ResourceWatch
func ResourceWatch ¶
func ResourceWatch(rw clients.ResourceWatcher, namespace string, selector map[string]string) clients.ResourceWatch
func SingleResourceWatch ¶
func SingleResourceWatch(rw clients.ResourceWatch, resourceName string) clients.ResourceWatch
Types ¶
type Client ¶
type Client struct { clients.ResourceClient ProcessResource func(resource resources.Resource) }
A wrapper.Client wraps a ResourceClient, applying a Processing function to each read and written resource
func NewClusterClient ¶
func NewClusterClient(base clients.ResourceClient, cluster string) *Client
func (*Client) Write ¶
func (c *Client) Write(resource resources.Resource, opts clients.WriteOpts) (resources.Resource, error)
ProcessResource must be called both before and after write. Before so that changes made can be persisted, and after in order to restore changes that might not be persisted by the underlying data store (e.g. ClusterName on Kubernetes).
type ClientWatchOpts ¶
type ClientWatchOpts struct { // the watch client to start the watch BaseClient clients.ResourceWatcher // the namespace to watch // will be ignored if the resource // is cluster-scoped Namespace string // if provided, the watch will return lists // containing only the single named resource // or an empty list ResourceName string // the label selector to apply to the watch Selector map[string]string }
predefine the options for starting a watch
type WatchAggregator ¶
type WatchAggregator interface { clients.ResourceWatcher AddWatch(w clients.ResourceWatcher) error RemoveWatch(w clients.ResourceWatcher) }
A wrapper.watchAggregator wraps multiple ResourceWatchers and aggregates a watch on each into a single Watch func
func NewWatchAggregator ¶
func NewWatchAggregator() WatchAggregator
warning to users: The Watch Aggregator sends snapshots composed from multiple source watches If a source watch fails to deliver resource lists and/or is returning errors on the watch channel, resources from that watcher will be removed from the merged resource list.
Syncers should be aware that resources may be missing from snapshots if one of the source watches is not sending snapshots, e.g. on an unreachable remote cluster. We should be careful when invalidating user config or potentially removing resources in these cases