Mark BasicEstimator as deprecated
This commit is contained in:
parent
bf6ff4be8e
commit
d9f804c686
|
|
@ -21,14 +21,20 @@ import (
|
|||
"fmt"
|
||||
"math"
|
||||
|
||||
"github.com/golang/glog"
|
||||
apiv1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
schedulercache "k8s.io/kubernetes/pkg/scheduler/cache"
|
||||
)
|
||||
|
||||
const basicEstimatorDeprecationMessage = "WARNING: basic estimator is deprecated. It will be removed in Cluster Autoscaler 1.5."
|
||||
|
||||
// BasicNodeEstimator estimates the number of needed nodes to handle the given amount of pods.
|
||||
// It will never overestimate the number of nodes but is quite likely to provide a number that
|
||||
// is too small.
|
||||
//
|
||||
// Deprecated.
|
||||
// TODO(aleksandra-malinowska): remove this in 1.5.
|
||||
type BasicNodeEstimator struct {
|
||||
cpuSum resource.Quantity
|
||||
memorySum resource.Quantity
|
||||
|
|
@ -38,6 +44,7 @@ type BasicNodeEstimator struct {
|
|||
|
||||
// NewBasicNodeEstimator builds BasicNodeEstimator.
|
||||
func NewBasicNodeEstimator() *BasicNodeEstimator {
|
||||
glog.Warning(basicEstimatorDeprecationMessage)
|
||||
return &BasicNodeEstimator{
|
||||
portSum: make(map[int32]int),
|
||||
FittingPods: make(map[*apiv1.Pod]struct{}),
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ package estimator
|
|||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/golang/glog"
|
||||
apiv1 "k8s.io/api/core/v1"
|
||||
"k8s.io/autoscaler/cluster-autoscaler/simulator"
|
||||
schedulercache "k8s.io/kubernetes/pkg/scheduler/cache"
|
||||
|
|
@ -31,25 +32,35 @@ const (
|
|||
BinpackingEstimatorName = "binpacking"
|
||||
)
|
||||
|
||||
// AvailableEstimators is a list of available estimators.
|
||||
var AvailableEstimators = []string{BasicEstimatorName, BinpackingEstimatorName}
|
||||
func deprecated(name string) string {
|
||||
return fmt.Sprintf("%s (DEPRECATED)", name)
|
||||
}
|
||||
|
||||
// AvailableEstimators is a list of available estimators.
|
||||
var AvailableEstimators = []string{BinpackingEstimatorName, deprecated(BasicEstimatorName)}
|
||||
|
||||
// Estimator calculates the number of nodes of given type needed to schedule pods.
|
||||
type Estimator interface {
|
||||
Estimate([]*apiv1.Pod, *schedulercache.NodeInfo, []*schedulercache.NodeInfo) int
|
||||
}
|
||||
|
||||
// EstimatorBuilder creates a new estimator object.
|
||||
type EstimatorBuilder func(*simulator.PredicateChecker) Estimator
|
||||
|
||||
// NewEstimatorBuilder creates a new estimator object from flag.
|
||||
func NewEstimatorBuilder(name string) (EstimatorBuilder, error) {
|
||||
switch name {
|
||||
case BasicEstimatorName:
|
||||
return func(_ *simulator.PredicateChecker) Estimator {
|
||||
return NewBasicNodeEstimator()
|
||||
}, nil
|
||||
case BinpackingEstimatorName:
|
||||
return func(predicateChecker *simulator.PredicateChecker) Estimator {
|
||||
return NewBinpackingNodeEstimator(predicateChecker)
|
||||
}, nil
|
||||
// Deprecated.
|
||||
// TODO(aleksandra-malinowska): remove in 1.5.
|
||||
case BasicEstimatorName:
|
||||
glog.Warning(basicEstimatorDeprecationMessage)
|
||||
return func(_ *simulator.PredicateChecker) Estimator {
|
||||
return NewBasicNodeEstimator()
|
||||
}, nil
|
||||
}
|
||||
return nil, fmt.Errorf("Unknown estimator: %s", name)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue