diff --git a/tests/integration/update_cluster/cluster-autoscaler-priority-expander-custom/data/aws_s3_object_cas-priority-expander-custom.example.com-addons-bootstrap_content b/tests/integration/update_cluster/cluster-autoscaler-priority-expander-custom/data/aws_s3_object_cas-priority-expander-custom.example.com-addons-bootstrap_content index 4f27321321c44..aef719815711d 100644 --- a/tests/integration/update_cluster/cluster-autoscaler-priority-expander-custom/data/aws_s3_object_cas-priority-expander-custom.example.com-addons-bootstrap_content +++ b/tests/integration/update_cluster/cluster-autoscaler-priority-expander-custom/data/aws_s3_object_cas-priority-expander-custom.example.com-addons-bootstrap_content @@ -41,7 +41,7 @@ spec: version: 9.99.0 - id: k8s-1.15 manifest: cluster-autoscaler.addons.k8s.io/k8s-1.15.yaml - manifestHash: 41dc4453160d8f9ae80a1b9beb288252649912296ca56dc3f70dda6cf3cbfaa1 + manifestHash: 8170c20f6d8184dff873231d153b5f6d93f5d8dd75f739963f6d091b6b7f2187 name: cluster-autoscaler.addons.k8s.io selector: k8s-addon: cluster-autoscaler.addons.k8s.io diff --git a/tests/integration/update_cluster/cluster-autoscaler-priority-expander-custom/data/aws_s3_object_cas-priority-expander-custom.example.com-addons-cluster-autoscaler.addons.k8s.io-k8s-1.15_content b/tests/integration/update_cluster/cluster-autoscaler-priority-expander-custom/data/aws_s3_object_cas-priority-expander-custom.example.com-addons-cluster-autoscaler.addons.k8s.io-k8s-1.15_content index a73b8772b41b0..d39f6f7e5574b 100644 --- a/tests/integration/update_cluster/cluster-autoscaler-priority-expander-custom/data/aws_s3_object_cas-priority-expander-custom.example.com-addons-cluster-autoscaler.addons.k8s.io-k8s-1.15_content +++ b/tests/integration/update_cluster/cluster-autoscaler-priority-expander-custom/data/aws_s3_object_cas-priority-expander-custom.example.com-addons-cluster-autoscaler.addons.k8s.io-k8s-1.15_content @@ -282,12 +282,12 @@ spec: apiVersion: v1 data: priorities: |- - "0": + 0: - .* - "50": - - .*low.* - "100": + 100: - .*high.* + 50: + - .*low.* kind: ConfigMap metadata: creationTimestamp: null diff --git a/tests/integration/update_cluster/cluster-autoscaler-priority-expander/data/aws_s3_object_cas-priority-expander.example.com-addons-bootstrap_content b/tests/integration/update_cluster/cluster-autoscaler-priority-expander/data/aws_s3_object_cas-priority-expander.example.com-addons-bootstrap_content index a01634b2c5395..5bdf4d1741b87 100644 --- a/tests/integration/update_cluster/cluster-autoscaler-priority-expander/data/aws_s3_object_cas-priority-expander.example.com-addons-bootstrap_content +++ b/tests/integration/update_cluster/cluster-autoscaler-priority-expander/data/aws_s3_object_cas-priority-expander.example.com-addons-bootstrap_content @@ -41,7 +41,7 @@ spec: version: 9.99.0 - id: k8s-1.15 manifest: cluster-autoscaler.addons.k8s.io/k8s-1.15.yaml - manifestHash: 9b04006b3916dbc0e5fe22f2a23a1fa72d1665e12fe1b96f4cd7707cb823f7d7 + manifestHash: f63778b4b540b89fff019defd1eec7e2320233b6eb54b46897a00589f3fceb92 name: cluster-autoscaler.addons.k8s.io selector: k8s-addon: cluster-autoscaler.addons.k8s.io diff --git a/tests/integration/update_cluster/cluster-autoscaler-priority-expander/data/aws_s3_object_cas-priority-expander.example.com-addons-cluster-autoscaler.addons.k8s.io-k8s-1.15_content b/tests/integration/update_cluster/cluster-autoscaler-priority-expander/data/aws_s3_object_cas-priority-expander.example.com-addons-cluster-autoscaler.addons.k8s.io-k8s-1.15_content index c6ec180358497..1f33703b56fc3 100644 --- a/tests/integration/update_cluster/cluster-autoscaler-priority-expander/data/aws_s3_object_cas-priority-expander.example.com-addons-cluster-autoscaler.addons.k8s.io-k8s-1.15_content +++ b/tests/integration/update_cluster/cluster-autoscaler-priority-expander/data/aws_s3_object_cas-priority-expander.example.com-addons-cluster-autoscaler.addons.k8s.io-k8s-1.15_content @@ -282,12 +282,12 @@ spec: apiVersion: v1 data: priorities: |- - "0": + 0: - nodes.cas-priority-expander.example.com - "50": - - nodes-low-priority.cas-priority-expander.example.com - "100": + 100: - nodes-high-priority.cas-priority-expander.example.com + 50: + - nodes-low-priority.cas-priority-expander.example.com kind: ConfigMap metadata: creationTimestamp: null diff --git a/upup/models/cloudup/resources/addons/cluster-autoscaler.addons.k8s.io/k8s-1.15.yaml.template b/upup/models/cloudup/resources/addons/cluster-autoscaler.addons.k8s.io/k8s-1.15.yaml.template index d10afe403a111..95799ca5d243b 100644 --- a/upup/models/cloudup/resources/addons/cluster-autoscaler.addons.k8s.io/k8s-1.15.yaml.template +++ b/upup/models/cloudup/resources/addons/cluster-autoscaler.addons.k8s.io/k8s-1.15.yaml.template @@ -270,8 +270,7 @@ metadata: k8s-addon: cluster-autoscaler.addons.k8s.io k8s-app: cluster-autoscaler data: - priorities: |- - {{- ClusterAutoscalerPriorities | ToYAML | nindent 4 }} + priorities: |- {{ ClusterAutoscalerPriorities | nindent 4 }} {{ end }} --- # Source: cluster-autoscaler/templates/deployment.yaml diff --git a/upup/pkg/fi/cloudup/template_functions.go b/upup/pkg/fi/cloudup/template_functions.go index 8a0c147a5f9c6..79c7d1244132b 100644 --- a/upup/pkg/fi/cloudup/template_functions.go +++ b/upup/pkg/fi/cloudup/template_functions.go @@ -70,6 +70,7 @@ import ( "k8s.io/kops/upup/pkg/fi/cloudup/openstack" "k8s.io/kops/upup/pkg/fi/cloudup/scaleway" "k8s.io/kops/util/pkg/env" + "k8s.io/kops/util/pkg/maps" "sigs.k8s.io/yaml" ) @@ -337,19 +338,26 @@ func (tf *TemplateFunctions) AddTo(dest template.FuncMap, secretStore fi.SecretS dest["UseServiceAccountExternalPermissions"] = tf.UseServiceAccountExternalPermissions if cluster.Spec.ClusterAutoscaler != nil { - dest["ClusterAutoscalerPriorities"] = func() map[string][]string { + dest["ClusterAutoscalerPriorities"] = func() string { priorities := make(map[string][]string) if cluster.Spec.ClusterAutoscaler.CustomPriorityExpanderConfig != nil { priorities = cluster.Spec.ClusterAutoscaler.CustomPriorityExpanderConfig } else { for name, spec := range tf.GetNodeInstanceGroups() { - if spec.Autoscale != nil { - priorities[fmt.Sprint(spec.AutoscalePriority)] = append(priorities[fmt.Sprint(spec.AutoscalePriority)], fmt.Sprintf("%s.%s", name, tf.ClusterName())) + priorities[strconv.Itoa(int(spec.AutoscalePriority))] = append(priorities[strconv.Itoa(int(spec.AutoscalePriority))], fmt.Sprintf("%s.%s", name, tf.ClusterName())) } } } - return priorities + + var prioritiesStr []string + for _, prio := range maps.SortedKeys(priorities) { + prioritiesStr = append(prioritiesStr, fmt.Sprintf("%s:", prio)) + for _, value := range priorities[prio] { + prioritiesStr = append(prioritiesStr, fmt.Sprintf("- %s", value)) + } + } + return strings.Join(prioritiesStr, "\n") } dest["CreateClusterAutoscalerPriorityConfig"] = func() bool { return fi.ValueOf(cluster.Spec.ClusterAutoscaler.CreatePriorityExpenderConfig)