import "sigs.k8s.io/cluster-api/controllers/remote"
cluster.go cluster_cache.go cluster_cache_fake.go cluster_cache_reconciler.go stoppable_cache.go
func NewClusterClient(ctx context.Context, c client.Client, cluster client.ObjectKey) (client.Client, error)
NewClusterClient returns a Client for interacting with a remote Cluster using the given scheme for encoding and decoding objects.
func RESTConfig(ctx context.Context, c client.Reader, cluster client.ObjectKey) (*restclient.Config, error)
RESTConfig returns a configuration instance to be used with a Kubernetes client.
type ClusterCacheReconciler struct { Log logr.Logger Client client.Client Tracker *ClusterCacheTracker }
ClusterCacheReconciler is responsible for stopping remote cluster caches when the cluster for the remote cache is being deleted.
func (r *ClusterCacheReconciler) Reconcile(ctx context.Context, req reconcile.Request) (reconcile.Result, error)
Reconcile reconciles Clusters and removes ClusterCaches for any Cluster that cannot be retrieved from the management cluster.
func (r *ClusterCacheReconciler) SetupWithManager(ctx context.Context, mgr ctrl.Manager, options controller.Options) error
type ClusterCacheTracker struct {
// contains filtered or unexported fields
}
ClusterCacheTracker manages client caches for workload clusters.
NewClusterCacheTracker creates a new ClusterCacheTracker.
func NewTestClusterCacheTracker(log logr.Logger, cl client.Client, scheme *runtime.Scheme, objKey client.ObjectKey, watchObjects ...string) *ClusterCacheTracker
NewTestClusterCacheTracker creates a new fake ClusterCacheTracker that can be used by unit tests with fake client.
func (t *ClusterCacheTracker) GetClient(ctx context.Context, cluster client.ObjectKey) (client.Client, error)
GetClient returns a cached client for the given cluster.
func (t *ClusterCacheTracker) Watch(ctx context.Context, input WatchInput) error
Watch watches a remote cluster for resource events. If the watch already exists based on input.Name, this is a no-op.
type ClusterClientGetter func(ctx context.Context, c client.Client, cluster client.ObjectKey) (client.Client, error)
ClusterClientGetter returns a new remote client.
type WatchInput struct { // Name represents a unique watch request for the specified Cluster. Name string // Cluster is the key for the remote cluster. Cluster client.ObjectKey // Watcher is the watcher (controller) whose Reconcile() function will be called for events. Watcher Watcher // Kind is the type of resource to watch. Kind client.Object // EventHandler contains the event handlers to invoke for resource events. EventHandler handler.EventHandler // Predicates is used to filter resource events. Predicates []predicate.Predicate }
WatchInput specifies the parameters used to establish a new watch for a remote cluster.
type Watcher interface { // Watch watches src for changes, sending events to eventHandler if they pass predicates. Watch(src source.Source, eventHandler handler.EventHandler, predicates ...predicate.Predicate) error }
Watcher is a scoped-down interface from Controller that only knows how to watch.
Path | Synopsis |
---|---|
fake |
Package remote imports 25 packages (graph) and is imported by 14 packages. Updated 2021-01-24. Refresh now. Tools for package owners.