func New()

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
}