controller

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jun 15, 2020 License: Apache-2.0, MIT Imports: 37 Imported by: 43

Documentation

Index

Constants

View Source
const A_MAINTAINER = "crds.gardener.cloud/maintainer"
View Source
const CLUSTER_MAIN = mappings.CLUSTER_MAIN
View Source
const CONTROLLER_SET_PREFIX = "controller."
View Source
const DEFAULT_POOL = "default"
View Source
const DEFAULT_RECONCILER = "default"
View Source
const POOL_RESYNC_PERIOD_OPTION = "pool.resync-period"
View Source
const POOL_SIZE_OPTION = "pool.size"

Variables

This section is empty.

Functions

func ClassesFilter

func ClassesFilter(classes *Classes) resources.ObjectFilter

func DecodeObjectSubKey

func DecodeObjectSubKey(key string) (apiGroup, kind, namespace, name string, err error)

func EncodeCommandKey

func EncodeCommandKey(cmd string) string

func EncodeObjectKey

func EncodeObjectKey(cluster string, o resources.ObjectKey) string

func EncodeObjectKeyForObject

func EncodeObjectKeyForObject(o resources.Object) string

func EncodeObjectSubKey

func EncodeObjectSubKey(o resources.ObjectKey) string

func Filter

func Filter(owning ResourceKey, resc resources.Object) bool

func FinalizerName added in v0.2.0

func FinalizerName(domain, controller string) string

func LocalNamespaceSelection added in v0.2.0

func LocalNamespaceSelection(c Interface) (string, resources.TweakListOptionsFunc)

func Map

func Map() *mapping

func NewController

func NewController(env Environment, def Definition, cmp mappings.Definition) (*controller, error)

func NewPool

func NewPool(controller *controller, name string, size int, period time.Duration) *pool

func OptionSourceCreator added in v0.2.0

func OptionSourceCreator(proto config.OptionSource) extension.OptionSourceCreator

func Register

func Register(reg Registerable, groups ...string) error

Types

type Classes

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

func NewClasses

func NewClasses(logger logger.LogContext, value string, anno string, def string) *Classes

func NewClassesByOption

func NewClassesByOption(c Interface, opt string, anno string, def string) *Classes

func NewTargetClasses

func NewTargetClasses(c Interface, value string, anno string, classes *Classes, def string) *Classes

func NewTargetClassesByOption

func NewTargetClassesByOption(c Interface, opt string, anno string, classes *Classes) *Classes

func (*Classes) Classes

func (this *Classes) Classes() utils.StringSet

func (*Classes) Contains

func (this *Classes) Contains(class string) bool

func (*Classes) Default

func (this *Classes) Default() string

func (*Classes) IsDefault

func (this *Classes) IsDefault() bool

func (*Classes) IsResponsibleFor

func (this *Classes) IsResponsibleFor(logger logger.LogContext, obj resources.Object) bool

func (*Classes) Main

func (this *Classes) Main() string

func (*Classes) Size

func (this *Classes) Size() int

func (*Classes) String

func (this *Classes) String() string

type ClassesFinalizer

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

func (*ClassesFinalizer) FinalizerName

func (this *ClassesFinalizer) FinalizerName(obj resources.Object) string

func (*ClassesFinalizer) HasFinalizer

func (this *ClassesFinalizer) HasFinalizer(obj resources.Object) bool

func (*ClassesFinalizer) RemoveFinalizer

func (this *ClassesFinalizer) RemoveFinalizer(obj resources.Object) error

func (*ClassesFinalizer) SetFinalizer

func (this *ClassesFinalizer) SetFinalizer(obj resources.Object) error

type ClusterHandler

type ClusterHandler struct {
	logger.LogContext
	// contains filtered or unexported fields
}

func (*ClusterHandler) EnqueueKey

func (c *ClusterHandler) EnqueueKey(key resources.ClusterObjectKey) error

func (*ClusterHandler) EnqueueObject

func (c *ClusterHandler) EnqueueObject(obj resources.Object) error

func (*ClusterHandler) EnqueueObjectAfter

func (c *ClusterHandler) EnqueueObjectAfter(obj resources.Object, duration time.Duration) error

func (*ClusterHandler) EnqueueObjectRateLimited

func (c *ClusterHandler) EnqueueObjectRateLimited(obj resources.Object) error

func (*ClusterHandler) GetAliases

func (c *ClusterHandler) GetAliases() utils.StringSet

func (*ClusterHandler) GetEventHandlerFuncs

func (c *ClusterHandler) GetEventHandlerFuncs() resources.ResourceEventHandlerFuncs

func (*ClusterHandler) GetResource

func (c *ClusterHandler) GetResource(resourceKey ResourceKey) (resources.Interface, error)

func (*ClusterHandler) String

func (c *ClusterHandler) String() string

type ClusterResourceKey added in v0.2.0

type ClusterResourceKey extension.ResourceKey

ClusterResourceKey implementations are used as key and MUST therefore be value types

func GetClusterResourceKey added in v0.2.0

func GetClusterResourceKey(objspec interface{}) ClusterResourceKey

type Command

type Command interface {
	Key() utils.Matcher
	Reconciler() string
	PoolName() string
}

type Commands

type Commands map[string][]Command

type Composition

type Composition interface {
	Map(name string) string
	MapInfo(name string) string
}

Composition handles the mapping of cluster names for a dedicate controller _Definition in dedicated composition of controllers in a controller manager

func GetComposition

func GetComposition(name string) Composition

type Configuration

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

func Configure

func Configure(name string) Configuration

func (Configuration) ActivateExplicitly

func (this Configuration) ActivateExplicitly() Configuration

func (Configuration) AddFilters

func (this Configuration) AddFilters(f ...ResourceFilter) Configuration

func (Configuration) After added in v0.2.0

func (this Configuration) After(names ...string) Configuration

func (Configuration) Before added in v0.2.0

func (this Configuration) Before(names ...string) Configuration

func (Configuration) BoolOption

func (this Configuration) BoolOption(name string, desc string) Configuration

func (Configuration) Cluster

func (this Configuration) Cluster(name string) Configuration

func (Configuration) CommandMatchers

func (this Configuration) CommandMatchers(cmd ...utils.Matcher) Configuration

func (Configuration) Commands

func (this Configuration) Commands(cmd ...string) Configuration

func (Configuration) CustomResourceDefinitions

func (this Configuration) CustomResourceDefinitions(crds ...apiextensions.CRDSpecification) Configuration

func (Configuration) DefaultCluster added in v0.2.0

func (this Configuration) DefaultCluster() Configuration

func (Configuration) DefaultWorkerPool

func (this Configuration) DefaultWorkerPool(size int, period time.Duration) Configuration

func (Configuration) DefaultedBoolOption

func (this Configuration) DefaultedBoolOption(name string, def bool, desc string) Configuration

func (Configuration) DefaultedDurationOption

func (this Configuration) DefaultedDurationOption(name string, def time.Duration, desc string) Configuration

func (Configuration) DefaultedIntOption

func (this Configuration) DefaultedIntOption(name string, def int, desc string) Configuration

func (Configuration) DefaultedStringArrayOption added in v0.2.0

func (this Configuration) DefaultedStringArrayOption(name string, def []string, desc string) Configuration

func (Configuration) DefaultedStringOption

func (this Configuration) DefaultedStringOption(name, def string, desc string) Configuration

func (Configuration) Definition

func (this Configuration) Definition() Definition

func (Configuration) DurationOption

func (this Configuration) DurationOption(name string, desc string) Configuration

func (Configuration) Filters

func (this Configuration) Filters(f ...ResourceFilter) Configuration

func (Configuration) FinalizerDomain

func (this Configuration) FinalizerDomain(name string) Configuration

func (Configuration) FinalizerName

func (this Configuration) FinalizerName(name string) Configuration

func (Configuration) ForCommandMatchers added in v0.2.0

func (this Configuration) ForCommandMatchers(cmd ...utils.Matcher) Configuration

func (Configuration) ForCommands added in v0.2.0

func (this Configuration) ForCommands(cmd ...string) Configuration

func (Configuration) ForSelectedWatch added in v0.2.0

func (this Configuration) ForSelectedWatch(sel WatchSelectionFunction, group, kind string) Configuration

func (Configuration) ForSelectedWatchByGK added in v0.2.0

func (this Configuration) ForSelectedWatchByGK(sel WatchSelectionFunction, gk schema.GroupKind) Configuration

