in pkg/trimaran/targetloadpacking/targetloadpacking.go [64:98]
func New(_ context.Context, obj runtime.Object, handle framework.Handle) (framework.Plugin, error) {
klog.V(4).InfoS("Creating new instance of the TargetLoadPacking plugin")
// cast object into plugin arguments object
args, ok := obj.(*pluginConfig.TargetLoadPackingArgs)
if !ok {
return nil, fmt.Errorf("want args to be of type TargetLoadPackingArgs, got %T", obj)
}
collector, err := trimaran.NewCollector(&args.TrimaranSpec)
if err != nil {
return nil, err
}
hostTargetUtilizationPercent = args.TargetUtilization
requestsMilliCores = args.DefaultRequests.Cpu().MilliValue()
requestsMultiplier, err = strconv.ParseFloat(args.DefaultRequestsMultiplier, 64)
if err != nil {
return nil, errors.New("unable to parse DefaultRequestsMultiplier: " + err.Error())
}
klog.V(4).InfoS("Using TargetLoadPackingArgs",
"requestsMilliCores", requestsMilliCores,
"requestsMultiplier", requestsMultiplier,
"targetUtilization", hostTargetUtilizationPercent)
podAssignEventHandler := trimaran.New()
podAssignEventHandler.AddToHandle(handle)
pl := &TargetLoadPacking{
handle: handle,
eventHandler: podAssignEventHandler,
collector: collector,
args: args,
}
return pl, nil
}