Receive target Object metrics for v2

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev committed 2023-01-16 10:27:19 +03:00
1 parent fd0f46a87c
commit 525d439e7c
2 files changed
+41 -8

No files matched your search

@@ -21,7 +21,7 @@ const hpaV2 = {
}
describe("HorizontalPodAutoscalerApi", () => {
describe("HPA v1", () => {
describe("HPA v2", () => {
it("should return correct empty metrics", () => {
const hpa = new HorizontalPodAutoscaler(hpaV2);
@@ -103,5 +103,32 @@ describe("HorizontalPodAutoscalerApi", () => {
expect(hpa.getMetricValues(hpa.getMetrics()[0])).toEqual("unknown / 1k");
});
it("should return correct object metrics", () => {
const hpa = new HorizontalPodAutoscaler(
{
...hpaV2,
spec: {
...hpaV2.spec,
metrics: [
{
type: HpaMetricType.Object,
object: {
metric: {
name: "requests-per-second"
},
target: {
type: "Value",
value: "10k"
}
}
}
]
}
}
);
expect(hpa.getMetricValues(hpa.getMetrics()[0])).toEqual("unknown / 10k");
});
});
});
@@ -45,10 +45,19 @@ export interface ExternalMetricSource {
export interface ObjectMetricSource {
averageValue?: string;
metricName: string;
metricName?: string;
selector?: LabelSelector;
target: CrossVersionObjectReference;
targetValue: string;
targetValue?: string;
// autoscaling/v2
metric?: {
name?: string;
},
target: {
type?: string;
value?: string;
};
describedObject?: CrossVersionObjectReference;
}
export interface PodsMetricSource {
@@ -344,10 +353,7 @@ function getObjectMetricValue(currentMetric: ObjectMetricStatus | undefined, tar
currentMetric?.currentValue
?? currentMetric?.averageValue
),
target: (
targetMetric?.targetValue
?? targetMetric?.averageValue
),
target: targetMetric?.target?.value
};
}