From d041db85aa89d9cc7f9b67eca0e0525c0528edb8 Mon Sep 17 00:00:00 2001 From: Ciprian Hacman Date: Fri, 10 May 2024 05:03:06 +0300 Subject: [PATCH] cluster-autoscaler: Fix priority expander config --- ...r-custom.example.com-addons-bootstrap_content | 2 +- ...ter-autoscaler.addons.k8s.io-k8s-1.15_content | 8 ++++---- ...expander.example.com-addons-bootstrap_content | 2 +- ...ter-autoscaler.addons.k8s.io-k8s-1.15_content | 8 ++++---- .../k8s-1.15.yaml.template | 3 +-- upup/pkg/fi/cloudup/template_functions.go | 16 ++++++++++++---- 6 files changed, 23 insertions(+), 16 deletions(-) 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 e51725c55f..9930ccb675 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: b0c764405add27350d8642bbb30352457acd9b7f223cff119a62bb18773fe2e3 + manifestHash: 963767d82e85200787e166f3cc6e7b3b9e60d2383c9fef71a562d9e4eedd7086 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 c126bac579..08a8b78c01 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 dd3d7b3313..dc74cfc890 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: c4557839138e0ff31d1f98ed22223c98cb99170cf838929e4141ac924758314a + manifestHash: d28605db2e6ade6fee371d462c0e9893871ea73a35ad598fa616a2657290d319 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 7dc0321f3a..20391ec29a 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 15aa2ef120..eda1be96c5 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 @@ -266,8 +266,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 02257f4ce5..a3d56118c9 100644 --- a/upup/pkg/fi/cloudup/template_functions.go +++ b/upup/pkg/fi/cloudup/template_functions.go @@ -71,6 +71,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" ) @@ -341,19 +342,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)