From fc3f5d3c45a32ff97759f722a3807948e224a9c0 Mon Sep 17 00:00:00 2001 From: Sami Tiilikainen <97873007+samitiilikainen@users.noreply.github.com> Date: Thu, 27 Apr 2023 09:01:59 +0300 Subject: [PATCH] Extract pod metrics injection token Signed-off-by: Sami Tiilikainen <97873007+samitiilikainen@users.noreply.github.com> --- .../endpoints/pod-metrics-api-injection-token.ts | 10 ++++++++++ .../endpoints/pod-metrics.api.injectable.ts | 6 +++--- .../endpoints/pod-metrics.kube-api.injectable.ts | 16 ++++++++++++++++ .../core/src/extensions/renderer-api/k8s-api.ts | 3 +++ packages/core/src/renderer/library.ts | 1 + 5 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 packages/core/src/common/k8s-api/endpoints/pod-metrics-api-injection-token.ts create mode 100644 packages/core/src/common/k8s-api/endpoints/pod-metrics.kube-api.injectable.ts diff --git a/packages/core/src/common/k8s-api/endpoints/pod-metrics-api-injection-token.ts b/packages/core/src/common/k8s-api/endpoints/pod-metrics-api-injection-token.ts new file mode 100644 index 0000000000..e089c8f6d2 --- /dev/null +++ b/packages/core/src/common/k8s-api/endpoints/pod-metrics-api-injection-token.ts @@ -0,0 +1,10 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { getInjectionToken } from "@ogre-tools/injectable"; +import type { PodMetricsApi } from "./pod-metrics.api"; + +export const podMetricsApiInjectionToken = getInjectionToken({ + id: "pod-metrics-api-injection-token", +}); diff --git a/packages/core/src/common/k8s-api/endpoints/pod-metrics.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/pod-metrics.api.injectable.ts index ddd2b109ef..4c2efd6b28 100644 --- a/packages/core/src/common/k8s-api/endpoints/pod-metrics.api.injectable.ts +++ b/packages/core/src/common/k8s-api/endpoints/pod-metrics.api.injectable.ts @@ -6,9 +6,10 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; import { PodMetricsApi } from "./pod-metrics.api"; -import { kubeApiInjectionToken } from "../kube-api/kube-api-injection-token"; import loggerInjectable from "../../logger.injectable"; import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; +import { podMetricsApiInjectionToken } from "./pod-metrics-api-injection-token"; + const podMetricsApiInjectable = getInjectable({ id: "pod-metrics-api", @@ -20,8 +21,7 @@ const podMetricsApiInjectable = getInjectable({ maybeKubeApi: di.inject(maybeKubeApiInjectable), }); }, - - injectionToken: kubeApiInjectionToken, + injectionToken: podMetricsApiInjectionToken, }); export default podMetricsApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/pod-metrics.kube-api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/pod-metrics.kube-api.injectable.ts new file mode 100644 index 0000000000..014eba7720 --- /dev/null +++ b/packages/core/src/common/k8s-api/endpoints/pod-metrics.kube-api.injectable.ts @@ -0,0 +1,16 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { getInjectable } from "@ogre-tools/injectable"; +import { kubeApiInjectionToken } from "../kube-api/kube-api-injection-token"; +import podMetricsApiInjectable from "./pod-metrics.api.injectable"; + +const podMetricsKubeApiInjectable = getInjectable({ + id: "pod-metrics-kube-api", + instantiate: (di) => di.inject(podMetricsApiInjectable), + injectionToken: kubeApiInjectionToken, +}); + + +export default podMetricsKubeApiInjectable; diff --git a/packages/core/src/extensions/renderer-api/k8s-api.ts b/packages/core/src/extensions/renderer-api/k8s-api.ts index e70b22d738..3c68aeff88 100644 --- a/packages/core/src/extensions/renderer-api/k8s-api.ts +++ b/packages/core/src/extensions/renderer-api/k8s-api.ts @@ -105,6 +105,9 @@ export type { MetricData, MetricResult, } from "../../common/k8s-api/endpoints/metrics.api"; +export type { + PodMetrics, +} from "../../common/k8s-api/endpoints/pod-metrics.api"; export { KubeObjectStatusLevel, diff --git a/packages/core/src/renderer/library.ts b/packages/core/src/renderer/library.ts index 1af4714943..84619f2835 100644 --- a/packages/core/src/renderer/library.ts +++ b/packages/core/src/renderer/library.ts @@ -23,3 +23,4 @@ export * as ReactRouterDom from "react-router-dom"; export * as rendererExtensionApi from "../extensions/renderer-api"; export * as commonExtensionApi from "../extensions/common-api"; export { metricsFeature } from "../features/metrics/metrics-feature"; +export { podMetricsApiInjectionToken } from "../common/k8s-api/endpoints/pod-metrics-api-injection-token";