func (Configuration) ForSelectedWatches added in v0.2.0

func (this Configuration) ForSelectedWatches(sel WatchSelectionFunction, keys ...ResourceKey) Configuration

func (Configuration) ForSelectedWatchesByGK added in v0.2.0

func (this Configuration) ForSelectedWatchesByGK(sel WatchSelectionFunction, gks ...schema.GroupKind) Configuration

func (Configuration) ForWatch added in v0.2.0

func (this Configuration) ForWatch(group, kind string) Configuration

func (Configuration) ForWatchByGK added in v0.2.0

func (this Configuration) ForWatchByGK(gk schema.GroupKind) Configuration

func (Configuration) ForWatches added in v0.2.0

func (this Configuration) ForWatches(keys ...ResourceKey) Configuration

func (Configuration) ForWatchesByGK added in v0.2.0

func (this Configuration) ForWatchesByGK(gks ...schema.GroupKind) Configuration

func (Configuration) IntOption

func (this Configuration) IntOption(name string, desc string) Configuration

func (Configuration) MainResource

func (this Configuration) MainResource(group, kind string, sel ...WatchSelectionFunction) Configuration

func (Configuration) MainResourceByGK added in v0.2.0

func (this Configuration) MainResourceByGK(gk schema.GroupKind, sel ...WatchSelectionFunction) Configuration

func (Configuration) MainResourceByKey

func (this Configuration) MainResourceByKey(key ResourceKey, sel ...WatchSelectionFunction) Configuration

func (Configuration) MustRegister

func (this Configuration) MustRegister(group ...string) Configuration

func (Configuration) MustRegisterAt

func (this Configuration) MustRegisterAt(registry RegistrationInterface, group ...string) Configuration

func (Configuration) Name

func (this Configuration) Name(name string) Configuration

func (Configuration) OptionSource added in v0.2.0

func (this Configuration) OptionSource(name string, creator extension.OptionSourceCreator) Configuration

func (Configuration) OptionsByExample added in v0.2.0

func (this Configuration) OptionsByExample(name string, proto config.OptionSource) Configuration

func (Configuration) Pool

func (this Configuration) Pool(name string) Configuration

func (Configuration) Reconciler

func (this Configuration) Reconciler(t ReconcilerType, name ...string) Configuration

func (Configuration) ReconcilerCommandMatchers

func (this Configuration) ReconcilerCommandMatchers(reconciler string, cmd ...utils.Matcher) Configuration

func (Configuration) ReconcilerCommands

func (this Configuration) ReconcilerCommands(reconciler string, cmd ...string) Configuration

func (Configuration) ReconcilerSelectedWatches

func (this Configuration) ReconcilerSelectedWatches(reconciler string, sel WatchSelectionFunction, keys ...ResourceKey) Configuration

func (Configuration) ReconcilerSelectedWatchesByGK added in v0.2.0

func (this Configuration) ReconcilerSelectedWatchesByGK(reconciler string, sel WatchSelectionFunction, gks ...schema.GroupKind) Configuration

func (Configuration) ReconcilerWatch

func (this Configuration) ReconcilerWatch(reconciler, group, kind string) Configuration

func (Configuration) ReconcilerWatchByGK added in v0.2.0

func (this Configuration) ReconcilerWatchByGK(reconciler string, gk schema.GroupKind) Configuration

func (Configuration) ReconcilerWatches

func (this Configuration) ReconcilerWatches(reconciler string, keys ...ResourceKey) Configuration

func (Configuration) ReconcilerWatchesByGK added in v0.2.0

func (this Configuration) ReconcilerWatchesByGK(reconciler string, gks ...schema.GroupKind) Configuration

func (Configuration) Register

func (this Configuration) Register(group ...string) error

func (Configuration) RegisterAt

func (this Configuration) RegisterAt(registry RegistrationInterface, group ...string) error

func (Configuration) Require

func (this Configuration) Require(names ...string) Configuration

func (Configuration) RequireLease

func (this Configuration) RequireLease() Configuration

func (Configuration) Restore added in v0.2.0

func (this Configuration) Restore() Configuration

func (Configuration) Scheme added in v0.2.0

func (this Configuration) Scheme(scheme *runtime.Scheme) Configuration

func (Configuration) SelectedWatch

