View Source
const (
	// ControllerStartJitter used when starting controller managers.
	ControllerStartJitter = 1.0


View Source
var ControllersDisabledByDefault = sets.NewString()

ControllersDisabledByDefault configured all controllers that are turned off by default.


func KnownControllers

func KnownControllers() []string

KnownControllers returns the known controllers.

func NewApp

func NewApp(basename string) *app.App

NewApp creates a App object with default parameters.

func NewControllerInitializers

func NewControllerInitializers() map[string]InitFunc

NewControllerInitializers is a public map of named controller groups (you can start more than one in an init func) paired to their InitFunc. This allows for structured downstream composition and subdivision.

func Run

func Run(cfg *config.Config, stopCh <-chan struct{}) error

Run runs the specified registry controller manager. This should never exit.

func StartControllers

func StartControllers(ctx ControllerContext, controllers map[string]InitFunc, unsecuredMux *mux.PathRecorderMux) error

StartControllers to start the controller.


type ControllerContext

type ControllerContext struct {
	// ClientBuilder will provide a client for this controller to use
	ClientBuilder controller.ClientBuilder

	// InformerFactory gives access to informers for the controller.
	InformerFactory versionedinformers.SharedInformerFactory

	// DeferredDiscoveryRESTMapper is a RESTMapper that will defer
	// initialization of the RESTMapper until the first mapping is
	// requested.
	RESTMapper *restmapper.DeferredDiscoveryRESTMapper

	// AvailableResources is a map listing currently available resources
	AvailableResources map[schema.GroupVersionResource]bool

	// Stop is the stop channel
	Stop <-chan struct{}

	// InformersStarted is closed after all of the controllers have been initialized and are running.  After this point it is safe,
	// for an individual controller to start the shared informers. Before it is closed, they should not.
	InformersStarted chan struct{}

	// ResyncPeriod generates a duration each time it is invoked; this is so that
	// multiple controllers don't get into lock-step and all hammer the apiserver
	// with list requests simultaneously.
	ResyncPeriod            func() time.Duration
	ControllerStartInterval time.Duration

	BusinessClient businessv1.BusinessV1Interface
	AuthClient     authv1.AuthV1Interface
	// AuthAvailableResources is a map listing auth available resources
	AuthAvailableResources map[schema.GroupVersionResource]bool
	// AuthInformerFactory gives access to informers for the controller.
	AuthInformerFactory versionedinformers.SharedInformerFactory

	// the registry config for chartmuseum/image-repo
	RegistryConfig               *registryconfigv1.RegistryConfiguration
	RegistryDefaultConfiguration registrycontrollerconfig.RegistryDefaultConfiguration

ControllerContext represents the context of controller.

func CreateControllerContext

func CreateControllerContext(cfg *config.Config, rootClientBuilder, authClientBuilder controller.ClientBuilder, stop <-chan struct{}) (ControllerContext, error)

CreateControllerContext creates a context struct containing references to resources needed by the controllers such as the cloud provider and clientBuilder. rootClientBuilder is only used for the shared-informers client and token controller.

func (ControllerContext) IsControllerEnabled

func (c ControllerContext) IsControllerEnabled(name string) bool

IsControllerEnabled returns whether the controller has been enabled

type InitFunc

type InitFunc func(ctx ControllerContext) (debuggingHandler http.Handler, enabled bool, err error)

InitFunc is used to launch a particular controller. It may run additional "should I activate checks". Any error returned will cause the controller process to `Fatal` The bool indicates whether the controller was enabled.


Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL