From 94e62357058f16bf8564ae1648e546f52b416543 Mon Sep 17 00:00:00 2001 From: mchtech Date: Fri, 26 Apr 2024 10:13:09 +0000 Subject: [PATCH 1/2] fix empty DescribedObject in hpa MetricStatus when object target type is AverageValue Signed-off-by: mchtech --- pkg/controller/podautoscaler/horizontal.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/controller/podautoscaler/horizontal.go b/pkg/controller/podautoscaler/horizontal.go index 3b179a89077d0..81dcc17245cbc 100644 --- a/pkg/controller/podautoscaler/horizontal.go +++ b/pkg/controller/podautoscaler/horizontal.go @@ -553,6 +553,7 @@ func (a *HorizontalController) computeStatusForObjectMetric(specReplicas, status *status = autoscalingv2.MetricStatus{ Type: autoscalingv2.ObjectMetricSourceType, Object: &autoscalingv2.ObjectMetricStatus{ + DescribedObject: metricSpec.Object.DescribedObject, Metric: autoscalingv2.MetricIdentifier{ Name: metricSpec.Object.Metric.Name, Selector: metricSpec.Object.Metric.Selector, From 9bf3f025970514d8c09e519a74a014bfb397bf79 Mon Sep 17 00:00:00 2001 From: mchtech Date: Fri, 26 Apr 2024 10:58:00 +0000 Subject: [PATCH 2/2] add test Signed-off-by: mchtech --- pkg/controller/podautoscaler/horizontal_test.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/controller/podautoscaler/horizontal_test.go b/pkg/controller/podautoscaler/horizontal_test.go index 0f2fb2ed99d9d..79f17ddb5adf9 100644 --- a/pkg/controller/podautoscaler/horizontal_test.go +++ b/pkg/controller/podautoscaler/horizontal_test.go @@ -381,6 +381,13 @@ func (tc *testCase) prepareTestClient(t *testing.T) (*fake.Clientset, *metricsfa assert.Equal(t, tc.CPUCurrent, *utilization, "the report CPU utilization percentage should be as expected") } } + + if len(obj.Spec.Metrics) > 0 && obj.Spec.Metrics[0].Object != nil && len(obj.Status.CurrentMetrics) > 0 && obj.Status.CurrentMetrics[0].Object != nil { + assert.Equal(t, obj.Spec.Metrics[0].Object.DescribedObject.APIVersion, obj.Status.CurrentMetrics[0].Object.DescribedObject.APIVersion) + assert.Equal(t, obj.Spec.Metrics[0].Object.DescribedObject.Kind, obj.Status.CurrentMetrics[0].Object.DescribedObject.Kind) + assert.Equal(t, obj.Spec.Metrics[0].Object.DescribedObject.Name, obj.Status.CurrentMetrics[0].Object.DescribedObject.Name) + } + actualConditions := obj.Status.Conditions // TODO: it's ok not to sort these because statusOk // contains all the conditions, so we'll never be appending.