func (this Configuration) SelectedWatch(sel WatchSelectionFunction, group, kind string) Configuration

func (Configuration) SelectedWatchByGK added in v0.2.0

func (this Configuration) SelectedWatchByGK(sel WatchSelectionFunction, gk schema.GroupKind) Configuration

func (Configuration) SelectedWatches

func (this Configuration) SelectedWatches(sel WatchSelectionFunction, keys ...ResourceKey) Configuration

func (Configuration) SelectedWatchesByGK added in v0.2.0

func (this Configuration) SelectedWatchesByGK(sel WatchSelectionFunction, gks ...schema.GroupKind) Configuration

func (Configuration) StringArrayOption

func (this Configuration) StringArrayOption(name string, desc string) Configuration

func (Configuration) StringOption

func (this Configuration) StringOption(name string, desc string) Configuration

func (Configuration) Syncer added in v0.2.0

func (this Configuration) Syncer(name string, resc ResourceKey) Configuration

func (Configuration) VersionedCustomResourceDefinitions

func (this Configuration) VersionedCustomResourceDefinitions(crds ...*CustomResourceDefinition) Configuration

func (Configuration) Watch

func (this Configuration) Watch(group, kind string) Configuration

func (Configuration) WatchByGK added in v0.2.0

func (this Configuration) WatchByGK(gk schema.GroupKind) Configuration

func (Configuration) Watches

func (this Configuration) Watches(keys ...ResourceKey) Configuration

func (Configuration) WatchesByGK added in v0.2.0

func (this Configuration) WatchesByGK(gks ...schema.GroupKind) Configuration

func (Configuration) With added in v0.2.0

func (this Configuration) With(modifier ...ConfigurationModifier) Configuration

func (Configuration) WorkerPool

func (this Configuration) WorkerPool(name string, size int, period time.Duration) Configuration

type ConfigurationModifier added in v0.2.0

type ConfigurationModifier func(c Configuration) Configuration

type ControllerConfig added in v0.2.0

type ControllerConfig struct {
	*config.GenericOptionSource
}

func NewControllerConfig added in v0.2.0

func NewControllerConfig(controller string) *ControllerConfig

type CustomResourceDefinition

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

func (*CustomResourceDefinition) GetFor

func (*CustomResourceDefinition) GetVersions added in v0.2.0

GetVersions provides an actual view for this deprecated type

func (*CustomResourceDefinition) GroupKind added in v0.2.0

func (this *CustomResourceDefinition) GroupKind() schema.GroupKind

func (*CustomResourceDefinition) RegisterVersion

type DefaultFinalizer

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

func (*DefaultFinalizer) FinalizerName

func (this *DefaultFinalizer) FinalizerName(obj resources.Object) string

func (*DefaultFinalizer) Finalizers added in v0.2.0

func (this *DefaultFinalizer) Finalizers() utils.StringSet

func (*DefaultFinalizer) HasFinalizer

func (this *DefaultFinalizer) HasFinalizer(obj resources.Object) bool

func (*DefaultFinalizer) Main added in v0.2.0

func (this *DefaultFinalizer) Main() string

func (*DefaultFinalizer) RemoveFinalizer

func (this *DefaultFinalizer) RemoveFinalizer(obj resources.Object) error

func (*DefaultFinalizer) SetFinalizer

func (this *DefaultFinalizer) SetFinalizer(obj resources.Object) error

type DefaultFinalizerGroup added in v0.2.0

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

func (*DefaultFinalizerGroup) FinalizerName added in v0.2.0

func (this *DefaultFinalizerGroup) FinalizerName(obj resources.Object) string

func (*DefaultFinalizerGroup) Finalizers added in v0.2.0

func (this *DefaultFinalizerGroup) Finalizers() utils.StringSet

func (*DefaultFinalizerGroup) HasFinalizer added in v0.2.0

func (this *DefaultFinalizerGroup) HasFinalizer(obj resources.Object) bool

func (*DefaultFinalizerGroup) Main added in v0.2.0

func (this *DefaultFinalizerGroup) Main() string

func (*DefaultFinalizerGroup) RemoveFinalizer added in v0.2.0

func (this *DefaultFinalizerGroup) RemoveFinalizer(obj resources.Object) error

func (*DefaultFinalizerGroup) SetFinalizer added in v0.2.0

func (this *DefaultFinalizerGroup) SetFinalizer(obj resources.Object) error

type Definition

type Definition interface {
	extension.OrderedElem

	// Create(Object) (Reconciler, error)
	Reconcilers() map[string]ReconcilerType
	Syncers() map[string]SyncerDefinition
	MainResource() ResourceKey
	MainWatchResource() WatchResource
	Watches() Watches
	Commands() Commands
	Pools() map[string]PoolDefinition
	ResourceFilters() []ResourceFilter
	RequiredClusters() []string
	RequiredControllers() []string
	CustomResourceDefinitions() map[string][]*apiextensions.CustomResourceDefinitionVersions
	RequireLease() bool
	FinalizerName() string
	ActivateExplicitly() bool
	ConfigOptions() map[string]OptionDefinition
	ConfigOptionSources() extension.OptionSourceDefinitions

	Scheme() *runtime.Scheme

	Definition() Definition

	String() string
}

func AddFilters

func AddFilters(def Definition, filters ...ResourceFilter) Definition

type DefinitionWrapper

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

func (*DefinitionWrapper) Definition

func (this *DefinitionWrapper) Definition() Definition

func (*DefinitionWrapper) ResourceFilters

func (this *DefinitionWrapper) ResourceFilters() []ResourceFilter

type Definitions

type Definitions interface {
	Get(name string) Definition
	Size() int
	Names() utils.StringSet
	Groups() groups.Definitions
	GetRequiredControllers(name string) (utils.StringSet, error)
	GetMappingsFor(name string) (mappings.Definition, error)
	DetermineRequestedClusters(clusters cluster.Definitions, sets ...utils.StringSet) (utils.StringSet, error)
	Registrations(names ...string) (Registrations, error)
	ExtendConfig(cfg *areacfg.Config)
}

func DefaultDefinitions

func DefaultDefinitions() Definitions

type Environment

type Environment interface {
	extension.Environment
	SharedAttributes

	GetConfig() *areacfg.Config
	Enqueue(obj resources.Object)
	EnqueueKey(key resources.ClusterObjectKey)
}

type EventRecorder

type EventRecorder interface {
}

type Extension added in v0.2.0

type Extension struct {
	extension.Environment
	// contains filtered or unexported fields
}

func NewExtension added in v0.2.0

func NewExtension(defs Definitions, cm extension.ControllerManager) (*Extension, error)

func (*Extension) Enqueue added in v0.2.0

func (this *Extension) Enqueue(obj resources.Object)

func (*Extension) EnqueueKey added in v0.2.0

func (this *Extension) EnqueueKey(key resources.ClusterObjectKey)

func (*Extension) GetConfig added in v0.2.0

func (this *Extension) GetConfig() *areacfg.Config

func (*Extension) GetOrCreateSharedValue added in v0.2.0

func (c *Extension) GetOrCreateSharedValue(key interface{}, create func() interface{}) interface{}

func (*Extension) GetSharedValue added in v0.2.0

func (c *Extension) GetSharedValue(key interface{}) interface{}

func (*Extension) RequiredClusters added in v0.2.0

func (this *Extension) RequiredClusters() (utils.StringSet, error)

func (*Extension) Setup added in v0.2.0

func (this *Extension) Setup(ctx context.Context) error

func (*Extension) Start added in v0.2.0

func (this *Extension) Start(ctx context.Context) error

type ExtensionDefinition added in v0.2.0

type ExtensionDefinition struct {
	extension.ExtensionDefinitionBase
	// contains filtered or unexported fields
}

func NewExtensionDefinition added in v0.2.0

func NewExtensionDefinition(defs Definitions) *ExtensionDefinition

func (*ExtensionDefinition) CreateExtension added in v0.2.0

func (*ExtensionDefinition) Description added in v0.2.0

func (this *ExtensionDefinition) Description() string

func (*ExtensionDefinition) ExtendConfig added in v0.2.0

func (this *ExtensionDefinition) ExtendConfig(cfg *parentcfg.Config)

func (*ExtensionDefinition) Names added in v0.2.0

func (this *ExtensionDefinition) Names() utils.StringSet

func (*ExtensionDefinition) Size added in v0.2.0

func (this *ExtensionDefinition) Size() int

