Support price and priority cluster-autoscaler expanders.

This commit is contained in:
Dan Ports 2022-01-05 14:10:06 -05:00
parent af7e6a4aeb
commit 1d9996b4ad
6 changed files with 7 additions and 6 deletions

View File

@ -46,7 +46,7 @@ spec:
memoryRequest: "300Mi"
```
Read more about cluster autoscaler in the [official documentation](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).
Read more about cluster autoscaler in the [official documentation](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler). The autoscaler supports five different expander strategies; the `priority` expander requires additional configuration in a ConfigMap as described in [its documentation](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/expander/priority/readme.md).
##### Disabling cluster autoscaler for a given instance group
{{ kops_feature_table(kops_added_default='1.20') }}

View File

@ -622,7 +622,8 @@ 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 priority expander requires additional
configuration via a ConfigMap. Default: least-waste'
type: string
image:
description: 'Image is the docker container used. Default: the

View File

@ -960,7 +960,7 @@ 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.
// Default: least-waste
Expander *string `json:"expander,omitempty"`
// BalanceSimilarNodeGroups makes cluster autoscaler treat similar node groups as one.

View File

@ -980,7 +980,7 @@ 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.
// Default: least-waste
Expander *string `json:"expander,omitempty"`
// BalanceSimilarNodeGroups makes cluster autoscaler treat similar node groups as one.

View File

@ -957,7 +957,7 @@ 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.
// Default: least-waste
Expander *string `json:"expander,omitempty"`
// BalanceSimilarNodeGroups makes cluster autoscaler treat similar node groups as one.

View File

@ -1517,7 +1517,7 @@ 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 kops.CloudProviderID(cluster.Spec.CloudProvider) == kops.CloudProviderOpenstack {
allErrs = append(allErrs, field.Forbidden(fldPath, "Cluster autoscaler is not supported on OpenStack"))