mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-14 14:23:37 +00:00
add Extra.DisableAvailableConditionController for kube-aggregator
This commit is contained in:
parent
4fa7ce6f3c
commit
07864d1f1f
@ -96,6 +96,13 @@ type ExtraConfig struct {
|
|||||||
ServiceResolver ServiceResolver
|
ServiceResolver ServiceResolver
|
||||||
|
|
||||||
RejectForwardingRedirects bool
|
RejectForwardingRedirects bool
|
||||||
|
|
||||||
|
// DisableAvailableConditionController disables the controller that updates the Available conditions for
|
||||||
|
// APIServices, Endpoints and Services. This controller runs in kube-aggregator and can interfere with
|
||||||
|
// Generic Control Plane components when certain apis are not available.
|
||||||
|
// TODO: We should find a better way to handle this. For now it will be for Generic Control Plane authors to
|
||||||
|
// disable this controller if they see issues.
|
||||||
|
DisableAvailableConditionController bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// Config represents the configuration needed to create an APIAggregator.
|
// Config represents the configuration needed to create an APIAggregator.
|
||||||
@ -310,6 +317,9 @@ func (c completedConfig) NewWithDelegate(delegationTarget genericapiserver.Deleg
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If the AvailableConditionController is disabled, we don't need to start the informers
|
||||||
|
// and the controller.
|
||||||
|
if !c.ExtraConfig.DisableAvailableConditionController {
|
||||||
availableController, err := statuscontrollers.NewAvailableConditionController(
|
availableController, err := statuscontrollers.NewAvailableConditionController(
|
||||||
informerFactory.Apiregistration().V1().APIServices(),
|
informerFactory.Apiregistration().V1().APIServices(),
|
||||||
c.GenericConfig.SharedInformerFactory.Core().V1().Services(),
|
c.GenericConfig.SharedInformerFactory.Core().V1().Services(),
|
||||||
@ -328,6 +338,14 @@ func (c completedConfig) NewWithDelegate(delegationTarget genericapiserver.Deleg
|
|||||||
c.GenericConfig.SharedInformerFactory.Start(context.StopCh)
|
c.GenericConfig.SharedInformerFactory.Start(context.StopCh)
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
|
s.GenericAPIServer.AddPostStartHookOrDie("apiservice-status-available-controller", func(context genericapiserver.PostStartHookContext) error {
|
||||||
|
// if we end up blocking for long periods of time, we may need to increase workers.
|
||||||
|
go availableController.Run(5, context.StopCh)
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
s.GenericAPIServer.AddPostStartHookOrDie("apiservice-registration-controller", func(context genericapiserver.PostStartHookContext) error {
|
s.GenericAPIServer.AddPostStartHookOrDie("apiservice-registration-controller", func(context genericapiserver.PostStartHookContext) error {
|
||||||
go apiserviceRegistrationController.Run(context.StopCh, apiServiceRegistrationControllerInitiated)
|
go apiserviceRegistrationController.Run(context.StopCh, apiServiceRegistrationControllerInitiated)
|
||||||
select {
|
select {
|
||||||
@ -337,11 +355,6 @@ func (c completedConfig) NewWithDelegate(delegationTarget genericapiserver.Deleg
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
s.GenericAPIServer.AddPostStartHookOrDie("apiservice-status-available-controller", func(context genericapiserver.PostStartHookContext) error {
|
|
||||||
// if we end up blocking for long periods of time, we may need to increase workers.
|
|
||||||
go availableController.Run(5, context.StopCh)
|
|
||||||
return nil
|
|
||||||
})
|
|
||||||
|
|
||||||
if utilfeature.DefaultFeatureGate.Enabled(genericfeatures.AggregatedDiscoveryEndpoint) {
|
if utilfeature.DefaultFeatureGate.Enabled(genericfeatures.AggregatedDiscoveryEndpoint) {
|
||||||
s.discoveryAggregationController = NewDiscoveryManager(
|
s.discoveryAggregationController = NewDiscoveryManager(
|
||||||
|
Loading…
Reference in New Issue
Block a user