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 ¶
- func BasicKeyer() func(metadata metav1.Object) []types.NamespacedName
- func EnqueueAfter(interval time.Duration) error
- func NamespacedKeyer(namespace string) func(metadata metav1.Object) []types.NamespacedName
- func NewReflector(name string, namespaced NamespacedReflectorFactoryFunc, ...) manager.Reflector
- type ConcurrencyMode
- type FallbackReflectorFactoryFunc
- type NamespacedReflector
- func (gnr *NamespacedReflector) DeleteLocal(ctx context.Context, deleter ResourceDeleter, resource, name string, ...) error
- func (gnr *NamespacedReflector) DeleteRemote(ctx context.Context, deleter ResourceDeleter, resource, name string, ...) error
- func (gnr *NamespacedReflector) LocalNamespace() string
- func (gnr *NamespacedReflector) LocalRef(name string) klog.ObjectRef
- func (gnr *NamespacedReflector) Ready() bool
- func (gnr *NamespacedReflector) RemoteNamespace() string
- func (gnr *NamespacedReflector) RemoteRef(name string) klog.ObjectRef
- func (gnr *NamespacedReflector) ShouldSkipReflection(obj metav1.Object) bool
- type NamespacedReflectorFactoryFunc
- type ResourceDeleter
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 EnqueueAfter ¶ added in v0.7.0
EnqueueAfter returns an error to convey that the current key should be reenqueued after a given duration.
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, concurrencyMode ConcurrencyMode) 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 ConcurrencyMode ¶ added in v0.9.0
type ConcurrencyMode string
ConcurrencyMode returns the concurrency mode of the reflector.
const ( // ConcurrencyModeLeader is the concurrency mode that allows to run the reflector only on the leader node. ConcurrencyModeLeader ConcurrencyMode = "leader" // ConcurrencyModeAll is the concurrency mode that allows to run the reflector on all the nodes. ConcurrencyModeAll ConcurrencyMode = "all" )
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 ForgingOpts *forge.ForgingOpts // 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) DeleteLocal ¶ added in v0.9.0
func (gnr *NamespacedReflector) DeleteLocal(ctx context.Context, deleter ResourceDeleter, resource, name string, uid types.UID) error
DeleteLocal deletes the given local resource from the cluster.
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.
func (*NamespacedReflector) ShouldSkipReflection ¶ added in v0.6.0
func (gnr *NamespacedReflector) ShouldSkipReflection(obj metav1.Object) bool
ShouldSkipReflection returns whether the reflection of the given object should be skipped.
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.