controller

package
v3.7.1+incompatible Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2018 License: Apache-2.0 Imports: 95 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RunBuildConfigChangeController

func RunBuildConfigChangeController(ctx ControllerContext) (bool, error)

func RunControllerServer

func RunControllerServer(servingInfo configapi.HTTPServingInfo, kubeExternal clientgoclientset.Interface) error

TODO make this an actual API server built on the genericapiserver

func RunOriginNamespaceController

func RunOriginNamespaceController(ctx ControllerContext) (bool, error)

func RunResourceQuotaManager

func RunResourceQuotaManager(ctx ControllerContext) (bool, error)

func RunServiceAccountPullSecretsController

func RunServiceAccountPullSecretsController(ctx ControllerContext) (bool, error)

func RunTemplateInstanceController

func RunTemplateInstanceController(ctx ControllerContext) (bool, error)

Types

type BuildControllerConfig

type BuildControllerConfig struct {
	DockerImage           string
	S2IImage              string
	AdmissionPluginConfig map[string]configapi.AdmissionPluginConfig

	Codec runtime.Codec
}

func (*BuildControllerConfig) RunController

func (c *BuildControllerConfig) RunController(ctx ControllerContext) (bool, error)

RunController starts the build sync loop for builds and buildConfig processing.

type ClusterQuotaReconciliationControllerConfig

type ClusterQuotaReconciliationControllerConfig struct {
	DefaultResyncPeriod            time.Duration
	DefaultReplenishmentSyncPeriod time.Duration
}

func (*ClusterQuotaReconciliationControllerConfig) RunController

type ControllerClientBuilder

type ControllerClientBuilder interface {
	controller.ControllerClientBuilder
	KubeInternalClient(name string) (kclientsetinternal.Interface, error)
	KubeInternalClientOrDie(name string) kclientsetinternal.Interface

	OpenshiftInternalAppsClient(name string) (appsclientinternal.Interface, error)
	OpenshiftInternalAppsClientOrDie(name string) appsclientinternal.Interface

	OpenshiftInternalBuildClient(name string) (buildclientinternal.Interface, error)
	OpenshiftInternalBuildClientOrDie(name string) buildclientinternal.Interface

	// OpenShift clients based on generated internal clientsets
	OpenshiftInternalTemplateClient(name string) (templateclient.Interface, error)
	OpenshiftInternalTemplateClientOrDie(name string) templateclient.Interface

	OpenshiftInternalImageClient(name string) (imageclientinternal.Interface, error)
	OpenshiftInternalImageClientOrDie(name string) imageclientinternal.Interface

	OpenshiftInternalQuotaClient(name string) (quotaclient.Interface, error)
	OpenshiftInternalQuotaClientOrDie(name string) quotaclient.Interface

	OpenshiftInternalNetworkClient(name string) (networkclientinternal.Interface, error)
	OpenshiftInternalNetworkClientOrDie(name string) networkclientinternal.Interface

	OpenshiftInternalSecurityClient(name string) (securityclient.Interface, error)
	OpenshiftInternalSecurityClientOrDie(name string) securityclient.Interface
}

type ControllerContext

type ControllerContext struct {
	OpenshiftControllerOptions OpenshiftControllerOptions

	// ClientBuilder will provide a client for this controller to use
	ClientBuilder ControllerClientBuilder

	ExternalKubeInformers  kexternalinformers.SharedInformerFactory
	InternalKubeInformers  kinternalinformers.SharedInformerFactory
	AppInformers           appinformer.SharedInformerFactory
	BuildInformers         buildinformer.SharedInformerFactory
	ImageInformers         imageinformer.SharedInformerFactory
	TemplateInformers      templateinformer.SharedInformerFactory
	QuotaInformers         quotainformer.SharedInformerFactory
	AuthorizationInformers authorizationinformer.SharedInformerFactory
	SecurityInformers      securityinformer.SharedInformerFactory

	// 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{}
}

func (ControllerContext) IsControllerEnabled

func (c ControllerContext) IsControllerEnabled(name string) bool

TODO wire this up to something that handles the names. The logic is available upstream, we just have to wire to it

type DeployerControllerConfig

type DeployerControllerConfig struct {
	ImageName     string
	ClientEnvVars []kapi.EnvVar

	Codec runtime.Codec
}

func (*DeployerControllerConfig) RunController

func (c *DeployerControllerConfig) RunController(ctx ControllerContext) (bool, error)

type DeploymentConfigControllerConfig

type DeploymentConfigControllerConfig struct {
	Codec runtime.Codec
}

func (*DeploymentConfigControllerConfig) RunController

type HPAControllerOptions

type HPAControllerOptions struct {
	SyncPeriod               metav1.Duration
	UpscaleForbiddenWindow   metav1.Duration
	DownscaleForbiddenWindow metav1.Duration
}

type HorizontalPodAutoscalerControllerConfig

type HorizontalPodAutoscalerControllerConfig struct {
	HeapsterNamespace string
}

func (*HorizontalPodAutoscalerControllerConfig) RunController

type ImageImportControllerConfig

type ImageImportControllerConfig struct {
	MaxScheduledImageImportsPerMinute          int
	ScheduledImageImportMinimumIntervalSeconds int
	DisableScheduledImport                     bool
	ResyncPeriod                               time.Duration
}

func (*ImageImportControllerConfig) RunController

func (c *ImageImportControllerConfig) RunController(ctx ControllerContext) (bool, error)

type ImageSignatureImportControllerConfig

type ImageSignatureImportControllerConfig struct {
	ResyncPeriod          time.Duration
	SignatureFetchTimeout time.Duration
	SignatureImportLimit  int
}

func (*ImageSignatureImportControllerConfig) RunController

type ImageTriggerControllerConfig

type ImageTriggerControllerConfig struct {
	HasBuilderEnabled      bool
	HasDeploymentsEnabled  bool
	HasDaemonSetsEnabled   bool
	HasStatefulSetsEnabled bool
	HasCronJobsEnabled     bool
}

func (*ImageTriggerControllerConfig) RunController

func (c *ImageTriggerControllerConfig) RunController(ctx ControllerContext) (bool, error)

type IngressIPControllerConfig

type IngressIPControllerConfig struct {
	IngressIPNetworkCIDR string
	IngressIPSyncPeriod  time.Duration
}

func (*IngressIPControllerConfig) RunController

func (c *IngressIPControllerConfig) RunController(ctx ControllerContext) (bool, error)

type InitFunc

type InitFunc func(ctx ControllerContext) (bool, 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.

type OpenshiftControllerClientBuilder

type OpenshiftControllerClientBuilder struct {
	controller.ControllerClientBuilder
}

func (OpenshiftControllerClientBuilder) KubeInternalClient

func (OpenshiftControllerClientBuilder) KubeInternalClientOrDie

func (b OpenshiftControllerClientBuilder) KubeInternalClientOrDie(name string) kclientsetinternal.Interface

func (OpenshiftControllerClientBuilder) OpenshiftInternalAppsClient

func (b OpenshiftControllerClientBuilder) OpenshiftInternalAppsClient(name string) (appsclientinternal.Interface, error)

OpenshiftInternalAppsClient provides a REST client for the apps API. If the client cannot be created because of configuration error, this function will error.

func (OpenshiftControllerClientBuilder) OpenshiftInternalAppsClientOrDie

func (b OpenshiftControllerClientBuilder) OpenshiftInternalAppsClientOrDie(name string) appsclientinternal.Interface

OpenshiftInternalAppsClientOrDie provides a REST client for the apps API. If the client cannot be created because of configuration error, this function will panic.

func (OpenshiftControllerClientBuilder) OpenshiftInternalBuildClient

func (b OpenshiftControllerClientBuilder) OpenshiftInternalBuildClient(name string) (buildclientinternal.Interface, error)

OpenshiftInternalBuildClient provides a REST client for the build API. If the client cannot be created because of configuration error, this function will error.

func (OpenshiftControllerClientBuilder) OpenshiftInternalBuildClientOrDie

func (b OpenshiftControllerClientBuilder) OpenshiftInternalBuildClientOrDie(name string) buildclientinternal.Interface

OpenshiftInternalBuildClientOrDie provides a REST client for the build API. If the client cannot be created because of configuration error, this function will panic.

func (OpenshiftControllerClientBuilder) OpenshiftInternalImageClient

func (b OpenshiftControllerClientBuilder) OpenshiftInternalImageClient(name string) (imageclientinternal.Interface, error)

OpenshiftInternalImageClient provides a REST client for the image API. If the client cannot be created because of configuration error, this function will error.

func (OpenshiftControllerClientBuilder) OpenshiftInternalImageClientOrDie

func (b OpenshiftControllerClientBuilder) OpenshiftInternalImageClientOrDie(name string) imageclientinternal.Interface

OpenshiftInternalImageClientOrDie provides a REST client for the image API. If the client cannot be created because of configuration error, this function will panic.

func (OpenshiftControllerClientBuilder) OpenshiftInternalNetworkClient

func (b OpenshiftControllerClientBuilder) OpenshiftInternalNetworkClient(name string) (networkclientinternal.Interface, error)

OpenshiftInternalNetworkClient provides a REST client for the network API. If the client cannot be created because of configuration error, this function will error.

func (OpenshiftControllerClientBuilder) OpenshiftInternalNetworkClientOrDie

func (b OpenshiftControllerClientBuilder) OpenshiftInternalNetworkClientOrDie(name string) networkclientinternal.Interface

OpenshiftInternalNetworkClientOrDie provides a REST client for the network API. If the client cannot be created because of configuration error, this function will panic.

func (OpenshiftControllerClientBuilder) OpenshiftInternalQuotaClient

func (b OpenshiftControllerClientBuilder) OpenshiftInternalQuotaClient(name string) (quotaclient.Interface, error)

func (OpenshiftControllerClientBuilder) OpenshiftInternalQuotaClientOrDie

func (b OpenshiftControllerClientBuilder) OpenshiftInternalQuotaClientOrDie(name string) quotaclient.Interface

OpenshiftInternalBuildClientOrDie provides a REST client for the build API. If the client cannot be created because of configuration error, this function will panic.

func (OpenshiftControllerClientBuilder) OpenshiftInternalSecurityClient

func (b OpenshiftControllerClientBuilder) OpenshiftInternalSecurityClient(name string) (securityclient.Interface, error)

OpenshiftInternalSecurityClient provides a REST client for the security API. If the client cannot be created because of configuration error, this function will error.

func (OpenshiftControllerClientBuilder) OpenshiftInternalSecurityClientOrDie

func (b OpenshiftControllerClientBuilder) OpenshiftInternalSecurityClientOrDie(name string) securityclient.Interface

OpenshiftInternalSecurityClientOrDie provides a REST client for the security API. If the client cannot be created because of configuration error, this function will panic.

func (OpenshiftControllerClientBuilder) OpenshiftInternalTemplateClient

func (b OpenshiftControllerClientBuilder) OpenshiftInternalTemplateClient(name string) (templateclient.Interface, error)

OpenshiftInternalTemplateClient provides a REST client for the template API. If the client cannot be created because of configuration error, this function will return an error.

func (OpenshiftControllerClientBuilder) OpenshiftInternalTemplateClientOrDie

func (b OpenshiftControllerClientBuilder) OpenshiftInternalTemplateClientOrDie(name string) templateclient.Interface

OpenshiftInternalTemplateClientOrDie provides a REST client for the template API. If the client cannot be created because of configuration error, this function will panic.

type OpenshiftControllerConfig

type OpenshiftControllerConfig struct {
	ServiceAccountTokenControllerOptions ServiceAccountTokenControllerOptions

	ServiceAccountControllerOptions ServiceAccountControllerOptions

	BuildControllerConfig BuildControllerConfig

	DeployerControllerConfig         DeployerControllerConfig
	DeploymentConfigControllerConfig DeploymentConfigControllerConfig

	ImageTriggerControllerConfig         ImageTriggerControllerConfig
	ImageSignatureImportControllerConfig ImageSignatureImportControllerConfig
	ImageImportControllerConfig          ImageImportControllerConfig

	ServiceServingCertsControllerOptions ServiceServingCertsControllerOptions

	SDNControllerConfig       SDNControllerConfig
	UnidlingControllerConfig  UnidlingControllerConfig
	IngressIPControllerConfig IngressIPControllerConfig

	ClusterQuotaReconciliationControllerConfig ClusterQuotaReconciliationControllerConfig

	HorizontalPodAutoscalerControllerConfig HorizontalPodAutoscalerControllerConfig
}

OpenshiftControllerConfig is the runtime (non-serializable) config object used to launch the set of openshift (not kube) controllers.

func BuildOpenshiftControllerConfig

func BuildOpenshiftControllerConfig(options configapi.MasterConfig) (*OpenshiftControllerConfig, error)

func (*OpenshiftControllerConfig) GetControllerInitializers

func (c *OpenshiftControllerConfig) GetControllerInitializers() (map[string]InitFunc, error)

func (*OpenshiftControllerConfig) ServiceAccountContentControllerInit

func (c *OpenshiftControllerConfig) ServiceAccountContentControllerInit() InitFunc

NewOpenShiftControllerPreStartInitializers returns list of initializers for controllers that needed to be run before any other controller is started. Typically this has to done for the serviceaccount-token controller as it provides tokens to other controllers.

type OpenshiftControllerOptions

type OpenshiftControllerOptions struct {
	HPAControllerOptions       HPAControllerOptions
	ResourceQuotaOptions       ResourceQuotaOptions
	ServiceAccountTokenOptions ServiceAccountTokenOptions
}

OpenshiftControllerOptions contain the options used to run the controllers. Eventually we need to construct a way to properly configure these in a config struct. This at least lets us know what we have.

type ResourceQuotaOptions

type ResourceQuotaOptions struct {
	ConcurrentSyncs int32
	SyncPeriod      metav1.Duration
	MinResyncPeriod metav1.Duration
}

type SDNControllerConfig

type SDNControllerConfig struct {
	NetworkConfig configapi.MasterNetworkConfig
}

func (*SDNControllerConfig) RunController

func (c *SDNControllerConfig) RunController(ctx ControllerContext) (bool, error)

type ServiceAccountControllerOptions

type ServiceAccountControllerOptions struct {
	ManagedNames []string
}

func (*ServiceAccountControllerOptions) RunController

type ServiceAccountTokenControllerOptions

type ServiceAccountTokenControllerOptions struct {
	RootCA           []byte
	ServiceServingCA []byte
	PrivateKey       interface{}

	RootClientBuilder controller.SimpleControllerClientBuilder
}

func (*ServiceAccountTokenControllerOptions) RunController

type ServiceAccountTokenOptions

type ServiceAccountTokenOptions struct {
	ConcurrentSyncs int32
}

type ServiceServingCertsControllerOptions

type ServiceServingCertsControllerOptions struct {
	Signer *configapi.CertInfo
}

func (*ServiceServingCertsControllerOptions) RunController

type UnidlingControllerConfig

type UnidlingControllerConfig struct {
	ResyncPeriod time.Duration
}

func (*UnidlingControllerConfig) RunController

func (c *UnidlingControllerConfig) RunController(ctx ControllerContext) (bool, error)

Jump to

Keyboard shortcuts

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