1
0
mirror of https://github.com/kubernetes-sigs/descheduler.git synced 2026-01-26 13:29:11 +01:00

Extend plugin's New with a context.Context

The new context.Context can be later used for passing a contextualized
logger. Or, other initialization steps that require the context.
This commit is contained in:
Jan Chaloupka
2025-05-19 11:58:22 +02:00
parent d34848086c
commit 1974c12e0f
30 changed files with 47 additions and 34 deletions

View File

@@ -191,7 +191,7 @@ func getPluginConfig(pluginName string, pluginConfigs []api.PluginConfig) (*api.
return nil, 0
}
func buildPlugin(config api.DeschedulerProfile, pluginName string, handle *handleImpl, reg pluginregistry.Registry) (frameworktypes.Plugin, error) {
func buildPlugin(ctx context.Context, config api.DeschedulerProfile, pluginName string, handle *handleImpl, reg pluginregistry.Registry) (frameworktypes.Plugin, error) {
pc, _ := getPluginConfig(pluginName, config.PluginConfigs)
if pc == nil {
klog.ErrorS(fmt.Errorf("unable to get plugin config"), "skipping plugin", "plugin", pluginName, "profile", config.Name)
@@ -203,7 +203,7 @@ func buildPlugin(config api.DeschedulerProfile, pluginName string, handle *handl
klog.ErrorS(fmt.Errorf("unable to find plugin in the pluginsMap"), "skipping plugin", "plugin", pluginName)
return nil, fmt.Errorf("unable to find %q plugin in the pluginsMap", pluginName)
}
pg, err := registryPlugin.PluginBuilder(pc.Args, handle)
pg, err := registryPlugin.PluginBuilder(ctx, pc.Args, handle)
if err != nil {
klog.ErrorS(err, "unable to initialize a plugin", "pluginName", pluginName)
return nil, fmt.Errorf("unable to initialize %q plugin: %v", pluginName, err)
@@ -231,7 +231,7 @@ func (p *profileImpl) registryToExtensionPoints(registry pluginregistry.Registry
}
}
func NewProfile(config api.DeschedulerProfile, reg pluginregistry.Registry, opts ...Option) (*profileImpl, error) {
func NewProfile(ctx context.Context, config api.DeschedulerProfile, reg pluginregistry.Registry, opts ...Option) (*profileImpl, error) {
hOpts := &handleImplOpts{}
for _, optFnc := range opts {
optFnc(hOpts)
@@ -290,7 +290,7 @@ func NewProfile(config api.DeschedulerProfile, reg pluginregistry.Registry, opts
plugins := make(map[string]frameworktypes.Plugin)
for _, plugin := range sets.New(pluginNames...).UnsortedList() {
pg, err := buildPlugin(config, plugin, handle, reg)
pg, err := buildPlugin(ctx, config, plugin, handle, reg)
if err != nil {
return nil, fmt.Errorf("unable to build %v plugin: %v", plugin, err)
}

View File

@@ -242,6 +242,7 @@ func TestProfileDescheduleBalanceExtensionPointsEviction(t *testing.T) {
}
prfl, err := NewProfile(
ctx,
test.config,
pluginregistry.PluginRegistry,
WithClientSet(client),
@@ -385,6 +386,7 @@ func TestProfileExtensionPoints(t *testing.T) {
}
prfl, err := NewProfile(
ctx,
api.DeschedulerProfile{
Name: "strategy-test-profile",
PluginConfigs: []api.PluginConfig{
@@ -592,6 +594,7 @@ func TestProfileExtensionPointOrdering(t *testing.T) {
}
prfl, err := NewProfile(
ctx,
api.DeschedulerProfile{
Name: "strategy-test-profile",
PluginConfigs: []api.PluginConfig{