controller

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 4, 2019 License: Apache-2.0, MIT Imports: 27 Imported by: 43

Documentation

Index

Constants

View Source
const CLUSTER_MAIN = mappings.CLUSTER_MAIN
View Source
const DEFAULT_POOL = "default"
View Source
const DEFAULT_RECONCILER = "default"
View Source
const DeletionActivity = "DeletionActivity"
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 ControllerOption

func ControllerOption(controller, name string) string

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 Get

func Get(ctx context.Context) *controller

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 PoolResyncPeriodOptionName

func PoolResyncPeriodOptionName(controller, pool string) string

func PoolSizeOptionName

func PoolSizeOptionName(controller, pool string) string

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 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) 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 ...*apiext.CustomResourceDefinition) 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) 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) 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) 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) 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) ReconcilerWatch

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

func (Configuration) ReconcilerWatches

func (this Configuration) ReconcilerWatches(reconciler string, keys ...ResourceKey) 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) SelectedWatch

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

func (Configuration) SelectedWatches

func (this Configuration) SelectedWatches(sel WatchSelectionFunction, keys ...ResourceKey) 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) VersionedCustomResourceDefinitions

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

func (Configuration) Watch

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

func (Configuration) Watches

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

func (Configuration) WorkerPool

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

type CustomResourceDefinition

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

func (*CustomResourceDefinition) GetFor

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) HasFinalizer

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

func (*DefaultFinalizer) RemoveFinalizer

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

func (*DefaultFinalizer) SetFinalizer

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

type Definition

type Definition interface {
	GetName() string
	//Create(Object) (Reconciler, error)
	Reconcilers() map[string]ReconcilerType
	MainResource() ResourceKey
	MainWatchResource() WatchResource
	Watches() Watches
	Commands() Commands
	Pools() map[string]PoolDefinition
	ResourceFilters() []ResourceFilter
	RequiredClusters() []string
	RequiredControllers() []string
	CustomResourceDefinitions() map[string][]*CustomResourceDefinition
	RequireLease() bool
	FinalizerName() string
	ActivateExplicitly() bool
	ConfigOptions() map[string]OptionDefinition

	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 *config.Config)
}

func DefaultDefinitions

func DefaultDefinitions() Definitions

type Environment

type Environment interface {
	GetContext() context.Context
	GetClusters() cluster.Clusters
	GetCluster(name string) cluster.Interface
	GetConfig() *config.Config
	GetSharedValue(key interface{}) interface{}
	GetOrCreateSharedValue(key interface{}, create func() interface{}) interface{}
}

type EventRecorder

type EventRecorder interface {
}

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 NewDefaultFinalizer

func NewDefaultFinalizer(name string) Finalizer

func NewFinalizerForClasses

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

type Interface

type Interface interface {
	GetName() string
	IsReady() bool
	Owning() ResourceKey
	GetMainWatchResource() WatchResource
	GetContext() context.Context
	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

	GetOption(name string) (*config.ArbitraryOption, error)
	GetStringOption(name string) (string, error)
	GetIntOption(name string) (int, error)
	GetDurationOption(name string) (time.Duration, error)
	GetBoolOption(name string) (bool, error)
	GetStringArrayOption(name string) ([]string, error)

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

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

	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

	logger.LogContext

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

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 interface {
	GetName() string
	Type() reflect.Type
	Default() interface{}
	Description() string
}

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 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

type ResourceKey

type ResourceKey interface {
	GroupKind() schema.GroupKind
	String() string
}

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

func GetResourceKey

func GetResourceKey(obj resources.Object) ResourceKey

func NewResourceKey

func NewResourceKey(group, kind string) ResourceKey

type SharedAttributes

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

func (*SharedAttributes) GetOrCreateSharedValue

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

func (*SharedAttributes) GetSharedValue

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

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 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