in pkg/trimaran/lowriskovercommitment/lowriskovercommitment.go [61:89]
func New(_ context.Context, obj runtime.Object, handle framework.Handle) (framework.Plugin, error) {
klog.V(4).InfoS("Creating new instance of the LowRiskOverCommitment plugin")
// cast object into plugin arguments object
args, ok := obj.(*pluginConfig.LowRiskOverCommitmentArgs)
if !ok {
return nil, fmt.Errorf("want args to be of type LowRiskOverCommitmentArgs, got %T", obj)
}
collector, err := trimaran.NewCollector(&args.TrimaranSpec)
if err != nil {
return nil, err
}
// create map of resource risk limit weights
m := make(map[v1.ResourceName]float64)
m[v1.ResourceCPU] = pluginv1.DefaultRiskLimitWeight
m[v1.ResourceMemory] = pluginv1.DefaultRiskLimitWeight
for r, w := range args.RiskLimitWeights {
m[r] = w
}
klog.V(4).InfoS("Using LowRiskOverCommitmentArgs", "smoothingWindowSize", args.SmoothingWindowSize,
"riskLimitWeights", m)
pl := &LowRiskOverCommitment{
handle: handle,
collector: collector,
args: args,
riskLimitWeightsMap: m,
}
return pl, nil
}