manager

package
v0.3.2-alpha.1 Latest Latest
Warning

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

Go to latest
Published: Nov 4, 2021 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package manager implements the generic logic to manage the resource reflection between the local and the remote cluster, for a set of resources and namespaces.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FallbackReflector added in v0.3.2

type FallbackReflector interface {
	// Handle is responsible for reconciling the given "orphan" object.
	Handle(ctx context.Context, key types.NamespacedName) error
	// Keys returns a set of keys to be enqueued for fallback processing for the given namespace pair.
	Keys(local, remote string) []types.NamespacedName
	// Ready returns whether the FallbackReflector is completely initialized.
	Ready() bool
}

FallbackReflector implements fallback reflection for "orphan" local objects not managed by namespaced reflectors.

type Manager

type Manager interface {
	// With registers the given reflector to the manager.
	With(reflector Reflector) Manager
	// Start starts the reflection manager. It panics if executed twice.
	Start(ctx context.Context)

	// StartNamespace starts the reflection for a given namespace.
	StartNamespace(local, remote string)
	// StopNamespace stops the reflection for a given namespace.
	StopNamespace(local, remote string)
}

Manager manages the reflection of objects between the local and the remote cluster.

func New

func New(local, remote kubernetes.Interface, resync time.Duration) Manager

New returns a new manager to start the reflection towards a remote cluster.

type NamespacedReflector

type NamespacedReflector interface {
	// Handle is responsible for reconciling the given object and ensuring it is correctly reflected.
	Handle(ctx context.Context, name string) error
	// Ready returns whether the NamespacedReflector is completely initialized.
	Ready() bool
}

NamespacedReflector implements the reflection between a local and a remote namespace.

type Reflector

type Reflector interface {
	// Start starts the reflector.
	Start(ctx context.Context, opts *options.ReflectorOpts)
	// StartNamespace starts the reflection for the given namespace.
	StartNamespace(opts *options.NamespacedOpts)
	// StopNamespace stops the reflection for a given namespace.
	StopNamespace(local, remote string)
}

Reflector implements the reflection between the local and the remote cluster.

Jump to

Keyboard shortcuts

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