generic

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jun 24, 2022 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Package generic implements the generic logic to reflect Kubernetes objects 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

func BasicKeyer added in v0.3.2

func BasicKeyer() func(metadata metav1.Object) types.NamespacedName

BasicKeyer returns a keyer retrieving the name and namespace from the object metadata.

func NamespacedKeyer

func NamespacedKeyer(namespace string) func(metadata metav1.Object) types.NamespacedName

NamespacedKeyer returns a keyer associated with the given namespace, retrieving the object name from its metadata.

func NewReflector

func NewReflector(name string, namespaced NamespacedReflectorFactoryFunc, fallback FallbackReflectorFactoryFunc, workers uint) manager.Reflector

NewReflector returns a new reflector to implement the reflection towards a remote clusters, of a dummy one if no workers are specified.

Types

type FallbackReflectorFactoryFunc added in v0.3.2

type FallbackReflectorFactoryFunc func(*options.ReflectorOpts) manager.FallbackReflector

FallbackReflectorFactoryFunc represents the function type to create a new FallbackReflector.

func WithoutFallback added in v0.3.2

func WithoutFallback() FallbackReflectorFactoryFunc

WithoutFallback returns a FallbackReflectorFactoryFunc which disables the fallback functionality.

type NamespacedReflector

type NamespacedReflector struct {
	record.EventRecorder
	// contains filtered or unexported fields
}

NamespacedReflector implements the logic common to all namespaced reflectors.

func NewNamespacedReflector

func NewNamespacedReflector(opts *options.NamespacedOpts, name string) NamespacedReflector

NewNamespacedReflector returns a new NamespacedReflector for the given namespaces.

func (*NamespacedReflector) DeleteRemote

func (gnr *NamespacedReflector) DeleteRemote(ctx context.Context, deleter ResourceDeleter, resource, name string, uid types.UID) error

DeleteRemote deletes the given remote resource from the cluster.

func (*NamespacedReflector) LocalNamespace

func (gnr *NamespacedReflector) LocalNamespace() string

LocalNamespace returns the local namespace associated with the reflector.

func (*NamespacedReflector) LocalRef

func (gnr *NamespacedReflector) LocalRef(name string) klog.ObjectRef

LocalRef returns the ObjectRef associated with the local namespace.

func (*NamespacedReflector) Ready

func (gnr *NamespacedReflector) Ready() bool

Ready returns whether the NamespacedReflector is completely initialized.

func (*NamespacedReflector) RemoteNamespace

func (gnr *NamespacedReflector) RemoteNamespace() string

RemoteNamespace returns the remote namespace associated with the reflector.

func (*NamespacedReflector) RemoteRef

func (gnr *NamespacedReflector) RemoteRef(name string) klog.ObjectRef

RemoteRef returns the ObjectRef associated with the remote namespace.

type NamespacedReflectorFactoryFunc

type NamespacedReflectorFactoryFunc func(*options.NamespacedOpts) manager.NamespacedReflector

NamespacedReflectorFactoryFunc represents the function type to create a new NamespacedReflector.

type ResourceDeleter

type ResourceDeleter interface {
	Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error
}

ResourceDeleter know how to delete a Kubernetes object with the given name.

Directories

Path Synopsis
Package fake implements the reflector interfaces for testing purposes.
Package fake implements the reflector interfaces for testing purposes.

Jump to

Keyboard shortcuts

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