func (*ExtensionDefinition) Validate added in v0.2.0

func (this *ExtensionDefinition) Validate() error

type ExtensionType added in v0.2.0

type ExtensionType struct {
	Registry
}

func NewExtensionType added in v0.2.0

func NewExtensionType() *ExtensionType

func (*ExtensionType) Definition added in v0.2.0

func (this *ExtensionType) Definition() extension.Definition

func (*ExtensionType) Name added in v0.2.0

func (this *ExtensionType) Name() string

type Finalizer

type Finalizer interface {
	FinalizerName(obj resources.Object) string
	HasFinalizer(obj resources.Object) bool
	SetFinalizer(obj resources.Object) error
	RemoveFinalizer(obj resources.Object) error
}

func NewFinalizerForClasses

func NewFinalizerForClasses(logger logger.LogContext, name string, classes *Classes) Finalizer

type FinalizerGroup added in v0.2.0

type FinalizerGroup interface {
	Finalizer
	Main() string
	Finalizers() utils.StringSet
}

func NewDefaultFinalizer

func NewDefaultFinalizer(name string) FinalizerGroup

func NewFinalizerForGroupAndClasses added in v0.2.0

func NewFinalizerForGroupAndClasses(group FinalizerGroup, classes *Classes) FinalizerGroup

func NewFinalizerGroup added in v0.2.0

func NewFinalizerGroup(name string, set utils.StringSet, mapper ...NameMapper) FinalizerGroup

type Interface

type Interface interface {
	extension.ElementBase
	SharedAttributes

	IsReady() bool
	Owning() ResourceKey
	GetMainWatchResource() WatchResource
	GetEnvironment() Environment
	GetPool(name string) Pool
	GetMainCluster() cluster.Interface
	GetClusterById(id string) cluster.Interface
	GetCluster(name string) cluster.Interface
	GetClusterAliases(eff string) utils.StringSet
	GetDefinition() Definition

	HasFinalizer(obj resources.Object) bool
	SetFinalizer(obj resources.Object) error
	RemoveFinalizer(obj resources.Object) error
	FinalizerHandler() Finalizer
	SetFinalizerHandler(Finalizer)

	Synchronize(log logger.LogContext, name string, initiator resources.Object) (bool, error)

	EnqueueKey(key resources.ClusterObjectKey) error
	Enqueue(object resources.Object) error
	EnqueueRateLimited(object resources.Object) error
	EnqueueAfter(object resources.Object, duration time.Duration) error
	EnqueueCommand(cmd string) error

	GetObject(key resources.ClusterObjectKey) (resources.Object, error)
	GetCachedObject(key resources.ClusterObjectKey) (resources.Object, error)
}

func GetController added in v0.2.0

func GetController(ctx context.Context) Interface

type NameMapper added in v0.2.0

type NameMapper func(name ...string) string

type Object

type Object interface {
	metav1.Object
	runtime.Object
}

type ObjectIdentity

type ObjectIdentity interface {
	GetGroupKind() schema.GroupKind
	GetName() string
	GetNamespace() string
}

type OptionDefinition

type OptionDefinition extension.OptionDefinition

type Pool

type Pool interface {
	StartTicker()
	EnqueueCommand(name string)
	EnqueueCommandRateLimited(name string)
	EnqueueCommandAfter(name string, duration time.Duration)
	Period() time.Duration
}

type PoolDefinition

type PoolDefinition interface {
	GetName() string
	Size() int
	Period() time.Duration
}

type ReadyFlag

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

func (*ReadyFlag) IsReady

func (this *ReadyFlag) IsReady() bool

func (*ReadyFlag) WhenReady

func (this *ReadyFlag) WhenReady()

type ReconcilationElementSpec added in v0.2.0

type ReconcilationElementSpec interface {
	String() string
}

type ReconcilerType

type ReconcilerType func(Interface) (reconcile.Interface, error)

type Registerable

type Registerable interface {
	Definition() Definition
}

type RegistrationInterface

type RegistrationInterface interface {
	RegisterController(Registerable, ...string) error
	MustRegisterController(Registerable, ...string) RegistrationInterface
}

func MustRegister

func MustRegister(reg Registerable, groups ...string) RegistrationInterface

type Registrations

type Registrations map[string]Definition

