remote

package
v0.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2020 License: Apache-2.0 Imports: 23 Imported by: 0

README

Copied from https://github.com/kubernetes-sigs/cluster-api/tree/master/controllers/remote@v0.3.6.

Incompatible with v0.18.2 Kubernetes packages at this time, so temporarily forked and modified. Should use upstream package when API is compatible.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewClusterClient

func NewClusterClient(ctx context.Context, c client.Client, cluster client.ObjectKey, scheme *runtime.Scheme) (client.Client, error)

NewClusterClient returns a Client for interacting with a remote Cluster using the given scheme for encoding and decoding objects.

func RESTConfig

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.

Types

type ClusterCacheReconciler

type ClusterCacheReconciler struct {
	// contains filtered or unexported fields
}

ClusterCacheReconciler is responsible for stopping remote cluster caches when the cluster for the remote cache is being deleted.

func NewClusterCacheReconciler

func NewClusterCacheReconciler(
	log logr.Logger,
	mgr ctrl.Manager,
	controllerOptions controller.Options,
	cct *ClusterCacheTracker,
) (*ClusterCacheReconciler, error)

func (*ClusterCacheReconciler) Reconcile

Reconcile reconciles Clusters and removes ClusterCaches for any Cluster that cannot be retrieved from the management cluster.

type ClusterCacheTracker

type ClusterCacheTracker struct {
	// contains filtered or unexported fields
}

ClusterCacheTracker manages client caches for workload clusters.

func NewClusterCacheTracker

func NewClusterCacheTracker(log logr.Logger, manager ctrl.Manager) (*ClusterCacheTracker, error)

NewClusterCacheTracker creates a new ClusterCacheTracker.

func (*ClusterCacheTracker) Watch

func (m *ClusterCacheTracker) Watch(ctx context.Context, input WatchInput) error

Watch watches a remote cluster for resource events. If the watch already exists based on cluster, watcher, kind, and eventHandler, then this is a no-op.

type ClusterClientGetter

type ClusterClientGetter func(ctx context.Context, c client.Client, cluster client.ObjectKey, scheme *runtime.Scheme) (client.Client, error)

ClusterClientGetter returns a new remote client.

type WatchInput

type WatchInput struct {
	// 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 runtime.Object

	// CacheOptions are used to specify options for the remote cache, such as the Scheme to use.
	CacheOptions cache.Options

	// 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

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.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL