fix 1589-disable hpa controller
Signed-off-by: Poor12 <shentiecheng@huawei.com>
This commit is contained in:
parent
9cbe962748
commit
83be916fa5
|
@ -9,6 +9,7 @@ import (
|
|||
"github.com/spf13/cobra"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/client-go/dynamic"
|
||||
kubeclientset "k8s.io/client-go/kubernetes"
|
||||
restclient "k8s.io/client-go/rest"
|
||||
|
@ -90,6 +91,8 @@ func NewAgentCommand(ctx context.Context) *cobra.Command {
|
|||
|
||||
var controllers = make(controllerscontext.Initializers)
|
||||
|
||||
var controllersDisabledByDefault = sets.NewString()
|
||||
|
||||
func init() {
|
||||
controllers["clusterStatus"] = startClusterStatusController
|
||||
controllers["execution"] = startExecutionController
|
||||
|
@ -192,7 +195,7 @@ func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stop
|
|||
StopChan: stopChan,
|
||||
}
|
||||
|
||||
if err := controllers.StartControllers(controllerContext); err != nil {
|
||||
if err := controllers.StartControllers(controllerContext, controllersDisabledByDefault); err != nil {
|
||||
return fmt.Errorf("error starting controllers: %w", err)
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import (
|
|||
|
||||
"github.com/spf13/cobra"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/client-go/discovery"
|
||||
"k8s.io/client-go/dynamic"
|
||||
kubeclientset "k8s.io/client-go/kubernetes"
|
||||
|
@ -79,7 +80,7 @@ func NewControllerManagerCommand(ctx context.Context) *cobra.Command {
|
|||
// and update the flag usage.
|
||||
genericFlagSet.AddGoFlagSet(flag.CommandLine)
|
||||
genericFlagSet.Lookup("kubeconfig").Usage = "Path to karmada control plane kubeconfig file."
|
||||
opts.AddFlags(genericFlagSet, controllers.ControllerNames())
|
||||
opts.AddFlags(genericFlagSet, controllers.ControllerNames(), controllersDisabledByDefault.List())
|
||||
|
||||
// Set klog flags
|
||||
logsFlagSet := fss.FlagSet("logs")
|
||||
|
@ -146,6 +147,11 @@ func Run(ctx context.Context, opts *options.Options) error {
|
|||
|
||||
var controllers = make(controllerscontext.Initializers)
|
||||
|
||||
// controllersDisabledByDefault is the set of controllers which is disabled by default
|
||||
var controllersDisabledByDefault = sets.NewString(
|
||||
"hpa",
|
||||
)
|
||||
|
||||
func init() {
|
||||
controllers["cluster"] = startClusterController
|
||||
controllers["clusterStatus"] = startClusterStatusController
|
||||
|
@ -483,7 +489,7 @@ func setupControllers(mgr controllerruntime.Manager, opts *options.Options, stop
|
|||
ResourceInterpreter: resourceInterpreter,
|
||||
}
|
||||
|
||||
if err := controllers.StartControllers(controllerContext); err != nil {
|
||||
if err := controllers.StartControllers(controllerContext, controllersDisabledByDefault); err != nil {
|
||||
klog.Fatalf("error starting controllers: %v", err)
|
||||
}
|
||||
|
||||
|
|
|
@ -115,10 +115,10 @@ func NewOptions() *Options {
|
|||
}
|
||||
|
||||
// AddFlags adds flags to the specified FlagSet.
|
||||
func (o *Options) AddFlags(flags *pflag.FlagSet, allControllers []string) {
|
||||
func (o *Options) AddFlags(flags *pflag.FlagSet, allControllers, disabledByDefaultControllers []string) {
|
||||
flags.StringSliceVar(&o.Controllers, "controllers", []string{"*"}, fmt.Sprintf(
|
||||
"A list of controllers to enable. '*' enables all on-by-default controllers, 'foo' enables the controller named 'foo', '-foo' disables the controller named 'foo'. All controllers: %s.",
|
||||
strings.Join(allControllers, ", "),
|
||||
"A list of controllers to enable. '*' enables all on-by-default controllers, 'foo' enables the controller named 'foo', '-foo' disables the controller named 'foo'. \nAll controllers: %s.\nDisabled-by-default controllers: %s",
|
||||
strings.Join(allControllers, ", "), strings.Join(disabledByDefaultControllers, ", "),
|
||||
))
|
||||
flags.StringVar(&o.BindAddress, "bind-address", defaultBindAddress,
|
||||
"The IP address on which to listen for the --secure-port port.")
|
||||
|
|
|
@ -67,7 +67,7 @@ type Context struct {
|
|||
}
|
||||
|
||||
// IsControllerEnabled check if a specified controller enabled or not.
|
||||
func (c Context) IsControllerEnabled(name string) bool {
|
||||
func (c Context) IsControllerEnabled(name string, disabledByDefaultControllers sets.String) bool {
|
||||
hasStar := false
|
||||
for _, ctrl := range c.Opts.Controllers {
|
||||
if ctrl == name {
|
||||
|
@ -80,7 +80,13 @@ func (c Context) IsControllerEnabled(name string) bool {
|
|||
hasStar = true
|
||||
}
|
||||
}
|
||||
return hasStar
|
||||
// if we get here, there was no explicit choice
|
||||
if !hasStar {
|
||||
// nothing on by default
|
||||
return false
|
||||
}
|
||||
|
||||
return !disabledByDefaultControllers.Has(name)
|
||||
}
|
||||
|
||||
// InitFunc is used to launch a particular controller.
|
||||
|
@ -97,9 +103,9 @@ func (i Initializers) ControllerNames() []string {
|
|||
}
|
||||
|
||||
// StartControllers starts a set of controllers with a specified ControllerContext
|
||||
func (i Initializers) StartControllers(ctx Context) error {
|
||||
func (i Initializers) StartControllers(ctx Context, controllersDisabledByDefault sets.String) error {
|
||||
for controllerName, initFn := range i {
|
||||
if !ctx.IsControllerEnabled(controllerName) {
|
||||
if !ctx.IsControllerEnabled(controllerName, controllersDisabledByDefault) {
|
||||
klog.Warningf("%q is disabled", controllerName)
|
||||
continue
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue