diff --git a/src/renderer/api/endpoints/pod-metrics.api.ts b/src/renderer/api/endpoints/pod-metrics.api.ts index acf6e7b20f..23b8040605 100644 --- a/src/renderer/api/endpoints/pod-metrics.api.ts +++ b/src/renderer/api/endpoints/pod-metrics.api.ts @@ -2,7 +2,7 @@ import { KubeObject } from "../kube-object"; import { KubeApi } from "../kube-api"; export class PodMetrics extends KubeObject { - static kind = "Pod"; + static kind = "PodMetricsList"; static namespaced = true; static apiBase = "/apis/metrics.k8s.io/v1beta1/pods"; diff --git a/src/renderer/api/kube-object.ts b/src/renderer/api/kube-object.ts index 8699a3c94f..c7869533bc 100644 --- a/src/renderer/api/kube-object.ts +++ b/src/renderer/api/kube-object.ts @@ -91,7 +91,7 @@ export class KubeObject implements ItemObject { static isKubeJsonApiListMetadata(object: unknown): object is KubeJsonApiListMetadata { return ( isObject(object) - && hasTypedProperty(object, "resourceVersion", isString) + && hasOptionalProperty(object, "resourceVersion", isString) && hasOptionalProperty(object, "selfLink", isString) ); } @@ -112,12 +112,28 @@ export class KubeObject implements ItemObject { ); } + static isPartialJsonApiMetadata(object: unknown): object is Partial { + return ( + isObject(object) + && hasOptionalProperty(object, "uid", isString) + && hasOptionalProperty(object, "name", isString) + && hasOptionalProperty(object, "resourceVersion", isString) + && hasOptionalProperty(object, "selfLink", isString) + && hasOptionalProperty(object, "namespace", isString) + && hasOptionalProperty(object, "creationTimestamp", isString) + && hasOptionalProperty(object, "continue", isString) + && hasOptionalProperty(object, "finalizers", bindPredicate(isTypedArray, isString)) + && hasOptionalProperty(object, "labels", bindPredicate(isRecord, isString, isString)) + && hasOptionalProperty(object, "annotations", bindPredicate(isRecord, isString, isString)) + ); + } + static isPartialJsonApiData(object: unknown): object is Partial { return ( isObject(object) && hasOptionalProperty(object, "kind", isString) && hasOptionalProperty(object, "apiVersion", isString) - && hasOptionalProperty(object, "metadata", KubeObject.isKubeJsonApiMetadata) + && hasOptionalProperty(object, "metadata", KubeObject.isPartialJsonApiMetadata) ); }