func (Registrations) Copy

func (this Registrations) Copy() Registrations

func (Registrations) Names

func (this Registrations) Names() utils.StringSet

type Registry

type Registry interface {
	RegistrationInterface
	mappings.RegistrationInterface
	groups.RegistrationInterface
	GetDefinitions() *_Definitions
}

func DefaultRegistry

func DefaultRegistry() Registry

func NewRegistry

func NewRegistry() Registry

type ResourceFilter

type ResourceFilter func(owning ResourceKey, resc resources.Object) bool

ResourceFilter is the signature for filter implementations used to filter watched resources prior to putting it into a work queue. Objects reported false by a filter will be rejected

func And added in v0.2.0

func And(filters ...ResourceFilter) ResourceFilter

And can be used to generate a filter that reqports true if all of the given filters report true, If no filter is given always false is reported.

func Or added in v0.2.0

func Or(filters ...ResourceFilter) ResourceFilter

Or can be used to generate a filter that reqports true if one of the given filters report true, If no filter is given always false is reported.

type ResourceKey

type ResourceKey = extension.ResourceKey

ResourceKey implementations are used as key and MUST therefore be value types

func GetResourceKey

func GetResourceKey(objspec interface{}) ResourceKey

func NewClusterResourceKey added in v0.2.0

func NewClusterResourceKey(clusterid, group, kind string) ResourceKey

func NewResourceKey

func NewResourceKey(group, kind string) ResourceKey

func NewResourceKeyByGK added in v0.2.0

func NewResourceKeyByGK(gk schema.GroupKind) ResourceKey

type SharedAttributes

type SharedAttributes interface {
	GetSharedValue(key interface{}) interface{}
	GetOrCreateSharedValue(key interface{}, create func() interface{}) interface{}
}

type StartupGroup added in v0.2.0

type StartupGroup interface {
	Startup() error
	Add(c *controller)
	Controllers() controllers
}

type SyncPoints added in v0.2.0

type SyncPoints map[resources.ObjectName]utils.StringSet

type SyncRequest added in v0.2.0

type SyncRequest struct {
	*Syncer
	// contains filtered or unexported fields
}

SyncRequest is a dedicted synchronization request. It remembers the resource version of the initiator to be updatable in case of intermediate new reconcilations of the initiating object

type SyncRequests added in v0.2.0

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

SyncRequests is the structure stored in controller object used to manage sync requests

func NewSyncRequests added in v0.2.0

func NewSyncRequests(c *controller) *SyncRequests

func (*SyncRequests) AddSyncer added in v0.2.0

func (this *SyncRequests) AddSyncer(s *Syncer) error

func (*SyncRequests) Get added in v0.2.0

func (this *SyncRequests) Get(name string, initiator resources.Object) (*SyncRequest, error)

func (*SyncRequests) Remove added in v0.2.0

func (this *SyncRequests) Remove(r *SyncRequest)

func (*SyncRequests) Synchronize added in v0.2.0

func (this *SyncRequests) Synchronize(log logger.LogContext, name string, initiator resources.Object) (bool, error)

type Syncer added in v0.2.0

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

Syncer is the specification for sync requests. It has a name and can be used to initiate sync requests for a dedicated initiating object. It triggers reconcilation of the objects of a dedicated resource for a dedicated cluster.

func NewSyncer added in v0.2.0

func NewSyncer(name string, resource ResourceKey, cluster resources.Cluster) *Syncer

type SyncerDefinition added in v0.2.0

type SyncerDefinition interface {
	GetName() string
	GetCluster() string
	GetResource() ResourceKey
}

type Syncers added in v0.2.0

type Syncers map[string]*Syncer

type Watch

type Watch interface {
	WatchResource
	Reconciler() string
	PoolName() string
}

type WatchResource

type WatchResource interface {
	ResourceType() ResourceKey
	WatchSelectionFunction() WatchSelectionFunction
}

type WatchSelectionFunction

type WatchSelectionFunction func(c Interface) (string, resources.TweakListOptionsFunc)

func NamespaceByOptionSelection added in v0.2.0

func NamespaceByOptionSelection(opt string) WatchSelectionFunction

func NamespaceSelection

func NamespaceSelection(namespace string) WatchSelectionFunction

type Watches

type Watches map[string][]Watch

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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