mirror of https://github.com/kubernetes/kops.git
Merge pull request #13081 from danports/price-priority-autoscaler-expanders
Support price and priority cluster-autoscaler expanders
This commit is contained in:
commit
1db71ca34c
|
@ -48,6 +48,11 @@ spec:
|
|||
|
||||
Read more about cluster autoscaler in the [official documentation](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).
|
||||
|
||||
##### Expander strategies
|
||||
Cluster autoscaler supports several different [expander strategies](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders).
|
||||
|
||||
Note that the `priority` expander requires additional configuration through a ConfigMap as described in [its documentation](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/expander/priority/readme.md) - you will need to create this ConfigMap in your cluster before selecting this expander.
|
||||
|
||||
##### Disabling cluster autoscaler for a given instance group
|
||||
{{ kops_feature_table(kops_added_default='1.20') }}
|
||||
|
||||
|
|
|
@ -622,7 +622,9 @@ spec:
|
|||
expander:
|
||||
description: 'Expander determines the strategy for which instance
|
||||
group gets expanded. Supported values: least-waste, most-pods,
|
||||
random. Default: least-waste'
|
||||
random, price, priority. The price expander is only supported
|
||||
on GCE. The priority expander requires additional configuration
|
||||
via a ConfigMap. Default: least-waste'
|
||||
type: string
|
||||
image:
|
||||
description: 'Image is the docker container used. Default: the
|
||||
|
|
|
@ -960,7 +960,9 @@ type ClusterAutoscalerConfig struct {
|
|||
// Default: false
|
||||
Enabled *bool `json:"enabled,omitempty"`
|
||||
// Expander determines the strategy for which instance group gets expanded.
|
||||
// Supported values: least-waste, most-pods, random.
|
||||
// Supported values: least-waste, most-pods, random, price, priority.
|
||||
// The price expander is only supported on GCE.
|
||||
// The priority expander requires additional configuration via a ConfigMap.
|
||||
// Default: least-waste
|
||||
Expander *string `json:"expander,omitempty"`
|
||||
// BalanceSimilarNodeGroups makes cluster autoscaler treat similar node groups as one.
|
||||
|
|
|
@ -980,7 +980,9 @@ type ClusterAutoscalerConfig struct {
|
|||
// Default: false
|
||||
Enabled *bool `json:"enabled,omitempty"`
|
||||
// Expander determines the strategy for which instance group gets expanded.
|
||||
// Supported values: least-waste, most-pods, random.
|
||||
// Supported values: least-waste, most-pods, random, price, priority.
|
||||
// The price expander is only supported on GCE.
|
||||
// The priority expander requires additional configuration via a ConfigMap.
|
||||
// Default: least-waste
|
||||
Expander *string `json:"expander,omitempty"`
|
||||
// BalanceSimilarNodeGroups makes cluster autoscaler treat similar node groups as one.
|
||||
|
|
|
@ -957,7 +957,9 @@ type ClusterAutoscalerConfig struct {
|
|||
// Default: false
|
||||
Enabled *bool `json:"enabled,omitempty"`
|
||||
// Expander determines the strategy for which instance group gets expanded.
|
||||
// Supported values: least-waste, most-pods, random.
|
||||
// Supported values: least-waste, most-pods, random, price, priority.
|
||||
// The price expander is only supported on GCE.
|
||||
// The priority expander requires additional configuration via a ConfigMap.
|
||||
// Default: least-waste
|
||||
Expander *string `json:"expander,omitempty"`
|
||||
// BalanceSimilarNodeGroups makes cluster autoscaler treat similar node groups as one.
|
||||
|
|
|
@ -1517,7 +1517,11 @@ func validateNodeLocalDNS(spec *kops.ClusterSpec, fldpath *field.Path) field.Err
|
|||
}
|
||||
|
||||
func validateClusterAutoscaler(cluster *kops.Cluster, spec *kops.ClusterAutoscalerConfig, fldPath *field.Path) (allErrs field.ErrorList) {
|
||||
allErrs = append(allErrs, IsValidValue(fldPath.Child("expander"), spec.Expander, []string{"least-waste", "random", "most-pods"})...)
|
||||
allErrs = append(allErrs, IsValidValue(fldPath.Child("expander"), spec.Expander, []string{"least-waste", "random", "most-pods", "price", "priority"})...)
|
||||
|
||||
if fi.StringValue(spec.Expander) == "price" && kops.CloudProviderID(cluster.Spec.CloudProvider) != kops.CloudProviderGCE {
|
||||
allErrs = append(allErrs, field.Forbidden(fldPath.Child("expander"), "Cluster autoscaler price expander is only supported on GCE"))
|
||||
}
|
||||
|
||||
if kops.CloudProviderID(cluster.Spec.CloudProvider) == kops.CloudProviderOpenstack {
|
||||
allErrs = append(allErrs, field.Forbidden(fldPath, "Cluster autoscaler is not supported on OpenStack"))
|
||||
|
|
Loading…
Reference in New Issue