Documentation ¶
Index ¶
- Constants
- Variables
- func KnownControllers() []string
- func NewApp(basename string) *app.App
- func NewControllerInitializers() map[string]InitFunc
- func Run(cfg *config.Config, stopCh <-chan struct{}) error
- func StartControllers(ctx ControllerContext, controllers map[string]InitFunc, ...) error
- type ControllerContext
- type InitFunc
Constants ¶
const (
// ControllerStartJitter used when starting controller managers.
ControllerStartJitter = 1.0
)
Variables ¶
var ControllersDisabledByDefault = sets.NewString()
ControllersDisabledByDefault configured all controllers that are turned off by default.
Functions ¶
func KnownControllers ¶
func KnownControllers() []string
KnownControllers returns the known controllers.
func NewControllerInitializers ¶
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 StartControllers ¶
func StartControllers(ctx ControllerContext, controllers map[string]InitFunc, unsecuredMux *mux.PathRecorderMux) error
StartControllers to start the controller.
Types ¶
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 }
ControllerContext represents the context of controller.
func CreateControllerContext ¶
func CreateControllerContext(cfg *config.Config, rootClientBuilder 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.