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 {
      	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 (*ClusterCacheReconciler) Reconcile

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

          func (*ClusterCacheReconciler) SetupWithManager

          func (r *ClusterCacheReconciler) SetupWithManager(mgr ctrl.Manager, options controller.Options) error

          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 NewTestClusterCacheTracker

              func NewTestClusterCacheTracker(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 (*ClusterCacheTracker) GetClient

                func (t *ClusterCacheTracker) GetClient(ctx context.Context, cluster client.ObjectKey) (client.Client, error)

                  GetClient returns a client for the given cluster.

                  func (*ClusterCacheTracker) Watch

                  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

                    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 {
                      	// 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 runtime.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

                        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