diff --git a/package-lock.json b/package-lock.json index 30a34ea225..73a253f5d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35793,8 +35793,11 @@ "@k8slens/typescript": "^6.5.0-alpha.2" }, "peerDependencies": { + "@k8slens/feature-core": "^6.5.0-alpha.8", "@k8slens/kube-api": "^1.0.0-alpha.1", - "@ogre-tools/injectable": "^17.2.0" + "@k8slens/logger": "^1.0.0", + "@ogre-tools/injectable": "^17.2.0", + "@ogre-tools/injectable-extension-for-auto-registration": "^17.2.0" } }, "packages/utility-features/react-testing-library-discovery": { diff --git a/packages/core/src/common/k8s-api/__tests__/api-manager.test.ts b/packages/core/src/common/k8s-api/__tests__/api-manager.test.ts index 3008b91916..e71603591e 100644 --- a/packages/core/src/common/k8s-api/__tests__/api-manager.test.ts +++ b/packages/core/src/common/k8s-api/__tests__/api-manager.test.ts @@ -11,13 +11,12 @@ import { getDiForUnitTesting } from "../../../renderer/getDiForUnitTesting"; import storesAndApisCanBeCreatedInjectable from "../../../renderer/stores-apis-can-be-created.injectable"; import directoryForKubeConfigsInjectable from "../../app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable"; import directoryForUserDataInjectable from "../../app-paths/directory-for-user-data/directory-for-user-data.injectable"; -import { loggerInjectionToken } from "@k8slens/logger"; +import { logErrorInjectionToken, loggerInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; import type { ApiManager } from "../api-manager"; import apiManagerInjectable from "../api-manager/manager.injectable"; import { KubeApi } from "@k8slens/kube-api"; import { KubeObject } from "@k8slens/kube-object"; import { KubeObjectStore } from "../kube-object.store"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; // eslint-disable-next-line no-restricted-imports import { KubeApi as ExternalKubeApi } from "../../../extensions/common-api/k8s-api"; @@ -25,6 +24,7 @@ import { Cluster } from "../../cluster/cluster"; import { runInAction } from "mobx"; import { customResourceDefinitionApiInjectionToken } from "../api-manager/crd-api-token"; import assert from "assert"; +import { maybeKubeApiInjectable } from "@k8slens/kube-api-specifics"; class TestApi extends KubeApi { protected checkPreferredVersion() { @@ -61,7 +61,9 @@ describe("ApiManager", () => { const apiBase = "api/v1/foo"; const fallbackApiBase = "/apis/extensions/v1beta1/foo"; const kubeApi = new TestApi({ - logger: di.inject(loggerInjectionToken), + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), maybeKubeApi: di.inject(maybeKubeApiInjectable), }, { objectConstructor: KubeObject, @@ -136,7 +138,9 @@ describe("ApiManager", () => { return Object.assign( new KubeApi({ - logger: di.inject(loggerInjectionToken), + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), maybeKubeApi: di.inject(maybeKubeApiInjectable), }, { objectConstructor }), { diff --git a/packages/core/src/common/k8s-api/__tests__/kube-api-version-detection.test.ts b/packages/core/src/common/k8s-api/__tests__/kube-api-version-detection.test.ts index c73d024cce..7bc404f79d 100644 --- a/packages/core/src/common/k8s-api/__tests__/kube-api-version-detection.test.ts +++ b/packages/core/src/common/k8s-api/__tests__/kube-api-version-detection.test.ts @@ -20,9 +20,8 @@ import hostedClusterInjectable from "../../../renderer/cluster-frame-context/hos import directoryForKubeConfigsInjectable from "../../app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable"; import apiManagerInjectable from "../api-manager/manager.injectable"; import type { DiContainer } from "@ogre-tools/injectable"; -import ingressApiInjectable from "../endpoints/ingress.api.injectable"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; +import { ingressApiInjectable, maybeKubeApiInjectable } from "@k8slens/kube-api-specifics"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; import { Cluster } from "../../cluster/cluster"; describe("KubeApi", () => { @@ -710,7 +709,9 @@ describe("KubeApi", () => { beforeEach(async () => { horizontalPodAutoscalerApi = new HorizontalPodAutoscalerApi({ - logger: di.inject(loggerInjectionToken), + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), maybeKubeApi: di.inject(maybeKubeApiInjectable), }, { allowedUsableVersions: { diff --git a/packages/core/src/common/k8s-api/__tests__/kube-api.test.ts b/packages/core/src/common/k8s-api/__tests__/kube-api.test.ts index 072f889824..7c81ae3480 100644 --- a/packages/core/src/common/k8s-api/__tests__/kube-api.test.ts +++ b/packages/core/src/common/k8s-api/__tests__/kube-api.test.ts @@ -22,7 +22,7 @@ import hostedClusterInjectable from "../../../renderer/cluster-frame-context/hos import directoryForKubeConfigsInjectable from "../../app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable"; import apiKubeInjectable from "../../../renderer/k8s/api-kube.injectable"; import type { DiContainer } from "@ogre-tools/injectable"; -import podApiInjectable from "../endpoints/pod.api.injectable"; +import { podApiInjectable } from "@k8slens/kube-api-specifics"; // NOTE: this is fine because we are testing something that only exported // eslint-disable-next-line no-restricted-imports diff --git a/packages/core/src/common/k8s-api/api-manager/manager.injectable.ts b/packages/core/src/common/k8s-api/api-manager/manager.injectable.ts index 8b6340e4a5..20a26bd00d 100644 --- a/packages/core/src/common/k8s-api/api-manager/manager.injectable.ts +++ b/packages/core/src/common/k8s-api/api-manager/manager.injectable.ts @@ -3,11 +3,10 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; import { ApiManager } from "./api-manager"; import { computedInjectManyInjectable } from "@ogre-tools/injectable-extension-for-mobx"; import { kubeObjectStoreInjectionToken } from "./kube-object-store-token"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; +import { kubeApiInjectionToken, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { computed } from "mobx"; import { customResourceDefinitionApiInjectionToken } from "./crd-api-token"; import createCustomResourceStoreInjectable from "./create-custom-resource-store.injectable"; diff --git a/packages/core/src/common/k8s-api/create-kube-api-for-cluster.injectable.ts b/packages/core/src/common/k8s-api/create-kube-api-for-cluster.injectable.ts index d237d90660..d9fbc2d872 100644 --- a/packages/core/src/common/k8s-api/create-kube-api-for-cluster.injectable.ts +++ b/packages/core/src/common/k8s-api/create-kube-api-for-cluster.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { loggerInjectionToken } from "@k8slens/logger"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; import { apiKubePrefix } from "../vars"; import isDevelopmentInjectable from "../vars/is-development.injectable"; import apiBaseInjectable from "./api-base.injectable"; @@ -37,7 +37,9 @@ const createKubeApiForClusterInjectable = getInjectable({ const apiBase = di.inject(apiBaseInjectable); const isDevelopment = di.inject(isDevelopmentInjectable); const createKubeJsonApi = di.inject(createKubeJsonApiInjectable); - const logger = di.inject(loggerInjectionToken); + const logError = di.inject(logErrorInjectionToken); + const logInfo = di.inject(logInfoInjectionToken); + const logWarn = di.inject(logWarningInjectionToken); return ( cluster: CreateKubeApiForLocalClusterConfig, @@ -64,7 +66,9 @@ const createKubeApiForClusterInjectable = getInjectable({ return new KubeApi( { - logger, + logError, + logInfo, + logWarn, maybeKubeApi: undefined, }, { diff --git a/packages/core/src/common/k8s-api/create-kube-api-for-remote-cluster.injectable.ts b/packages/core/src/common/k8s-api/create-kube-api-for-remote-cluster.injectable.ts index 28377d4e88..d3b9f26e91 100644 --- a/packages/core/src/common/k8s-api/create-kube-api-for-remote-cluster.injectable.ts +++ b/packages/core/src/common/k8s-api/create-kube-api-for-remote-cluster.injectable.ts @@ -6,7 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import type { AgentOptions } from "https"; import { Agent } from "https"; import type { RequestInit } from "@k8slens/node-fetch"; -import { loggerInjectionToken } from "@k8slens/logger"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; import isDevelopmentInjectable from "../vars/is-development.injectable"; import createKubeJsonApiInjectable from "./create-kube-json-api.injectable"; import type { KubeApiOptions } from "@k8slens/kube-api"; @@ -53,7 +53,9 @@ const createKubeApiForRemoteClusterInjectable = getInjectable({ instantiate: (di): CreateKubeApiForRemoteCluster => { const isDevelopment = di.inject(isDevelopmentInjectable); const createKubeJsonApi = di.inject(createKubeJsonApiInjectable); - const logger = di.inject(loggerInjectionToken); + const logError = di.inject(logErrorInjectionToken); + const logInfo = di.inject(logInfoInjectionToken); + const logWarn = di.inject(logWarningInjectionToken); return ( config: CreateKubeApiForRemoteClusterConfig, @@ -110,7 +112,9 @@ const createKubeApiForRemoteClusterInjectable = getInjectable({ return new KubeApi( { - logger, + logError, + logInfo, + logWarn, maybeKubeApi: undefined, }, { diff --git a/packages/core/src/common/k8s-api/create-kube-api.injectable.ts b/packages/core/src/common/k8s-api/create-kube-api.injectable.ts index 57fac06b97..c92c8796cc 100644 --- a/packages/core/src/common/k8s-api/create-kube-api.injectable.ts +++ b/packages/core/src/common/k8s-api/create-kube-api.injectable.ts @@ -3,9 +3,9 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { loggerInjectionToken } from "@k8slens/logger"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; import type { DerivedKubeApiOptions, KubeApiDependencies } from "@k8slens/kube-api"; -import maybeKubeApiInjectable from "./maybe-kube-api.injectable"; +import { maybeKubeApiInjectable } from "@k8slens/kube-api-specifics"; export interface CreateKubeApi { (ctor: new (deps: KubeApiDependencies, opts: DerivedKubeApiOptions) => Api, opts?: DerivedKubeApiOptions): Api; @@ -15,7 +15,9 @@ const createKubeApiInjectable = getInjectable({ id: "create-kube-api", instantiate: (di): CreateKubeApi => { const deps: KubeApiDependencies = { - logger: di.inject(loggerInjectionToken), + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), maybeKubeApi: di.inject(maybeKubeApiInjectable), }; diff --git a/packages/core/src/common/k8s-api/endpoints/cluster-role-binding.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/cluster-role-binding.api.injectable.ts deleted file mode 100644 index f731e32a28..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/cluster-role-binding.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { ClusterRoleBindingApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const clusterRoleBindingApiInjectable = getInjectable({ - id: "cluster-role-binding-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "clusterRoleBindingApi is only accessible in certain environments"); - - return new ClusterRoleBindingApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default clusterRoleBindingApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/cluster-role.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/cluster-role.api.injectable.ts deleted file mode 100644 index 6e5ea7b184..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/cluster-role.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { ClusterRoleApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const clusterRoleApiInjectable = getInjectable({ - id: "cluster-role-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "clusterRoleApi is only available in certain environments"); - - return new ClusterRoleApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default clusterRoleApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/component-status.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/component-status.api.injectable.ts deleted file mode 100644 index eb5a216a13..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/component-status.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { ComponentStatusApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; -import { loggerInjectionToken } from "@k8slens/logger"; - -const componentStatusApiInjectable = getInjectable({ - id: "component-status-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "componentStatusApi is only available in certain environments"); - - return new ComponentStatusApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default componentStatusApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/config-map.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/config-map.api.injectable.ts deleted file mode 100644 index 4b9c1323bf..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/config-map.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { ConfigMapApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const configMapApiInjectable = getInjectable({ - id: "config-map-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "configMapApi is only available in certain environments"); - - return new ConfigMapApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default configMapApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/cron-job.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/cron-job.api.injectable.ts deleted file mode 100644 index 016b147668..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/cron-job.api.injectable.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { CronJobApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const cronJobApiInjectable = getInjectable({ - id: "cron-job-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "cronJobApi is only available in certain environments"); - - return new CronJobApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }, { - checkPreferredVersion: true, - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default cronJobApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/custom-resource-definition.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/custom-resource-definition.api.injectable.ts deleted file mode 100644 index f6b32ffbf6..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/custom-resource-definition.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { CustomResourceDefinitionApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; -import { loggerInjectionToken } from "@k8slens/logger"; - -const customResourceDefinitionApiInjectable = getInjectable({ - id: "custom-resource-definition-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "customResourceDefinitionApi is only available in certain environments"); - - return new CustomResourceDefinitionApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default customResourceDefinitionApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/daemon-set.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/daemon-set.api.injectable.ts deleted file mode 100644 index ab2a004a08..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/daemon-set.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { DaemonSetApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const daemonSetApiInjectable = getInjectable({ - id: "daemon-set-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "daemonSetApi is only available in certain environments"); - - return new DaemonSetApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default daemonSetApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/deployment.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/deployment.api.injectable.ts deleted file mode 100644 index d652d710f5..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/deployment.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { DeploymentApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const deploymentApiInjectable = getInjectable({ - id: "deployment-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "deploymentApi is only available in certain environments"); - - return new DeploymentApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default deploymentApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/endpoint.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/endpoint.api.injectable.ts deleted file mode 100644 index fa2ba55d23..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/endpoint.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { EndpointsApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const endpointsApiInjectable = getInjectable({ - id: "endpoints-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "endpointsApi is only available in certain environments"); - - return new EndpointsApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default endpointsApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/events.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/events.api.injectable.ts deleted file mode 100644 index 8b26fb9065..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/events.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { KubeEventApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const kubeEventApiInjectable = getInjectable({ - id: "kube-event-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "kubeEventApi is only available in certain environments"); - - return new KubeEventApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default kubeEventApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/horizontal-pod-autoscaler.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/horizontal-pod-autoscaler.api.injectable.ts deleted file mode 100644 index 226fc60e94..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/horizontal-pod-autoscaler.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { HorizontalPodAutoscalerApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const horizontalPodAutoscalerApiInjectable = getInjectable({ - id: "horizontal-pod-autoscaler-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "horizontalPodAutoscalerApi is only available in certain environments"); - - return new HorizontalPodAutoscalerApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default horizontalPodAutoscalerApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/ingress-class.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/ingress-class.api.injectable.ts deleted file mode 100644 index 25662ddd7e..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/ingress-class.api.injectable.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * 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 { IngressClassApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const ingressClassApiInjectable = getInjectable({ - id: "ingress-class-api", - instantiate: (di) => new IngressClassApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }), - - injectionToken: kubeApiInjectionToken, -}); - -export default ingressClassApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/job.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/job.api.injectable.ts deleted file mode 100644 index edd0a66e29..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/job.api.injectable.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { JobApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const jobApiInjectable = getInjectable({ - id: "job-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "jobApi is only available in certain environments"); - - return new JobApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }, { - checkPreferredVersion: true, - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default jobApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/limit-range.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/limit-range.api.injectable.ts deleted file mode 100644 index 8eb4427f57..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/limit-range.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { LimitRangeApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const limitRangeApiInjectable = getInjectable({ - id: "limit-range-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "limitRangeApi is only available in certain environments"); - - return new LimitRangeApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default limitRangeApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/mutating-webhook-configuration-api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/mutating-webhook-configuration-api.injectable.ts deleted file mode 100644 index a91fa90332..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/mutating-webhook-configuration-api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { MutatingWebhookConfigurationApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const mutatingWebhookConfigurationApiInjectable = getInjectable({ - id: "mutating-webhook-configuration", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "mutatingWebhookApi is only available in certain environments"); - - return new MutatingWebhookConfigurationApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default mutatingWebhookConfigurationApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/namespace.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/namespace.api.injectable.ts deleted file mode 100644 index 5ed484fe74..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/namespace.api.injectable.ts +++ /dev/null @@ -1,28 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { NamespaceApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const namespaceApiInjectable = getInjectable({ - id: "namespace-api", - - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "namespaceApi is only available in certain environments"); - - return new NamespaceApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default namespaceApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/network-policy.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/network-policy.api.injectable.ts deleted file mode 100644 index bcc325b85b..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/network-policy.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { NetworkPolicyApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const networkPolicyApiInjectable = getInjectable({ - id: "network-policy-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "networkPolicyApi is only available in certain environments"); - - return new NetworkPolicyApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default networkPolicyApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/persistent-volume-claim.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/persistent-volume-claim.api.injectable.ts deleted file mode 100644 index 6a50975a8a..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/persistent-volume-claim.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { PersistentVolumeClaimApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const persistentVolumeClaimApiInjectable = getInjectable({ - id: "persistent-volume-claim-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "persistentVolumeClaimApi is only available in certain environments"); - - return new PersistentVolumeClaimApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default persistentVolumeClaimApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/persistent-volume.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/persistent-volume.api.injectable.ts deleted file mode 100644 index 72a1ec8d21..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/persistent-volume.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { PersistentVolumeApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const persistentVolumeApiInjectable = getInjectable({ - id: "persistent-volume-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "persistentVolumeApi is only available in certain environments"); - - return new PersistentVolumeApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default persistentVolumeApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/pod-disruption-budget.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/pod-disruption-budget.api.injectable.ts deleted file mode 100644 index ab17a0f35d..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/pod-disruption-budget.api.injectable.ts +++ /dev/null @@ -1,35 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { PodDisruptionBudgetApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const podDisruptionBudgetApiInjectable = getInjectable({ - id: "pod-disruption-budget-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "podDisruptionBudgetApi is only available in certain environments"); - - return new PodDisruptionBudgetApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }, { - checkPreferredVersion: true, - allowedUsableVersions: { - policy: [ - "v1", - "v1beta1", - ], - }, - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default podDisruptionBudgetApiInjectable; 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 deleted file mode 100644 index bda2bfe010..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/pod-metrics.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { PodMetricsApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const podMetricsApiInjectable = getInjectable({ - id: "pod-metrics-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "podMetricsApi is only available in certain environments"); - - return new PodMetricsApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default podMetricsApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/pod-security-policy.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/pod-security-policy.api.injectable.ts deleted file mode 100644 index b6bf8ada32..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/pod-security-policy.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { PodSecurityPolicyApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const podSecurityPolicyApiInjectable = getInjectable({ - id: "pod-security-policy-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "podSecurityPolicyApi is only available in certain environments"); - - return new PodSecurityPolicyApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default podSecurityPolicyApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/priority-class.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/priority-class.api.injectable.ts deleted file mode 100644 index de6b2d8c1d..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/priority-class.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { PriorityClassApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const priorityClassApiInjectable = getInjectable({ - id: "priority-class-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "PriorityClassApi is only available in certain environments"); - - return new PriorityClassApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default priorityClassApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/replica-set.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/replica-set.api.injectable.ts deleted file mode 100644 index fcebaa7aca..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/replica-set.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { ReplicaSetApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const replicaSetApiInjectable = getInjectable({ - id: "replica-set-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "replicaSetApi is only available in certain environments"); - - return new ReplicaSetApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default replicaSetApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/replication-controller.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/replication-controller.api.injectable.ts deleted file mode 100644 index 82b09ad2b6..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/replication-controller.api.injectable.ts +++ /dev/null @@ -1,23 +0,0 @@ -/** - * 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 { ReplicationControllerApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const replicationControllerApiInjectable = getInjectable({ - id: "replication-controller-api", - instantiate: (di) => { - return new ReplicationControllerApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default replicationControllerApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/resource-quota.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/resource-quota.api.injectable.ts deleted file mode 100644 index 5bb50c6b14..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/resource-quota.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { ResourceQuotaApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const resourceQuotaApiInjectable = getInjectable({ - id: "resource-quota-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "resourceQuotaApi is only available in certain environments"); - - return new ResourceQuotaApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default resourceQuotaApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/role-binding.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/role-binding.api.injectable.ts deleted file mode 100644 index a254a587b9..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/role-binding.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { RoleBindingApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const roleBindingApiInjectable = getInjectable({ - id: "role-binding-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "roleBindingApi is only available in certain environments"); - - return new RoleBindingApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default roleBindingApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/runtime-class.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/runtime-class.api.injectable.ts deleted file mode 100644 index 4aba1e2d42..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/runtime-class.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { RuntimeClassApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const runtimeClassApiInjectable = getInjectable({ - id: "runtime-class-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "RuntimeClassApi is only available in certain environments"); - - return new RuntimeClassApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default runtimeClassApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/self-subject-rules-reviews.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/self-subject-rules-reviews.api.injectable.ts deleted file mode 100644 index f0a44febd4..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/self-subject-rules-reviews.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { SelfSubjectRulesReviewApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const selfSubjectRulesReviewApiInjectable = getInjectable({ - id: "self-subject-rules-review-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "selfSubjectRulesReviewApi is only available in certain environments"); - - return new SelfSubjectRulesReviewApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default selfSubjectRulesReviewApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/service-account.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/service-account.api.injectable.ts deleted file mode 100644 index 170a106b12..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/service-account.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { ServiceAccountApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const serviceAccountApiInjectable = getInjectable({ - id: "service-account-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "serviceAccountApi is only available in certain environments"); - - return new ServiceAccountApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default serviceAccountApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/stateful-set.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/stateful-set.api.injectable.ts deleted file mode 100644 index ba56cb4a95..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/stateful-set.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { StatefulSetApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const statefulSetApiInjectable = getInjectable({ - id: "stateful-set-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "statefulSetApi is only available in certain environments"); - - return new StatefulSetApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default statefulSetApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/storage-class.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/storage-class.api.injectable.ts deleted file mode 100644 index 4eb7003e7a..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/storage-class.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { StorageClassApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const storageClassApiInjectable = getInjectable({ - id: "storage-class-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "storageClassApi is only available in certain environments"); - - return new StorageClassApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default storageClassApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/validating-webhook-configuration-api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/validating-webhook-configuration-api.injectable.ts deleted file mode 100644 index 5bf2f7ab4d..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/validating-webhook-configuration-api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { ValidatingWebhookConfigurationApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const validatingWebhookConfigurationApiInjectable = getInjectable({ - id: "validating-webhook-configuration", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "validatingWebhookApi is only available in certain environments"); - - return new ValidatingWebhookConfigurationApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default validatingWebhookConfigurationApiInjectable; diff --git a/packages/core/src/common/k8s-api/endpoints/vertical-pod-autoscaler.api.injectable.ts b/packages/core/src/common/k8s-api/endpoints/vertical-pod-autoscaler.api.injectable.ts deleted file mode 100644 index 439c2107e9..0000000000 --- a/packages/core/src/common/k8s-api/endpoints/vertical-pod-autoscaler.api.injectable.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * 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 assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; -import { VerticalPodAutoscalerApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; - -const verticalPodAutoscalerApiInjectable = getInjectable({ - id: "vertical-pod-autoscaler-api", - instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "verticalPodAutoscalerApi is only available in certain environments"); - - return new VerticalPodAutoscalerApi({ - logger: di.inject(loggerInjectionToken), - maybeKubeApi: di.inject(maybeKubeApiInjectable), - }); - }, - - injectionToken: kubeApiInjectionToken, -}); - -export default verticalPodAutoscalerApiInjectable; diff --git a/packages/core/src/common/k8s-api/selected-filter-namespaces.injectable.ts b/packages/core/src/common/k8s-api/selected-filter-namespaces.injectable.ts index 41f664b895..a89c181769 100644 --- a/packages/core/src/common/k8s-api/selected-filter-namespaces.injectable.ts +++ b/packages/core/src/common/k8s-api/selected-filter-namespaces.injectable.ts @@ -2,10 +2,10 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ +import { storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import clusterFrameContextForNamespacedResourcesInjectable from "../../renderer/cluster-frame-context/for-namespaced-resources.injectable"; -import { storesAndApisCanBeCreatedInjectionToken } from "./stores-apis-can-be-created.token"; const selectedFilterNamespacesInjectable = getInjectable({ id: "selected-filter-namespaces", diff --git a/packages/core/src/extensions/common-api/k8s-api.ts b/packages/core/src/extensions/common-api/k8s-api.ts index d53f240af5..7c9e2ad763 100644 --- a/packages/core/src/extensions/common-api/k8s-api.ts +++ b/packages/core/src/extensions/common-api/k8s-api.ts @@ -20,10 +20,9 @@ import type { KubeJsonApiDataFor, KubeObject } from "@k8slens/kube-object"; import type { DerivedKubeApiOptions, KubeApiDependencies, KubeApiOptions, KubeJsonApi as InternalKubeJsonApi } from "@k8slens/kube-api"; import clusterFrameContextForNamespacedResourcesInjectable from "../../renderer/cluster-frame-context/for-namespaced-resources.injectable"; import type { ClusterContext } from "../../renderer/cluster-frame-context/cluster-frame-context"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../../common/k8s-api/maybe-kube-api.injectable"; +import { logErrorInjectionToken, loggerInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { DeploymentApi as InternalDeploymentApi, IngressApi as InternalIngressApi, NodeApi, PersistentVolumeClaimApi, PodApi, KubeApi as InternalKubeApi } from "@k8slens/kube-api"; -import { storesAndApisCanBeCreatedInjectionToken } from "../../common/k8s-api/stores-apis-can-be-created.token"; import type { JsonApiConfig } from "@k8slens/json-api"; import createKubeJsonApiInjectable from "../../common/k8s-api/create-kube-json-api.injectable"; import type { RequestInit } from "@k8slens/node-fetch"; @@ -40,7 +39,9 @@ const getKubeApiDeps = (): KubeApiDependencies => { const di = getLegacyGlobalDiForExtensionApi(); return { - logger: di.inject(loggerInjectionToken), + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), maybeKubeApi: di.inject(maybeKubeApiInjectable), }; }; diff --git a/packages/core/src/extensions/renderer-api/k8s-api.ts b/packages/core/src/extensions/renderer-api/k8s-api.ts index 7dc9abca43..cb00484fa2 100644 --- a/packages/core/src/extensions/renderer-api/k8s-api.ts +++ b/packages/core/src/extensions/renderer-api/k8s-api.ts @@ -5,37 +5,7 @@ import type { KubeResource } from "../../common/rbac"; import { apiResourceRecord } from "../../common/rbac"; import { getLegacyGlobalDiForExtensionApi, asLegacyGlobalForExtensionApi, asLegacyGlobalFunctionForExtensionApi } from "@k8slens/legacy-global-di"; -import clusterRoleBindingApiInjectable from "../../common/k8s-api/endpoints/cluster-role-binding.api.injectable"; -import clusterRoleApiInjectable from "../../common/k8s-api/endpoints/cluster-role.api.injectable"; -import serviceAccountApiInjectable from "../../common/k8s-api/endpoints/service-account.api.injectable"; -import roleApiInjectable from "../../common/k8s-api/endpoints/role.api.injectable"; -import podApiInjectable from "../../common/k8s-api/endpoints/pod.api.injectable"; -import daemonSetApiInjectable from "../../common/k8s-api/endpoints/daemon-set.api.injectable"; -import replicaSetApiInjectable from "../../common/k8s-api/endpoints/replica-set.api.injectable"; -import statefulSetApiInjectable from "../../common/k8s-api/endpoints/stateful-set.api.injectable"; -import deploymentApiInjectable from "../../common/k8s-api/endpoints/deployment.api.injectable"; -import jobApiInjectable from "../../common/k8s-api/endpoints/job.api.injectable"; -import cronJobApiInjectable from "../../common/k8s-api/endpoints/cron-job.api.injectable"; -import nodeApiInjectable from "../../common/k8s-api/endpoints/node.api.injectable"; -import configMapApiInjectable from "../../common/k8s-api/endpoints/config-map.api.injectable"; -import secretApiInjectable from "../../common/k8s-api/endpoints/secret.api.injectable"; -import resourceQuotaApiInjectable from "../../common/k8s-api/endpoints/resource-quota.api.injectable"; -import limitRangeApiInjectable from "../../common/k8s-api/endpoints/limit-range.api.injectable"; -import horizontalPodAutoscalerApiInjectable from "../../common/k8s-api/endpoints/horizontal-pod-autoscaler.api.injectable"; -import verticalPodAutoscalerApiInjectable from "../../common/k8s-api/endpoints/vertical-pod-autoscaler.api.injectable"; -import podDisruptionBudgetApiInjectable from "../../common/k8s-api/endpoints/pod-disruption-budget.api.injectable"; -import priorityClassStoreApiInjectable from "../../common/k8s-api/endpoints/priority-class.api.injectable"; -import serviceApiInjectable from "../../common/k8s-api/endpoints/service.api.injectable"; -import endpointsApiInjectable from "../../common/k8s-api/endpoints/endpoint.api.injectable"; -import ingressApiInjectable from "../../common/k8s-api/endpoints/ingress.api.injectable"; -import networkPolicyApiInjectable from "../../common/k8s-api/endpoints/network-policy.api.injectable"; -import persistentVolumeApiInjectable from "../../common/k8s-api/endpoints/persistent-volume.api.injectable"; -import persistentVolumeClaimApiInjectable from "../../common/k8s-api/endpoints/persistent-volume-claim.api.injectable"; -import storageClassApiInjectable from "../../common/k8s-api/endpoints/storage-class.api.injectable"; -import namespaceApiInjectable from "../../common/k8s-api/endpoints/namespace.api.injectable"; -import kubeEventApiInjectable from "../../common/k8s-api/endpoints/events.api.injectable"; -import roleBindingApiInjectable from "../../common/k8s-api/endpoints/role-binding.api.injectable"; -import customResourceDefinitionApiInjectable from "../../common/k8s-api/endpoints/custom-resource-definition.api.injectable"; +import * as kubeApiSpecifics from "@k8slens/kube-api-specifics"; import { shouldShowResourceInjectionToken } from "../../features/cluster/showing-kube-resources/common/allowed-resources-injection-token"; import requestMetricsInjectable from "../../common/k8s-api/endpoints/metrics.api/request-metrics.injectable"; @@ -59,37 +29,37 @@ export function isAllowedResource(resources: KubeResource | KubeResource[]) { }); } -export const serviceAccountsApi = asLegacyGlobalForExtensionApi(serviceAccountApiInjectable); -export const clusterRoleApi = asLegacyGlobalForExtensionApi(clusterRoleApiInjectable); -export const clusterRoleBindingApi = asLegacyGlobalForExtensionApi(clusterRoleBindingApiInjectable); -export const roleApi = asLegacyGlobalForExtensionApi(roleApiInjectable); -export const podsApi = asLegacyGlobalForExtensionApi(podApiInjectable); -export const daemonSetApi = asLegacyGlobalForExtensionApi(daemonSetApiInjectable); -export const replicaSetApi = asLegacyGlobalForExtensionApi(replicaSetApiInjectable); -export const statefulSetApi = asLegacyGlobalForExtensionApi(statefulSetApiInjectable); -export const deploymentApi = asLegacyGlobalForExtensionApi(deploymentApiInjectable); -export const jobApi = asLegacyGlobalForExtensionApi(jobApiInjectable); -export const cronJobApi = asLegacyGlobalForExtensionApi(cronJobApiInjectable); -export const nodesApi = asLegacyGlobalForExtensionApi(nodeApiInjectable); -export const secretsApi = asLegacyGlobalForExtensionApi(secretApiInjectable); -export const configMapApi = asLegacyGlobalForExtensionApi(configMapApiInjectable); -export const resourceQuotaApi = asLegacyGlobalForExtensionApi(resourceQuotaApiInjectable); -export const limitRangeApi = asLegacyGlobalForExtensionApi(limitRangeApiInjectable); -export const serviceApi = asLegacyGlobalForExtensionApi(serviceApiInjectable); -export const hpaApi = asLegacyGlobalForExtensionApi(horizontalPodAutoscalerApiInjectable); -export const vpaApi = asLegacyGlobalForExtensionApi(verticalPodAutoscalerApiInjectable); -export const pdbApi = asLegacyGlobalForExtensionApi(podDisruptionBudgetApiInjectable); -export const pcApi = asLegacyGlobalForExtensionApi(priorityClassStoreApiInjectable); -export const endpointApi = asLegacyGlobalForExtensionApi(endpointsApiInjectable); -export const ingressApi = asLegacyGlobalForExtensionApi(ingressApiInjectable); -export const networkPolicyApi = asLegacyGlobalForExtensionApi(networkPolicyApiInjectable); -export const persistentVolumeApi = asLegacyGlobalForExtensionApi(persistentVolumeApiInjectable); -export const pvcApi = asLegacyGlobalForExtensionApi(persistentVolumeClaimApiInjectable); -export const storageClassApi = asLegacyGlobalForExtensionApi(storageClassApiInjectable); -export const namespacesApi = asLegacyGlobalForExtensionApi(namespaceApiInjectable); -export const eventApi = asLegacyGlobalForExtensionApi(kubeEventApiInjectable); -export const roleBindingApi = asLegacyGlobalForExtensionApi(roleBindingApiInjectable); -export const crdApi = asLegacyGlobalForExtensionApi(customResourceDefinitionApiInjectable); +export const serviceAccountsApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.serviceAccountApiInjectable); +export const clusterRoleApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.clusterRoleApiInjectable); +export const clusterRoleBindingApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.clusterRoleBindingApiInjectable); +export const roleApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.roleApiInjectable); +export const podsApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.podApiInjectable); +export const daemonSetApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.daemonSetApiInjectable); +export const replicaSetApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.replicaSetApiInjectable); +export const statefulSetApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.statefulSetApiInjectable); +export const deploymentApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.deploymentApiInjectable); +export const jobApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.jobApiInjectable); +export const cronJobApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.cronJobApiInjectable); +export const nodesApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.nodeApiInjectable); +export const secretsApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.secretApiInjectable); +export const configMapApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.configMapApiInjectable); +export const resourceQuotaApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.resourceQuotaApiInjectable); +export const limitRangeApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.limitRangeApiInjectable); +export const serviceApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.serviceApiInjectable); +export const hpaApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.horizontalPodAutoscalerApiInjectable); +export const vpaApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.verticalPodAutoscalerApiInjectable); +export const pdbApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.podDisruptionBudgetApiInjectable); +export const pcApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.priorityClassApiInjectable); +export const endpointApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.endpointsApiInjectable); +export const ingressApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.ingressApiInjectable); +export const networkPolicyApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.networkPolicyApiInjectable); +export const persistentVolumeApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.persistentVolumeApiInjectable); +export const pvcApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.persistentVolumeClaimApiInjectable); +export const storageClassApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.storageClassApiInjectable); +export const namespacesApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.namespaceApiInjectable); +export const eventApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.kubeEventApiInjectable); +export const roleBindingApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.roleBindingApiInjectable); +export const crdApi = asLegacyGlobalForExtensionApi(kubeApiSpecifics.customResourceDefinitionApiInjectable); export * from "../common-api/k8s-api"; diff --git a/packages/core/src/features/cluster/workloads/pods.test.tsx b/packages/core/src/features/cluster/workloads/pods.test.tsx index 74d9f7e2cc..2bb153e927 100644 --- a/packages/core/src/features/cluster/workloads/pods.test.tsx +++ b/packages/core/src/features/cluster/workloads/pods.test.tsx @@ -10,7 +10,7 @@ import podStoreInjectable from "../../../renderer/components/workloads-pods/stor import type { PodMetrics, PodStatus } from "@k8slens/kube-object"; import { Pod } from "@k8slens/kube-object"; import type { PodMetricsApi } from "@k8slens/kube-api"; -import podMetricsApiInjectable from "../../../common/k8s-api/endpoints/pod-metrics.api.injectable"; +import { podMetricsApiInjectable } from "@k8slens/kube-api-specifics"; import type { RequestMetrics } from "../../../common/k8s-api/endpoints/metrics.api/request-metrics.injectable"; import requestMetricsInjectable from "../../../common/k8s-api/endpoints/metrics.api/request-metrics.injectable"; diff --git a/packages/core/src/main/stores-apis-can-be-created.injectable.ts b/packages/core/src/main/stores-apis-can-be-created.injectable.ts index 6dc36f6702..cb7e16cd39 100644 --- a/packages/core/src/main/stores-apis-can-be-created.injectable.ts +++ b/packages/core/src/main/stores-apis-can-be-created.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { storesAndApisCanBeCreatedInjectionToken } from "../common/k8s-api/stores-apis-can-be-created.token"; +import { storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; const storesAndApisCanBeCreatedInjectable = getInjectable({ id: "create-stores-and-apis", diff --git a/packages/core/src/renderer/before-frame-starts/runnables/setup-auto-crd-api-creations.injectable.ts b/packages/core/src/renderer/before-frame-starts/runnables/setup-auto-crd-api-creations.injectable.ts index 658954e02e..a366a61054 100644 --- a/packages/core/src/renderer/before-frame-starts/runnables/setup-auto-crd-api-creations.injectable.ts +++ b/packages/core/src/renderer/before-frame-starts/runnables/setup-auto-crd-api-creations.injectable.ts @@ -8,11 +8,11 @@ import { customResourceDefinitionApiInjectionToken } from "../../../common/k8s-a import type { CustomResourceDefinition } from "@k8slens/kube-object"; import { KubeApi } from "@k8slens/kube-api"; import { KubeObject } from "@k8slens/kube-object"; -import maybeKubeApiInjectable from "../../../common/k8s-api/maybe-kube-api.injectable"; -import { loggerInjectionToken } from "@k8slens/logger"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; import { injectableDifferencingRegistratorWith } from "../../../common/utils/registrator-helper"; import customResourceDefinitionStoreInjectable from "../../components/custom-resource-definitions/store.injectable"; import { beforeClusterFrameStartsSecondInjectionToken } from "../tokens"; +import { maybeKubeApiInjectable } from "@k8slens/kube-api-specifics"; const setupAutoCrdApiCreationsInjectable = getInjectable({ id: "setup-auto-crd-api-creations", @@ -45,7 +45,9 @@ const toCrdApiInjectable = (crd: CustomResourceDefinition) => getInjectable({ }; return new KubeApi({ - logger: di.inject(loggerInjectionToken), + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), maybeKubeApi: di.inject(maybeKubeApiInjectable), }, { objectConstructor }); }, diff --git a/packages/core/src/renderer/components/cluster/store.injectable.ts b/packages/core/src/renderer/components/cluster/store.injectable.ts index cf0ce6888b..1789a95508 100644 --- a/packages/core/src/renderer/components/cluster/store.injectable.ts +++ b/packages/core/src/renderer/components/cluster/store.injectable.ts @@ -6,8 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import { ClusterStore } from "./store"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import clusterApiInjectable from "../../../common/k8s-api/endpoints/cluster.api.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; +import { clusterApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import assert from "assert"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; import { loggerInjectionToken } from "@k8slens/logger"; @@ -16,7 +15,7 @@ const clusterStoreInjectable = getInjectable({ id: "cluster-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "clusterStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "clusterStore is only available in certain environments"); const clusterApi = di.inject(clusterApiInjectable); return new ClusterStore({ diff --git a/packages/core/src/renderer/components/config-horizontal-pod-autoscalers/store.injectable.ts b/packages/core/src/renderer/components/config-horizontal-pod-autoscalers/store.injectable.ts index 5298ad27dd..c6a81f9b99 100644 --- a/packages/core/src/renderer/components/config-horizontal-pod-autoscalers/store.injectable.ts +++ b/packages/core/src/renderer/components/config-horizontal-pod-autoscalers/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import horizontalPodAutoscalerApiInjectable from "../../../common/k8s-api/endpoints/horizontal-pod-autoscaler.api.injectable"; +import { horizontalPodAutoscalerApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { HorizontalPodAutoscalerStore } from "./store"; const horizontalPodAutoscalerStoreInjectable = getInjectable({ id: "horizontal-pod-autoscaler-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "horizontalPodAutoscalerStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "horizontalPodAutoscalerStore is only available in certain environments"); const api = di.inject(horizontalPodAutoscalerApiInjectable); diff --git a/packages/core/src/renderer/components/config-leases/store.injectable.ts b/packages/core/src/renderer/components/config-leases/store.injectable.ts index 7d6fc96d4a..062f618466 100644 --- a/packages/core/src/renderer/components/config-leases/store.injectable.ts +++ b/packages/core/src/renderer/components/config-leases/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import leaseApiInjectable from "../../../common/k8s-api/endpoints/lease.api.injectable"; +import { leaseApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { LeaseStore } from "./store"; const leaseStoreInjectable = getInjectable({ id: "lease-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "leaseStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "leaseStore is only available in certain environments"); const api = di.inject(leaseApiInjectable); diff --git a/packages/core/src/renderer/components/config-limit-ranges/store.injectable.ts b/packages/core/src/renderer/components/config-limit-ranges/store.injectable.ts index ea7ec9ef4e..997f78268f 100644 --- a/packages/core/src/renderer/components/config-limit-ranges/store.injectable.ts +++ b/packages/core/src/renderer/components/config-limit-ranges/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import limitRangeApiInjectable from "../../../common/k8s-api/endpoints/limit-range.api.injectable"; +import { limitRangeApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { LimitRangeStore } from "./store"; const limitRangeStoreInjectable = getInjectable({ id: "limit-range-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "limitRangeStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "limitRangeStore is only available in certain environments"); const api = di.inject(limitRangeApiInjectable); diff --git a/packages/core/src/renderer/components/config-maps/store.injectable.ts b/packages/core/src/renderer/components/config-maps/store.injectable.ts index aae6da809d..f9a87115ce 100644 --- a/packages/core/src/renderer/components/config-maps/store.injectable.ts +++ b/packages/core/src/renderer/components/config-maps/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import configMapApiInjectable from "../../../common/k8s-api/endpoints/config-map.api.injectable"; +import { configMapApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { ConfigMapStore } from "./store"; const configMapStoreInjectable = getInjectable({ id: "config-map-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "configMapStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "configMapStore is only available in certain environments"); const api = di.inject(configMapApiInjectable); diff --git a/packages/core/src/renderer/components/config-mutating-webhook-configurations/mutating-webhook-configuration-store.injectable.ts b/packages/core/src/renderer/components/config-mutating-webhook-configurations/mutating-webhook-configuration-store.injectable.ts index 3767ec8b2f..14249948d2 100644 --- a/packages/core/src/renderer/components/config-mutating-webhook-configurations/mutating-webhook-configuration-store.injectable.ts +++ b/packages/core/src/renderer/components/config-mutating-webhook-configurations/mutating-webhook-configuration-store.injectable.ts @@ -7,12 +7,14 @@ import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manag import { MutatingWebhookConfigurationStore } from "./mutating-webhook-configuration-store"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; import { loggerInjectionToken } from "@k8slens/logger"; -import mutatingWebhookConfigurationApiInjectable - from "../../../common/k8s-api/endpoints/mutating-webhook-configuration-api.injectable"; +import { mutatingWebhookConfigurationApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; +import assert from "assert"; const mutatingWebhookConfigurationStoreInjectable = getInjectable({ id: "mutating-webhook-configuration-store", instantiate: (di) => { + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "mutatingWebhookConfigurationStore is only available in certain environments"); + const api = di.inject(mutatingWebhookConfigurationApiInjectable); return new MutatingWebhookConfigurationStore({ diff --git a/packages/core/src/renderer/components/config-pod-disruption-budgets/__tests__/pod-distruption-budgets.test.tsx b/packages/core/src/renderer/components/config-pod-disruption-budgets/__tests__/pod-distruption-budgets.test.tsx index c423962e68..cf527c9c08 100644 --- a/packages/core/src/renderer/components/config-pod-disruption-budgets/__tests__/pod-distruption-budgets.test.tsx +++ b/packages/core/src/renderer/components/config-pod-disruption-budgets/__tests__/pod-distruption-budgets.test.tsx @@ -11,13 +11,13 @@ import { PodDisruptionBudgets } from "../pod-disruption-budgets"; import storesAndApisCanBeCreatedInjectable from "../../../stores-apis-can-be-created.injectable"; import selectedNamespacesStorageInjectable from "../../../../features/namespace-filtering/renderer/storage.injectable"; import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../../../../common/k8s-api/maybe-kube-api.injectable"; import podDisruptionBudgetStoreInjectable from "../store.injectable"; import siblingTabsInjectable from "../../../routes/sibling-tabs.injectable"; import { Cluster } from "../../../../common/cluster/cluster"; import hostedClusterInjectable from "../../../cluster-frame-context/hosted-cluster.injectable"; import userPreferencesStateInjectable from "../../../../features/user-preferences/common/state.injectable"; import type { DiContainer } from "@ogre-tools/injectable"; +import { maybeKubeApiInjectable } from "@k8slens/kube-api-specifics"; describe("", () => { let di: DiContainer; @@ -60,7 +60,7 @@ describe("", () => { get: () => ({}), }) as any); di.override(loggerInjectionToken, () => null); - di.override(maybeKubeApiInjectable, () => (() => null) as any); + di.override(maybeKubeApiInjectable, () => null); di.override(siblingTabsInjectable, () => ({ get: () => [] } as any)); di.override(userPreferencesStateInjectable, () => ({ hiddenTableColumns: { diff --git a/packages/core/src/renderer/components/config-pod-disruption-budgets/store.injectable.ts b/packages/core/src/renderer/components/config-pod-disruption-budgets/store.injectable.ts index 860a44a9ba..ee9a4bbfb5 100644 --- a/packages/core/src/renderer/components/config-pod-disruption-budgets/store.injectable.ts +++ b/packages/core/src/renderer/components/config-pod-disruption-budgets/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import podDisruptionBudgetApiInjectable from "../../../common/k8s-api/endpoints/pod-disruption-budget.api.injectable"; +import { podDisruptionBudgetApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { PodDisruptionBudgetStore } from "./store"; const podDisruptionBudgetStoreInjectable = getInjectable({ id: "pod-disruption-budget-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "podDisruptionBudgetStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "podDisruptionBudgetStore is only available in certain environments"); const api = di.inject(podDisruptionBudgetApiInjectable); diff --git a/packages/core/src/renderer/components/config-priority-classes/store.injectable.ts b/packages/core/src/renderer/components/config-priority-classes/store.injectable.ts index c7f06f0d4f..050df29af3 100644 --- a/packages/core/src/renderer/components/config-priority-classes/store.injectable.ts +++ b/packages/core/src/renderer/components/config-priority-classes/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import priorityClassApiInjectable from "../../../common/k8s-api/endpoints/priority-class.api.injectable"; +import { priorityClassApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForClusterScopedResourcesInjectable from "../../cluster-frame-context/for-cluster-scoped-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { PriorityClassStore } from "./store"; const priorityClassStoreInjectable = getInjectable({ id: "priority-class-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "priorityClassStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "priorityClassStore is only available in certain environments"); const api = di.inject(priorityClassApiInjectable); diff --git a/packages/core/src/renderer/components/config-resource-quotas/add-dialog/view.tsx b/packages/core/src/renderer/components/config-resource-quotas/add-dialog/view.tsx index b656f70ed0..ee59ab1ab6 100644 --- a/packages/core/src/renderer/components/config-resource-quotas/add-dialog/view.tsx +++ b/packages/core/src/renderer/components/config-resource-quotas/add-dialog/view.tsx @@ -24,7 +24,7 @@ import { SubTitle } from "../../layout/sub-title"; import { withInjectables } from "@ogre-tools/injectable-react"; import closeAddQuotaDialogInjectable from "./close.injectable"; import isAddQuotaDialogOpenInjectable from "./is-open.injectable"; -import resourceQuotaApiInjectable from "../../../../common/k8s-api/endpoints/resource-quota.api.injectable"; +import { resourceQuotaApiInjectable } from "@k8slens/kube-api-specifics"; import type { ShowCheckedErrorNotification } from "../../notifications/show-checked-error.injectable"; import showCheckedErrorNotificationInjectable from "../../notifications/show-checked-error.injectable"; diff --git a/packages/core/src/renderer/components/config-resource-quotas/store.injectable.ts b/packages/core/src/renderer/components/config-resource-quotas/store.injectable.ts index 7cee0bf257..6b67f07cca 100644 --- a/packages/core/src/renderer/components/config-resource-quotas/store.injectable.ts +++ b/packages/core/src/renderer/components/config-resource-quotas/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import resourceQuotaApiInjectable from "../../../common/k8s-api/endpoints/resource-quota.api.injectable"; +import { resourceQuotaApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { ResourceQuotaStore } from "./store"; const resourceQuotaStoreInjectable = getInjectable({ id: "resource-quota-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "resourceQuotaStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "resourceQuotaStore is only available in certain environments"); const api = di.inject(resourceQuotaApiInjectable); diff --git a/packages/core/src/renderer/components/config-runtime-classes/store.injectable.ts b/packages/core/src/renderer/components/config-runtime-classes/store.injectable.ts index afe686eccb..e6786b1715 100644 --- a/packages/core/src/renderer/components/config-runtime-classes/store.injectable.ts +++ b/packages/core/src/renderer/components/config-runtime-classes/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import runtimeClassApiInjectable from "../../../common/k8s-api/endpoints/runtime-class.api.injectable"; +import { runtimeClassApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForClusterScopedResourcesInjectable from "../../cluster-frame-context/for-cluster-scoped-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { RuntimeClassStore } from "./store"; const runtimeClassStoreInjectable = getInjectable({ id: "runtime-class-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "runtimeClassStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "runtimeClassStore is only available in certain environments"); const api = di.inject(runtimeClassApiInjectable); diff --git a/packages/core/src/renderer/components/config-secrets/add-dialog/view.tsx b/packages/core/src/renderer/components/config-secrets/add-dialog/view.tsx index db46d2b597..5ccfcc0c9b 100644 --- a/packages/core/src/renderer/components/config-secrets/add-dialog/view.tsx +++ b/packages/core/src/renderer/components/config-secrets/add-dialog/view.tsx @@ -25,7 +25,7 @@ import upperFirst from "lodash/upperFirst"; import type { ShowDetails } from "../../kube-detail-params/show-details.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; import closeAddSecretDialogInjectable from "./close.injectable"; -import secretApiInjectable from "../../../../common/k8s-api/endpoints/secret.api.injectable"; +import { secretApiInjectable } from "@k8slens/kube-api-specifics"; import showDetailsInjectable from "../../kube-detail-params/show-details.injectable"; import isAddSecretDialogOpenInjectable from "./is-open.injectable"; import type { ShowCheckedErrorNotification } from "../../notifications/show-checked-error.injectable"; diff --git a/packages/core/src/renderer/components/config-secrets/store.injectable.ts b/packages/core/src/renderer/components/config-secrets/store.injectable.ts index 5fbbda1c95..b5ee8956c6 100644 --- a/packages/core/src/renderer/components/config-secrets/store.injectable.ts +++ b/packages/core/src/renderer/components/config-secrets/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import secretApiInjectable from "../../../common/k8s-api/endpoints/secret.api.injectable"; +import { secretApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { SecretStore } from "./store"; const secretStoreInjectable = getInjectable({ id: "secret-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "secretStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "secretStore is only available in certain environments"); const api = di.inject(secretApiInjectable); diff --git a/packages/core/src/renderer/components/config-validating-webhook-configurations/validating-webhook-configuration-store.injectable.ts b/packages/core/src/renderer/components/config-validating-webhook-configurations/validating-webhook-configuration-store.injectable.ts index bcb89907e6..dd3ccbd8bd 100644 --- a/packages/core/src/renderer/components/config-validating-webhook-configurations/validating-webhook-configuration-store.injectable.ts +++ b/packages/core/src/renderer/components/config-validating-webhook-configurations/validating-webhook-configuration-store.injectable.ts @@ -7,12 +7,14 @@ import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manag import { ValidatingWebhookConfigurationStore } from "./validating-webhook-configuration-store"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; import { loggerInjectionToken } from "@k8slens/logger"; -import validatingWebhookConfigurationApiInjectable - from "../../../common/k8s-api/endpoints/validating-webhook-configuration-api.injectable"; +import { storesAndApisCanBeCreatedInjectionToken, validatingWebhookConfigurationApiInjectable } from "@k8slens/kube-api-specifics"; +import assert from "assert"; const validatingWebhookConfigurationStoreInjectable = getInjectable({ id: "validating-webhook-configuration-store", instantiate: (di) => { + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "validatingWebhookConfigurationStore is only available in certain environments"); + const api = di.inject(validatingWebhookConfigurationApiInjectable); return new ValidatingWebhookConfigurationStore({ diff --git a/packages/core/src/renderer/components/config-vertical-pod-autoscalers/store.injectable.ts b/packages/core/src/renderer/components/config-vertical-pod-autoscalers/store.injectable.ts index 03962b9bc9..385e42fafa 100644 --- a/packages/core/src/renderer/components/config-vertical-pod-autoscalers/store.injectable.ts +++ b/packages/core/src/renderer/components/config-vertical-pod-autoscalers/store.injectable.ts @@ -6,15 +6,14 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { loggerInjectionToken } from "@k8slens/logger"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import verticalPodAutoscalerApiInjectable from "../../../common/k8s-api/endpoints/vertical-pod-autoscaler.api.injectable"; +import { storesAndApisCanBeCreatedInjectionToken, verticalPodAutoscalerApiInjectable } from "@k8slens/kube-api-specifics"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { VerticalPodAutoscalerStore } from "./store"; const verticalPodAutoscalerStoreInjectable = getInjectable({ id: "vertical-pod-autoscaler-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "verticalPodAutoscalerStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "verticalPodAutoscalerStore is only available in certain environments"); const api = di.inject(verticalPodAutoscalerApiInjectable); diff --git a/packages/core/src/renderer/components/custom-resource-definitions/definitions.injectable.ts b/packages/core/src/renderer/components/custom-resource-definitions/definitions.injectable.ts index 394f89384e..2b5f6835a6 100644 --- a/packages/core/src/renderer/components/custom-resource-definitions/definitions.injectable.ts +++ b/packages/core/src/renderer/components/custom-resource-definitions/definitions.injectable.ts @@ -5,15 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import subscribeStoresInjectable from "../../kube-watch-api/subscribe-stores.injectable"; import customResourceDefinitionStoreInjectable from "./store.injectable"; +import { storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; const customResourceDefinitionsInjectable = getInjectable({ id: "custom-resource-definitions", instantiate: (di) => { - const createStoresAndApis = di.inject(storesAndApisCanBeCreatedInjectable); + const createStoresAndApis = di.inject(storesAndApisCanBeCreatedInjectionToken); if (!createStoresAndApis) { return computed(() => []); diff --git a/packages/core/src/renderer/components/custom-resource-definitions/store.injectable.ts b/packages/core/src/renderer/components/custom-resource-definitions/store.injectable.ts index fe956beb9d..d80602460a 100644 --- a/packages/core/src/renderer/components/custom-resource-definitions/store.injectable.ts +++ b/packages/core/src/renderer/components/custom-resource-definitions/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import customResourceDefinitionApiInjectable from "../../../common/k8s-api/endpoints/custom-resource-definition.api.injectable"; +import { customResourceDefinitionApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForClusterScopedResourcesInjectable from "../../cluster-frame-context/for-cluster-scoped-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { CustomResourceDefinitionStore } from "./store"; const customResourceDefinitionStoreInjectable = getInjectable({ id: "custom-resource-definition-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "customResourceDefinitionStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "customResourceDefinitionStore is only available in certain environments"); const api = di.inject(customResourceDefinitionApiInjectable); diff --git a/packages/core/src/renderer/components/dock/logs/call-for-logs.injectable.ts b/packages/core/src/renderer/components/dock/logs/call-for-logs.injectable.ts index 7823c363b9..e7c5526604 100644 --- a/packages/core/src/renderer/components/dock/logs/call-for-logs.injectable.ts +++ b/packages/core/src/renderer/components/dock/logs/call-for-logs.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import type { PodLogsQuery } from "@k8slens/kube-object"; -import podApiInjectable from "../../../../common/k8s-api/endpoints/pod.api.injectable"; +import { podApiInjectable } from "@k8slens/kube-api-specifics"; import type { ResourceDescriptor } from "@k8slens/kube-api"; export type CallForLogs = (params: ResourceDescriptor, query?: PodLogsQuery) => Promise; diff --git a/packages/core/src/renderer/components/events/store.injectable.ts b/packages/core/src/renderer/components/events/store.injectable.ts index 2de168f1fb..e364697bc5 100644 --- a/packages/core/src/renderer/components/events/store.injectable.ts +++ b/packages/core/src/renderer/components/events/store.injectable.ts @@ -6,16 +6,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import getPodByIdInjectable from "../workloads-pods/get-pod-by-id.injectable"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import kubeEventApiInjectable from "../../../common/k8s-api/endpoints/events.api.injectable"; +import { kubeEventApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { EventStore } from "./store"; const eventStoreInjectable = getInjectable({ id: "event-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "eventStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "eventStore is only available in certain environments"); const api = di.inject(kubeEventApiInjectable); diff --git a/packages/core/src/renderer/components/kube-object-meta/kube-object-meta.tsx b/packages/core/src/renderer/components/kube-object-meta/kube-object-meta.tsx index 3fce56f936..7f4c851c20 100644 --- a/packages/core/src/renderer/components/kube-object-meta/kube-object-meta.tsx +++ b/packages/core/src/renderer/components/kube-object-meta/kube-object-meta.tsx @@ -20,7 +20,7 @@ import getDetailsUrlInjectable from "../kube-detail-params/get-details-url.injec import apiManagerInjectable from "../../../common/k8s-api/api-manager/manager.injectable"; import { loggerInjectionToken } from "@k8slens/logger"; import type { NamespaceApi } from "@k8slens/kube-api"; -import namespaceApiInjectable from "../../../common/k8s-api/endpoints/namespace.api.injectable"; +import { namespaceApiInjectable } from "@k8slens/kube-api-specifics"; export interface KubeObjectMetaProps { object: KubeObject; diff --git a/packages/core/src/renderer/components/namespaces/store.injectable.ts b/packages/core/src/renderer/components/namespaces/store.injectable.ts index c7db1da41b..4727486fd6 100644 --- a/packages/core/src/renderer/components/namespaces/store.injectable.ts +++ b/packages/core/src/renderer/components/namespaces/store.injectable.ts @@ -5,9 +5,8 @@ import { getInjectable } from "@ogre-tools/injectable"; import { NamespaceStore } from "./store"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import namespaceApiInjectable from "../../../common/k8s-api/endpoints/namespace.api.injectable"; +import { namespaceApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import assert from "assert"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import clusterFrameContextForClusterScopedResourcesInjectable from "../../cluster-frame-context/for-cluster-scoped-resources.injectable"; import clusterConfiguredAccessibleNamespacesInjectable from "../../cluster/accessible-namespaces.injectable"; import { loggerInjectionToken } from "@k8slens/logger"; @@ -17,7 +16,7 @@ const namespaceStoreInjectable = getInjectable({ id: "namespace-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "namespaceStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "namespaceStore is only available in certain environments"); const api = di.inject(namespaceApiInjectable); diff --git a/packages/core/src/renderer/components/network-endpoints/store.injectable.ts b/packages/core/src/renderer/components/network-endpoints/store.injectable.ts index f10d69a015..221877dda4 100644 --- a/packages/core/src/renderer/components/network-endpoints/store.injectable.ts +++ b/packages/core/src/renderer/components/network-endpoints/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import endpointsApiInjectable from "../../../common/k8s-api/endpoints/endpoint.api.injectable"; +import { endpointsApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { EndpointsStore } from "./store"; const endpointsStoreInjectable = getInjectable({ id: "endpoints-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "endpointsStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "endpointsStore is only available in certain environments"); const api = di.inject(endpointsApiInjectable); diff --git a/packages/core/src/renderer/components/network-ingresses/ingress-class-set-default.injectable.ts b/packages/core/src/renderer/components/network-ingresses/ingress-class-set-default.injectable.ts index db0dc0386d..fd9d648eaa 100644 --- a/packages/core/src/renderer/components/network-ingresses/ingress-class-set-default.injectable.ts +++ b/packages/core/src/renderer/components/network-ingresses/ingress-class-set-default.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; import type { IngressClass } from "@k8slens/kube-object"; -import ingressClassApiInjectable from "../../../common/k8s-api/endpoints/ingress-class.api.injectable"; +import { ingressClassApiInjectable } from "@k8slens/kube-api-specifics"; import ingressClassStoreInjectable from "./ingress-class-store.injectable"; export const ingressClassSetDefaultInjectable = getInjectable({ diff --git a/packages/core/src/renderer/components/network-ingresses/ingress-class-store.injectable.ts b/packages/core/src/renderer/components/network-ingresses/ingress-class-store.injectable.ts index e9098169cc..7bc41f7150 100644 --- a/packages/core/src/renderer/components/network-ingresses/ingress-class-store.injectable.ts +++ b/packages/core/src/renderer/components/network-ingresses/ingress-class-store.injectable.ts @@ -5,9 +5,8 @@ import assert from "assert"; import { getInjectable } from "@ogre-tools/injectable"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import ingressClassApiInjectable from "../../../common/k8s-api/endpoints/ingress-class.api.injectable"; +import { ingressClassApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { IngressClassStore } from "./ingress-class-store"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import clusterFrameContextForClusterScopedResourcesInjectable from "../../cluster-frame-context/for-cluster-scoped-resources.injectable"; import { loggerInjectionToken } from "@k8slens/logger"; @@ -15,7 +14,7 @@ const ingressClassStoreInjectable = getInjectable({ id: "ingress-class-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "ingressClassStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "ingressClassStore is only available in certain environments"); const api = di.inject(ingressClassApiInjectable); diff --git a/packages/core/src/renderer/components/network-ingresses/ingress-store.injectable.ts b/packages/core/src/renderer/components/network-ingresses/ingress-store.injectable.ts index 3e3090b16c..616616e62f 100644 --- a/packages/core/src/renderer/components/network-ingresses/ingress-store.injectable.ts +++ b/packages/core/src/renderer/components/network-ingresses/ingress-store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import ingressApiInjectable from "../../../common/k8s-api/endpoints/ingress.api.injectable"; +import { ingressApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { IngressStore } from "./ingress-store"; const ingressStoreInjectable = getInjectable({ id: "ingress-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "ingressStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "ingressStore is only available in certain environments"); const api = di.inject(ingressApiInjectable); diff --git a/packages/core/src/renderer/components/network-policies/store.injectable.ts b/packages/core/src/renderer/components/network-policies/store.injectable.ts index 3fcc6c639a..a77ede2f97 100644 --- a/packages/core/src/renderer/components/network-policies/store.injectable.ts +++ b/packages/core/src/renderer/components/network-policies/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import networkPolicyApiInjectable from "../../../common/k8s-api/endpoints/network-policy.api.injectable"; +import { networkPolicyApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { NetworkPolicyStore } from "./store"; const networkPolicyStoreInjectable = getInjectable({ id: "network-policy-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "networkPolicyStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "networkPolicyStore is only available in certain environments"); const api = di.inject(networkPolicyApiInjectable); diff --git a/packages/core/src/renderer/components/network-port-forwards/port-forward-details.tsx b/packages/core/src/renderer/components/network-port-forwards/port-forward-details.tsx index 923e2757f2..4b3b130664 100644 --- a/packages/core/src/renderer/components/network-port-forwards/port-forward-details.tsx +++ b/packages/core/src/renderer/components/network-port-forwards/port-forward-details.tsx @@ -14,10 +14,9 @@ import { cssNames } from "@k8slens/utilities"; import type { PodApi, ServiceApi } from "@k8slens/kube-api"; import { PortForwardMenu } from "./port-forward-menu"; import { withInjectables } from "@ogre-tools/injectable-react"; -import serviceApiInjectable from "../../../common/k8s-api/endpoints/service.api.injectable"; +import { serviceApiInjectable, podApiInjectable } from "@k8slens/kube-api-specifics"; import type { GetDetailsUrl } from "../kube-detail-params/get-details-url.injectable"; import getDetailsUrlInjectable from "../kube-detail-params/get-details-url.injectable"; -import podApiInjectable from "../../../common/k8s-api/endpoints/pod.api.injectable"; export interface PortForwardDetailsProps { portForward: PortForwardItem; diff --git a/packages/core/src/renderer/components/network-services/store.injectable.ts b/packages/core/src/renderer/components/network-services/store.injectable.ts index 7cc3c49ddc..f0cac1c7d0 100644 --- a/packages/core/src/renderer/components/network-services/store.injectable.ts +++ b/packages/core/src/renderer/components/network-services/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import serviceApiInjectable from "../../../common/k8s-api/endpoints/service.api.injectable"; +import { serviceApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { ServiceStore } from "./store"; const serviceStoreInjectable = getInjectable({ id: "service-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "serviceStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "serviceStore is only available in certain environments"); const api = di.inject(serviceApiInjectable); diff --git a/packages/core/src/renderer/components/nodes/store.injectable.ts b/packages/core/src/renderer/components/nodes/store.injectable.ts index ec925922c3..636fb6d4f7 100644 --- a/packages/core/src/renderer/components/nodes/store.injectable.ts +++ b/packages/core/src/renderer/components/nodes/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import nodeApiInjectable from "../../../common/k8s-api/endpoints/node.api.injectable"; +import { nodeApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForClusterScopedResourcesInjectable from "../../cluster-frame-context/for-cluster-scoped-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { NodeStore } from "./store"; const nodeStoreInjectable = getInjectable({ id: "node-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "nodeStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "nodeStore is only available in certain environments"); const api = di.inject(nodeApiInjectable); diff --git a/packages/core/src/renderer/components/pod-security-policies/store.injectable.ts b/packages/core/src/renderer/components/pod-security-policies/store.injectable.ts index 2afac2f0fc..15420b0313 100644 --- a/packages/core/src/renderer/components/pod-security-policies/store.injectable.ts +++ b/packages/core/src/renderer/components/pod-security-policies/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import podSecurityPolicyApiInjectable from "../../../common/k8s-api/endpoints/pod-security-policy.api.injectable"; +import { podSecurityPolicyApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForClusterScopedResourcesInjectable from "../../cluster-frame-context/for-cluster-scoped-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { PodSecurityPolicyStore } from "./store"; const podSecurityPolicyStoreInjectable = getInjectable({ id: "pod-security-policy-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "podSecurityPolicyStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "podSecurityPolicyStore is only available in certain environments"); const api = di.inject(podSecurityPolicyApiInjectable); diff --git a/packages/core/src/renderer/components/storage-classes/store.injectable.ts b/packages/core/src/renderer/components/storage-classes/store.injectable.ts index f772f6b124..b00edddbcd 100644 --- a/packages/core/src/renderer/components/storage-classes/store.injectable.ts +++ b/packages/core/src/renderer/components/storage-classes/store.injectable.ts @@ -6,16 +6,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import getPersistentVolumesByStorageClassInjectable from "../storage-volumes/get-persistent-volumes-by-storage-class.injectable"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import storageClassApiInjectable from "../../../common/k8s-api/endpoints/storage-class.api.injectable"; +import { storageClassApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForClusterScopedResourcesInjectable from "../../cluster-frame-context/for-cluster-scoped-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { StorageClassStore } from "./store"; const storageClassStoreInjectable = getInjectable({ id: "storage-class-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "storageClassStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "storageClassStore is only available in certain environments"); const api = di.inject(storageClassApiInjectable); diff --git a/packages/core/src/renderer/components/storage-volume-claims/store.injectable.ts b/packages/core/src/renderer/components/storage-volume-claims/store.injectable.ts index cc5b41fd67..dcf0abe213 100644 --- a/packages/core/src/renderer/components/storage-volume-claims/store.injectable.ts +++ b/packages/core/src/renderer/components/storage-volume-claims/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import persistentVolumeClaimApiInjectable from "../../../common/k8s-api/endpoints/persistent-volume-claim.api.injectable"; +import { persistentVolumeClaimApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { PersistentVolumeClaimStore } from "./store"; const persistentVolumeClaimStoreInjectable = getInjectable({ id: "persistent-volume-claim-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "persistentVolumeClaimStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "persistentVolumeClaimStore is only available in certain environments"); const api = di.inject(persistentVolumeClaimApiInjectable); diff --git a/packages/core/src/renderer/components/storage-volume-claims/volume-claim-details.tsx b/packages/core/src/renderer/components/storage-volume-claims/volume-claim-details.tsx index f59beef672..e70b82933d 100644 --- a/packages/core/src/renderer/components/storage-volume-claims/volume-claim-details.tsx +++ b/packages/core/src/renderer/components/storage-volume-claims/volume-claim-details.tsx @@ -20,7 +20,7 @@ import type { PodStore } from "../workloads-pods/store"; import getDetailsUrlInjectable from "../kube-detail-params/get-details-url.injectable"; import podStoreInjectable from "../workloads-pods/store.injectable"; import { stopPropagation } from "@k8slens/utilities"; -import storageClassApiInjectable from "../../../common/k8s-api/endpoints/storage-class.api.injectable"; +import { storageClassApiInjectable } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; export interface PersistentVolumeClaimDetailsProps extends KubeObjectDetailsProps { diff --git a/packages/core/src/renderer/components/storage-volume-claims/volume-claims.tsx b/packages/core/src/renderer/components/storage-volume-claims/volume-claims.tsx index 1ba6f68f5a..3b80bfd57f 100644 --- a/packages/core/src/renderer/components/storage-volume-claims/volume-claims.tsx +++ b/packages/core/src/renderer/components/storage-volume-claims/volume-claims.tsx @@ -21,7 +21,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import getDetailsUrlInjectable from "../kube-detail-params/get-details-url.injectable"; import persistentVolumeClaimStoreInjectable from "./store.injectable"; import podStoreInjectable from "../workloads-pods/store.injectable"; -import storageClassApiInjectable from "../../../common/k8s-api/endpoints/storage-class.api.injectable"; +import { storageClassApiInjectable } from "@k8slens/kube-api-specifics"; import { NamespaceSelectBadge } from "../namespaces/namespace-select-badge"; enum columnId { diff --git a/packages/core/src/renderer/components/storage-volumes/store.injectable.ts b/packages/core/src/renderer/components/storage-volumes/store.injectable.ts index ef10d8fac5..11f8c73d6a 100644 --- a/packages/core/src/renderer/components/storage-volumes/store.injectable.ts +++ b/packages/core/src/renderer/components/storage-volumes/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import persistentVolumeApiInjectable from "../../../common/k8s-api/endpoints/persistent-volume.api.injectable"; +import { persistentVolumeApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForClusterScopedResourcesInjectable from "../../cluster-frame-context/for-cluster-scoped-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { PersistentVolumeStore } from "./store"; const persistentVolumeStoreInjectable = getInjectable({ id: "persistent-volume-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "persistentVolumeStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "persistentVolumeStore is only available in certain environments"); const api = di.inject(persistentVolumeApiInjectable); diff --git a/packages/core/src/renderer/components/storage-volumes/volume-details.tsx b/packages/core/src/renderer/components/storage-volumes/volume-details.tsx index e22385d4e8..c31331ebd3 100644 --- a/packages/core/src/renderer/components/storage-volumes/volume-details.tsx +++ b/packages/core/src/renderer/components/storage-volumes/volume-details.tsx @@ -20,8 +20,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import { loggerInjectionToken } from "@k8slens/logger"; import type { GetDetailsUrl } from "../kube-detail-params/get-details-url.injectable"; import getDetailsUrlInjectable from "../kube-detail-params/get-details-url.injectable"; -import persistentVolumeClaimApiInjectable from "../../../common/k8s-api/endpoints/persistent-volume-claim.api.injectable"; -import storageClassApiInjectable from "../../../common/k8s-api/endpoints/storage-class.api.injectable"; +import { persistentVolumeClaimApiInjectable, storageClassApiInjectable } from "@k8slens/kube-api-specifics"; export interface PersistentVolumeDetailsProps extends KubeObjectDetailsProps { } diff --git a/packages/core/src/renderer/components/storage-volumes/volumes.tsx b/packages/core/src/renderer/components/storage-volumes/volumes.tsx index 5f51224884..4dcae3dea7 100644 --- a/packages/core/src/renderer/components/storage-volumes/volumes.tsx +++ b/packages/core/src/renderer/components/storage-volumes/volumes.tsx @@ -18,9 +18,8 @@ import type { PersistentVolumeStore } from "./store"; import type { GetDetailsUrl } from "../kube-detail-params/get-details-url.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; import getDetailsUrlInjectable from "../kube-detail-params/get-details-url.injectable"; -import persistentVolumeClaimApiInjectable from "../../../common/k8s-api/endpoints/persistent-volume-claim.api.injectable"; +import { persistentVolumeClaimApiInjectable, storageClassApiInjectable } from "@k8slens/kube-api-specifics"; import persistentVolumeStoreInjectable from "./store.injectable"; -import storageClassApiInjectable from "../../../common/k8s-api/endpoints/storage-class.api.injectable"; enum columnId { name = "name", diff --git a/packages/core/src/renderer/components/test-utils/get-application-builder.tsx b/packages/core/src/renderer/components/test-utils/get-application-builder.tsx index c2822c4fb5..93304ce484 100644 --- a/packages/core/src/renderer/components/test-utils/get-application-builder.tsx +++ b/packages/core/src/renderer/components/test-utils/get-application-builder.tsx @@ -52,7 +52,7 @@ import { applicationWindowInjectionToken } from "../../../main/start-main-applic import type { LensWindow } from "../../../main/start-main-application/lens-window/application-window/create-lens-window.injectable"; import type { FakeExtensionOptions } from "./get-extension-fake"; import { getExtensionFakeForMain, getExtensionFakeForRenderer } from "./get-extension-fake"; -import namespaceApiInjectable from "../../../common/k8s-api/endpoints/namespace.api.injectable"; +import { namespaceApiInjectable } from "@k8slens/kube-api-specifics"; import { Namespace } from "@k8slens/kube-object"; import { getOverrideFsWithFakes } from "../../../test-utils/override-fs-with-fakes"; import applicationMenuItemCompositeInjectable from "../../../features/application-menu/main/application-menu-item-composite.injectable"; diff --git a/packages/core/src/renderer/components/user-management/cluster-role-bindings/store.injectable.ts b/packages/core/src/renderer/components/user-management/cluster-role-bindings/store.injectable.ts index dc6cc18ba9..435d0648cc 100644 --- a/packages/core/src/renderer/components/user-management/cluster-role-bindings/store.injectable.ts +++ b/packages/core/src/renderer/components/user-management/cluster-role-bindings/store.injectable.ts @@ -4,8 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../../../../common/k8s-api/stores-apis-can-be-created.token"; -import clusterRoleBindingApiInjectable from "../../../../common/k8s-api/endpoints/cluster-role-binding.api.injectable"; +import { storesAndApisCanBeCreatedInjectionToken, clusterRoleBindingApiInjectable } from "@k8slens/kube-api-specifics"; import { kubeObjectStoreInjectionToken } from "../../../../common/k8s-api/api-manager/kube-object-store-token"; import { ClusterRoleBindingStore } from "./store"; import clusterFrameContextForClusterScopedResourcesInjectable from "../../../cluster-frame-context/for-cluster-scoped-resources.injectable"; diff --git a/packages/core/src/renderer/components/user-management/cluster-roles/store.injectable.ts b/packages/core/src/renderer/components/user-management/cluster-roles/store.injectable.ts index 4426bb4246..1401e86661 100644 --- a/packages/core/src/renderer/components/user-management/cluster-roles/store.injectable.ts +++ b/packages/core/src/renderer/components/user-management/cluster-roles/store.injectable.ts @@ -4,8 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../../../../common/k8s-api/stores-apis-can-be-created.token"; -import clusterRoleApiInjectable from "../../../../common/k8s-api/endpoints/cluster-role.api.injectable"; +import { storesAndApisCanBeCreatedInjectionToken, clusterRoleApiInjectable } from "@k8slens/kube-api-specifics"; import { kubeObjectStoreInjectionToken } from "../../../../common/k8s-api/api-manager/kube-object-store-token"; import { ClusterRoleStore } from "./store"; import clusterFrameContextForClusterScopedResourcesInjectable from "../../../cluster-frame-context/for-cluster-scoped-resources.injectable"; diff --git a/packages/core/src/renderer/components/user-management/role-bindings/dialog/view.tsx b/packages/core/src/renderer/components/user-management/role-bindings/dialog/view.tsx index 1a52e48f51..8a8ca2597e 100644 --- a/packages/core/src/renderer/components/user-management/role-bindings/dialog/view.tsx +++ b/packages/core/src/renderer/components/user-management/role-bindings/dialog/view.tsx @@ -35,7 +35,7 @@ import showDetailsInjectable from "../../../kube-detail-params/show-details.inje import clusterRoleStoreInjectable from "../../cluster-roles/store.injectable"; import roleStoreInjectable from "../../roles/store.injectable"; import serviceAccountStoreInjectable from "../../service-accounts/store.injectable"; -import roleApiInjectable from "../../../../../common/k8s-api/endpoints/role.api.injectable"; +import { roleApiInjectable } from "@k8slens/kube-api-specifics"; import type { ShowCheckedErrorNotification } from "../../../notifications/show-checked-error.injectable"; import showCheckedErrorNotificationInjectable from "../../../notifications/show-checked-error.injectable"; import type { RoleApi } from "@k8slens/kube-api"; diff --git a/packages/core/src/renderer/components/user-management/role-bindings/store.injectable.ts b/packages/core/src/renderer/components/user-management/role-bindings/store.injectable.ts index a334e47af1..6e6d040f0a 100644 --- a/packages/core/src/renderer/components/user-management/role-bindings/store.injectable.ts +++ b/packages/core/src/renderer/components/user-management/role-bindings/store.injectable.ts @@ -5,16 +5,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { kubeObjectStoreInjectionToken } from "../../../../common/k8s-api/api-manager/kube-object-store-token"; -import roleBindingApiInjectable from "../../../../common/k8s-api/endpoints/role-binding.api.injectable"; +import { roleBindingApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../../stores-apis-can-be-created.injectable"; import { RoleBindingStore } from "./store"; const roleBindingStoreInjectable = getInjectable({ id: "role-binding-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "roleBindingStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "roleBindingStore is only available in certain environments"); const api = di.inject(roleBindingApiInjectable); diff --git a/packages/core/src/renderer/components/user-management/roles/store.injectable.ts b/packages/core/src/renderer/components/user-management/roles/store.injectable.ts index 12dcf2f0d1..3b66fec7b9 100644 --- a/packages/core/src/renderer/components/user-management/roles/store.injectable.ts +++ b/packages/core/src/renderer/components/user-management/roles/store.injectable.ts @@ -4,8 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; -import roleApiInjectable from "../../../../common/k8s-api/endpoints/role.api.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../../stores-apis-can-be-created.injectable"; +import { roleApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { kubeObjectStoreInjectionToken } from "../../../../common/k8s-api/api-manager/kube-object-store-token"; import { RoleStore } from "./store"; import clusterFrameContextForNamespacedResourcesInjectable from "../../../cluster-frame-context/for-namespaced-resources.injectable"; @@ -14,7 +13,7 @@ import { loggerInjectionToken } from "@k8slens/logger"; const roleStoreInjectable = getInjectable({ id: "role-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "roleStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "roleStore is only available in certain environments"); const api = di.inject(roleApiInjectable); diff --git a/packages/core/src/renderer/components/user-management/service-accounts/store.injectable.ts b/packages/core/src/renderer/components/user-management/service-accounts/store.injectable.ts index 45fb55025f..86c19a0532 100644 --- a/packages/core/src/renderer/components/user-management/service-accounts/store.injectable.ts +++ b/packages/core/src/renderer/components/user-management/service-accounts/store.injectable.ts @@ -4,8 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; -import serviceAccountApiInjectable from "../../../../common/k8s-api/endpoints/service-account.api.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../../stores-apis-can-be-created.injectable"; +import { serviceAccountApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { kubeObjectStoreInjectionToken } from "../../../../common/k8s-api/api-manager/kube-object-store-token"; import { ServiceAccountStore } from "./store"; import clusterFrameContextForNamespacedResourcesInjectable from "../../../cluster-frame-context/for-namespaced-resources.injectable"; @@ -14,7 +13,7 @@ import { loggerInjectionToken } from "@k8slens/logger"; const serviceAccountStoreInjectable = getInjectable({ id: "service-account-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "serviceAccountStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "serviceAccountStore is only available in certain environments"); const api = di.inject(serviceAccountApiInjectable); diff --git a/packages/core/src/renderer/components/workloads-cronjobs/cron-job-menu.tsx b/packages/core/src/renderer/components/workloads-cronjobs/cron-job-menu.tsx index e03123e0a3..dc17e2976c 100644 --- a/packages/core/src/renderer/components/workloads-cronjobs/cron-job-menu.tsx +++ b/packages/core/src/renderer/components/workloads-cronjobs/cron-job-menu.tsx @@ -12,7 +12,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import openConfirmDialogInjectable from "../confirm-dialog/open.injectable"; import type { OpenCronJobTriggerDialog } from "./trigger-dialog/open.injectable"; import openCronJobTriggerDialogInjectable from "./trigger-dialog/open.injectable"; -import cronJobApiInjectable from "../../../common/k8s-api/endpoints/cron-job.api.injectable"; +import { cronJobApiInjectable } from "@k8slens/kube-api-specifics"; import type { ShowCheckedErrorNotification } from "../notifications/show-checked-error.injectable"; import showCheckedErrorNotificationInjectable from "../notifications/show-checked-error.injectable"; import type { CronJobApi } from "@k8slens/kube-api"; diff --git a/packages/core/src/renderer/components/workloads-cronjobs/store.injectable.ts b/packages/core/src/renderer/components/workloads-cronjobs/store.injectable.ts index 94f6ace99d..97bc9eff67 100644 --- a/packages/core/src/renderer/components/workloads-cronjobs/store.injectable.ts +++ b/packages/core/src/renderer/components/workloads-cronjobs/store.injectable.ts @@ -6,16 +6,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import getJobsByOwnerInjectable from "../workloads-jobs/get-jobs-by-owner.injectable"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import cronJobApiInjectable from "../../../common/k8s-api/endpoints/cron-job.api.injectable"; +import { cronJobApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { CronJobStore } from "./store"; const cronJobStoreInjectable = getInjectable({ id: "cron-job-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "cronJobStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "cronJobStore is only available in certain environments"); const api = di.inject(cronJobApiInjectable); diff --git a/packages/core/src/renderer/components/workloads-cronjobs/trigger-dialog/view.tsx b/packages/core/src/renderer/components/workloads-cronjobs/trigger-dialog/view.tsx index 798ef7e5c1..0f3ad0cf9d 100644 --- a/packages/core/src/renderer/components/workloads-cronjobs/trigger-dialog/view.tsx +++ b/packages/core/src/renderer/components/workloads-cronjobs/trigger-dialog/view.tsx @@ -19,7 +19,7 @@ import { Input } from "../../input"; import { systemName, maxLength } from "../../input/input_validators"; import { withInjectables } from "@ogre-tools/injectable-react"; import closeCronJobTriggerDialogInjectable from "./close.injectable"; -import jobApiInjectable from "../../../../common/k8s-api/endpoints/job.api.injectable"; +import { jobApiInjectable } from "@k8slens/kube-api-specifics"; import cronJobTriggerDialogStateInjectable from "./state.injectable"; import type { ShowCheckedErrorNotification } from "../../notifications/show-checked-error.injectable"; import showCheckedErrorNotificationInjectable from "../../notifications/show-checked-error.injectable"; diff --git a/packages/core/src/renderer/components/workloads-daemonsets/daemonset-menu.tsx b/packages/core/src/renderer/components/workloads-daemonsets/daemonset-menu.tsx index c2f4b77b6b..e2fb983589 100644 --- a/packages/core/src/renderer/components/workloads-daemonsets/daemonset-menu.tsx +++ b/packages/core/src/renderer/components/workloads-daemonsets/daemonset-menu.tsx @@ -8,7 +8,7 @@ import type { DaemonSet } from "@k8slens/kube-object"; import { MenuItem } from "../menu"; import { Icon } from "@k8slens/icon"; import { withInjectables } from "@ogre-tools/injectable-react"; -import daemonSetApiInjectable from "../../../common/k8s-api/endpoints/daemon-set.api.injectable"; +import { daemonSetApiInjectable } from "@k8slens/kube-api-specifics"; import type { OpenConfirmDialog } from "../confirm-dialog/open.injectable"; import openConfirmDialogInjectable from "../confirm-dialog/open.injectable"; import type { ShowCheckedErrorNotification } from "../notifications/show-checked-error.injectable"; diff --git a/packages/core/src/renderer/components/workloads-daemonsets/store.injectable.ts b/packages/core/src/renderer/components/workloads-daemonsets/store.injectable.ts index be5d69fe32..bc447b0b85 100644 --- a/packages/core/src/renderer/components/workloads-daemonsets/store.injectable.ts +++ b/packages/core/src/renderer/components/workloads-daemonsets/store.injectable.ts @@ -5,8 +5,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import getPodsByOwnerIdInjectable from "../workloads-pods/get-pods-by-owner-id.injectable"; -import daemonSetApiInjectable from "../../../common/k8s-api/endpoints/daemon-set.api.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; +import { daemonSetApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; import { DaemonSetStore } from "./store"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; @@ -15,7 +14,7 @@ import { loggerInjectionToken } from "@k8slens/logger"; const daemonSetStoreInjectable = getInjectable({ id: "daemon-set-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "daemonSetStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "daemonSetStore is only available in certain environments"); const api = di.inject(daemonSetApiInjectable); diff --git a/packages/core/src/renderer/components/workloads-deployments/deployment-menu.tsx b/packages/core/src/renderer/components/workloads-deployments/deployment-menu.tsx index b8af261972..fe0a5450f5 100644 --- a/packages/core/src/renderer/components/workloads-deployments/deployment-menu.tsx +++ b/packages/core/src/renderer/components/workloads-deployments/deployment-menu.tsx @@ -9,7 +9,7 @@ import { MenuItem } from "../menu"; import { Icon } from "@k8slens/icon"; import type { OpenDeploymentScaleDialog } from "./scale/open.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; -import deploymentApiInjectable from "../../../common/k8s-api/endpoints/deployment.api.injectable"; +import { deploymentApiInjectable } from "@k8slens/kube-api-specifics"; import openDeploymentScaleDialogInjectable from "./scale/open.injectable"; import type { OpenConfirmDialog } from "../confirm-dialog/open.injectable"; import openConfirmDialogInjectable from "../confirm-dialog/open.injectable"; diff --git a/packages/core/src/renderer/components/workloads-deployments/scale/dialog.test.tsx b/packages/core/src/renderer/components/workloads-deployments/scale/dialog.test.tsx index de2c128835..76026532b2 100644 --- a/packages/core/src/renderer/components/workloads-deployments/scale/dialog.test.tsx +++ b/packages/core/src/renderer/components/workloads-deployments/scale/dialog.test.tsx @@ -9,7 +9,7 @@ import { DeploymentScaleDialog } from "./dialog"; import type { DeploymentApi } from "@k8slens/kube-api"; import { Deployment } from "@k8slens/kube-object"; import { getDiForUnitTesting } from "../../../getDiForUnitTesting"; -import deploymentApiInjectable from "../../../../common/k8s-api/endpoints/deployment.api.injectable"; +import { deploymentApiInjectable } from "@k8slens/kube-api-specifics"; import type { OpenDeploymentScaleDialog } from "./open.injectable"; import openDeploymentScaleDialogInjectable from "./open.injectable"; import storesAndApisCanBeCreatedInjectable from "../../../stores-apis-can-be-created.injectable"; diff --git a/packages/core/src/renderer/components/workloads-deployments/scale/dialog.tsx b/packages/core/src/renderer/components/workloads-deployments/scale/dialog.tsx index 51485e92f5..7f2f71245b 100644 --- a/packages/core/src/renderer/components/workloads-deployments/scale/dialog.tsx +++ b/packages/core/src/renderer/components/workloads-deployments/scale/dialog.tsx @@ -17,7 +17,7 @@ import { Icon } from "@k8slens/icon"; import { Slider } from "../../slider"; import { cssNames } from "@k8slens/utilities"; import { withInjectables } from "@ogre-tools/injectable-react"; -import deploymentApiInjectable from "../../../../common/k8s-api/endpoints/deployment.api.injectable"; +import { deploymentApiInjectable } from "@k8slens/kube-api-specifics"; import deploymentScaleDialogStateInjectable from "./dialog-state.injectable"; import type { ShowCheckedErrorNotification } from "../../notifications/show-checked-error.injectable"; import showCheckedErrorNotificationInjectable from "../../notifications/show-checked-error.injectable"; diff --git a/packages/core/src/renderer/components/workloads-deployments/store.injectable.ts b/packages/core/src/renderer/components/workloads-deployments/store.injectable.ts index c10c2faee1..dc9a02eaee 100644 --- a/packages/core/src/renderer/components/workloads-deployments/store.injectable.ts +++ b/packages/core/src/renderer/components/workloads-deployments/store.injectable.ts @@ -6,8 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import podStoreInjectable from "../workloads-pods/store.injectable"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import { storesAndApisCanBeCreatedInjectionToken } from "../../../common/k8s-api/stores-apis-can-be-created.token"; -import deploymentApiInjectable from "../../../common/k8s-api/endpoints/deployment.api.injectable"; +import { storesAndApisCanBeCreatedInjectionToken, deploymentApiInjectable } from "@k8slens/kube-api-specifics"; import { DeploymentStore } from "./store"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; import { loggerInjectionToken } from "@k8slens/logger"; diff --git a/packages/core/src/renderer/components/workloads-jobs/store.injectable.ts b/packages/core/src/renderer/components/workloads-jobs/store.injectable.ts index 7338e577c0..abeb360373 100644 --- a/packages/core/src/renderer/components/workloads-jobs/store.injectable.ts +++ b/packages/core/src/renderer/components/workloads-jobs/store.injectable.ts @@ -6,16 +6,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import getPodsByOwnerIdInjectable from "../workloads-pods/get-pods-by-owner-id.injectable"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import jobApiInjectable from "../../../common/k8s-api/endpoints/job.api.injectable"; +import { jobApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { JobStore } from "./store"; const jobStoreInjectable = getInjectable({ id: "job-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "jobStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "jobStore is only available in certain environments"); const api = di.inject(jobApiInjectable); diff --git a/packages/core/src/renderer/components/workloads-pods/columns/pods-node-column.injectable.tsx b/packages/core/src/renderer/components/workloads-pods/columns/pods-node-column.injectable.tsx index 6a18559f76..07b87480eb 100644 --- a/packages/core/src/renderer/components/workloads-pods/columns/pods-node-column.injectable.tsx +++ b/packages/core/src/renderer/components/workloads-pods/columns/pods-node-column.injectable.tsx @@ -5,7 +5,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import React from "react"; import { Link } from "react-router-dom"; -import nodeApiInjectable from "../../../../common/k8s-api/endpoints/node.api.injectable"; +import { nodeApiInjectable } from "@k8slens/kube-api-specifics"; import { Badge } from "../../badge"; import getDetailsUrlInjectable from "../../kube-detail-params/get-details-url.injectable"; import { stopPropagation } from "@k8slens/utilities"; diff --git a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/ceph-fs.tsx b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/ceph-fs.tsx index 466be4a49b..01ab85f844 100644 --- a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/ceph-fs.tsx +++ b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/ceph-fs.tsx @@ -6,7 +6,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import React from "react"; import type { SecretApi } from "@k8slens/kube-api"; -import secretApiInjectable from "../../../../../../common/k8s-api/endpoints/secret.api.injectable"; +import { secretApiInjectable } from "@k8slens/kube-api-specifics"; import { DrawerItem } from "../../../../drawer"; import type { PodVolumeVariantSpecificProps } from "../variant-helpers"; import { LocalRef } from "../variant-helpers"; diff --git a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/config-map.tsx b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/config-map.tsx index d2c9321728..a2bbeb7b84 100644 --- a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/config-map.tsx +++ b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/config-map.tsx @@ -6,7 +6,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import React from "react"; import type { ConfigMapApi } from "@k8slens/kube-api"; -import configMapApiInjectable from "../../../../../../common/k8s-api/endpoints/config-map.api.injectable"; +import { configMapApiInjectable } from "@k8slens/kube-api-specifics"; import type { PodVolumeVariantSpecificProps } from "../variant-helpers"; import { LocalRef } from "../variant-helpers"; diff --git a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/container-storage-interface.tsx b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/container-storage-interface.tsx index 2c3f2b4bfb..40e0784f6f 100644 --- a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/container-storage-interface.tsx +++ b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/container-storage-interface.tsx @@ -6,7 +6,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import React from "react"; import type { SecretApi } from "@k8slens/kube-api"; -import secretApiInjectable from "../../../../../../common/k8s-api/endpoints/secret.api.injectable"; +import { secretApiInjectable } from "@k8slens/kube-api-specifics"; import { DrawerItem } from "../../../../drawer"; import type { PodVolumeVariantSpecificProps } from "../variant-helpers"; import { LocalRef } from "../variant-helpers"; diff --git a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/flex-volume.tsx b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/flex-volume.tsx index 33e2ffaee4..fc4ea72b10 100644 --- a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/flex-volume.tsx +++ b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/flex-volume.tsx @@ -6,7 +6,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import React from "react"; import type { SecretApi } from "@k8slens/kube-api"; -import secretApiInjectable from "../../../../../../common/k8s-api/endpoints/secret.api.injectable"; +import { secretApiInjectable } from "@k8slens/kube-api-specifics"; import { DrawerItem } from "../../../../drawer"; import type { PodVolumeVariantSpecificProps } from "../variant-helpers"; import { LocalRef } from "../variant-helpers"; diff --git a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/persistent-volume-claim.tsx b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/persistent-volume-claim.tsx index 3892e57ed9..efc14307f3 100644 --- a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/persistent-volume-claim.tsx +++ b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/persistent-volume-claim.tsx @@ -6,7 +6,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import React from "react"; import type { PersistentVolumeClaimApi } from "@k8slens/kube-api"; -import persistentVolumeClaimApiInjectable from "../../../../../../common/k8s-api/endpoints/persistent-volume-claim.api.injectable"; +import { persistentVolumeClaimApiInjectable } from "@k8slens/kube-api-specifics"; import type { PodVolumeVariantSpecificProps } from "../variant-helpers"; import { LocalRef } from "../variant-helpers"; diff --git a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/rados-block-device.tsx b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/rados-block-device.tsx index 19fb06e090..f951844b38 100644 --- a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/rados-block-device.tsx +++ b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/rados-block-device.tsx @@ -6,7 +6,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import React from "react"; import type { SecretApi } from "@k8slens/kube-api"; -import secretApiInjectable from "../../../../../../common/k8s-api/endpoints/secret.api.injectable"; +import { secretApiInjectable } from "@k8slens/kube-api-specifics"; import { DrawerItem } from "../../../../drawer"; import type { PodVolumeVariantSpecificProps } from "../variant-helpers"; import { LocalRef } from "../variant-helpers"; diff --git a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/scale-io.tsx b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/scale-io.tsx index 8668f3b895..d33fbe4175 100644 --- a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/scale-io.tsx +++ b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/scale-io.tsx @@ -6,7 +6,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import React from "react"; import type { SecretApi } from "@k8slens/kube-api"; -import secretApiInjectable from "../../../../../../common/k8s-api/endpoints/secret.api.injectable"; +import { secretApiInjectable } from "@k8slens/kube-api-specifics"; import { DrawerItem } from "../../../../drawer"; import type { PodVolumeVariantSpecificProps } from "../variant-helpers"; import { LocalRef } from "../variant-helpers"; diff --git a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/secret.tsx b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/secret.tsx index 24150e04be..2b488b8286 100644 --- a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/secret.tsx +++ b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/secret.tsx @@ -6,7 +6,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import React from "react"; import type { SecretApi } from "@k8slens/kube-api"; -import secretApiInjectable from "../../../../../../common/k8s-api/endpoints/secret.api.injectable"; +import { secretApiInjectable } from "@k8slens/kube-api-specifics"; import { DrawerItem } from "../../../../drawer"; import type { PodVolumeVariantSpecificProps } from "../variant-helpers"; import { LocalRef } from "../variant-helpers"; diff --git a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/storage-os.tsx b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/storage-os.tsx index bdf009db25..9f99bddcdf 100644 --- a/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/storage-os.tsx +++ b/packages/core/src/renderer/components/workloads-pods/details/volumes/variants/storage-os.tsx @@ -6,7 +6,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import React from "react"; import type { SecretApi } from "@k8slens/kube-api"; -import secretApiInjectable from "../../../../../../common/k8s-api/endpoints/secret.api.injectable"; +import { secretApiInjectable } from "@k8slens/kube-api-specifics"; import { DrawerItem } from "../../../../drawer"; import type { PodVolumeVariantSpecificProps } from "../variant-helpers"; import { LocalRef } from "../variant-helpers"; diff --git a/packages/core/src/renderer/components/workloads-pods/pod-details-secrets.tsx b/packages/core/src/renderer/components/workloads-pods/pod-details-secrets.tsx index a266b77e00..6ece4a0dc5 100644 --- a/packages/core/src/renderer/components/workloads-pods/pod-details-secrets.tsx +++ b/packages/core/src/renderer/components/workloads-pods/pod-details-secrets.tsx @@ -11,7 +11,7 @@ import { reaction } from "mobx"; import { observer } from "mobx-react"; import type { Pod, Secret } from "@k8slens/kube-object"; import { withInjectables } from "@ogre-tools/injectable-react"; -import secretApiInjectable from "../../../common/k8s-api/endpoints/secret.api.injectable"; +import { secretApiInjectable } from "@k8slens/kube-api-specifics"; import type { GetDetailsUrl } from "../kube-detail-params/get-details-url.injectable"; import getDetailsUrlInjectable from "../kube-detail-params/get-details-url.injectable"; import type { SecretApi } from "@k8slens/kube-api"; diff --git a/packages/core/src/renderer/components/workloads-pods/pod-details.tsx b/packages/core/src/renderer/components/workloads-pods/pod-details.tsx index 21a35048c3..9ce80f98ee 100644 --- a/packages/core/src/renderer/components/workloads-pods/pod-details.tsx +++ b/packages/core/src/renderer/components/workloads-pods/pod-details.tsx @@ -23,10 +23,7 @@ import { PodVolumes } from "./details/volumes/view"; import { withInjectables } from "@ogre-tools/injectable-react"; import type { GetDetailsUrl } from "../kube-detail-params/get-details-url.injectable"; import getDetailsUrlInjectable from "../kube-detail-params/get-details-url.injectable"; -import nodeApiInjectable from "../../../common/k8s-api/endpoints/node.api.injectable"; -import runtimeClassApiInjectable from "../../../common/k8s-api/endpoints/runtime-class.api.injectable"; -import serviceAccountApiInjectable from "../../../common/k8s-api/endpoints/service-account.api.injectable"; -import priorityClassApiInjectable from "../../../common/k8s-api/endpoints/priority-class.api.injectable"; +import { nodeApiInjectable, runtimeClassApiInjectable, serviceAccountApiInjectable, priorityClassApiInjectable } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import { PodDetailsContainers } from "./details/containers/pod-details-containers"; import { PodDetailsInitContainers } from "./details/containers/pod-details-init-containers"; diff --git a/packages/core/src/renderer/components/workloads-pods/store.injectable.ts b/packages/core/src/renderer/components/workloads-pods/store.injectable.ts index b77c4c080f..ffd5b797f6 100644 --- a/packages/core/src/renderer/components/workloads-pods/store.injectable.ts +++ b/packages/core/src/renderer/components/workloads-pods/store.injectable.ts @@ -4,18 +4,16 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; -import podApiInjectable from "../../../common/k8s-api/endpoints/pod.api.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; +import { podApiInjectable, podMetricsApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; import { PodStore } from "./store"; -import podMetricsApiInjectable from "../../../common/k8s-api/endpoints/pod-metrics.api.injectable"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; import { loggerInjectionToken } from "@k8slens/logger"; const podStoreInjectable = getInjectable({ id: "pod-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "podStore is only available in certain environements"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "podStore is only available in certain environments"); const api = di.inject(podApiInjectable); diff --git a/packages/core/src/renderer/components/workloads-replicasets/scale-dialog/dialog.test.tsx b/packages/core/src/renderer/components/workloads-replicasets/scale-dialog/dialog.test.tsx index 2a9c55a93e..475cda66b6 100755 --- a/packages/core/src/renderer/components/workloads-replicasets/scale-dialog/dialog.test.tsx +++ b/packages/core/src/renderer/components/workloads-replicasets/scale-dialog/dialog.test.tsx @@ -8,7 +8,7 @@ import React from "react"; import type { ReplicaSetApi } from "@k8slens/kube-api"; import { ReplicaSet } from "@k8slens/kube-object"; import type { OpenReplicaSetScaleDialog } from "./open.injectable"; -import replicaSetApiInjectable from "../../../../common/k8s-api/endpoints/replica-set.api.injectable"; +import { replicaSetApiInjectable } from "@k8slens/kube-api-specifics"; import storesAndApisCanBeCreatedInjectable from "../../../stores-apis-can-be-created.injectable"; import { getDiForUnitTesting } from "../../../getDiForUnitTesting"; import { type DiRender, renderFor } from "../../test-utils/renderFor"; diff --git a/packages/core/src/renderer/components/workloads-replicasets/scale-dialog/dialog.tsx b/packages/core/src/renderer/components/workloads-replicasets/scale-dialog/dialog.tsx index 9a01a617ca..fd1d4cad44 100644 --- a/packages/core/src/renderer/components/workloads-replicasets/scale-dialog/dialog.tsx +++ b/packages/core/src/renderer/components/workloads-replicasets/scale-dialog/dialog.tsx @@ -17,7 +17,7 @@ import { Slider } from "../../slider"; import { cssNames } from "@k8slens/utilities"; import type { ReplicaSet } from "@k8slens/kube-object"; import { withInjectables } from "@ogre-tools/injectable-react"; -import replicaSetApiInjectable from "../../../../common/k8s-api/endpoints/replica-set.api.injectable"; +import { replicaSetApiInjectable } from "@k8slens/kube-api-specifics"; import replicaSetScaleDialogStateInjectable from "./state.injectable"; import type { ShowCheckedErrorNotification } from "../../notifications/show-checked-error.injectable"; import showCheckedErrorNotificationInjectable from "../../notifications/show-checked-error.injectable"; diff --git a/packages/core/src/renderer/components/workloads-replicasets/store.injectable.ts b/packages/core/src/renderer/components/workloads-replicasets/store.injectable.ts index 393f8929f3..44051f7287 100644 --- a/packages/core/src/renderer/components/workloads-replicasets/store.injectable.ts +++ b/packages/core/src/renderer/components/workloads-replicasets/store.injectable.ts @@ -5,8 +5,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import getPodsByOwnerIdInjectable from "../workloads-pods/get-pods-by-owner-id.injectable"; -import replicaSetApiInjectable from "../../../common/k8s-api/endpoints/replica-set.api.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; +import { replicaSetApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; import { ReplicaSetStore } from "./store"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; @@ -15,7 +14,7 @@ import { loggerInjectionToken } from "@k8slens/logger"; const replicaSetStoreInjectable = getInjectable({ id: "replica-set-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "replicaSetStore is only available in certain environments"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "replicaSetStore is only available in certain environments"); const api = di.inject(replicaSetApiInjectable); diff --git a/packages/core/src/renderer/components/workloads-replication-controllers/replication-controller-details.tsx b/packages/core/src/renderer/components/workloads-replication-controllers/replication-controller-details.tsx index 84324e2264..d706e1fa94 100644 --- a/packages/core/src/renderer/components/workloads-replication-controllers/replication-controller-details.tsx +++ b/packages/core/src/renderer/components/workloads-replication-controllers/replication-controller-details.tsx @@ -12,7 +12,7 @@ import { DrawerItem, DrawerTitle } from "../drawer"; import { Badge } from "../badge"; import type { KubeObjectDetailsProps } from "../kube-object-details"; import type { ReplicationController } from "@k8slens/kube-object"; -import replicationControllerApiInjectable from "../../../common/k8s-api/endpoints/replication-controller.api.injectable"; +import { replicationControllerApiInjectable } from "@k8slens/kube-api-specifics"; import showErrorNotificationInjectable from "../notifications/show-error-notification.injectable"; import type { ShowNotification } from "../notifications"; import { Slider } from "../slider"; diff --git a/packages/core/src/renderer/components/workloads-replication-controllers/replication-controller-store.injectable.ts b/packages/core/src/renderer/components/workloads-replication-controllers/replication-controller-store.injectable.ts index 5dbd6d55e0..9fd708c4dd 100644 --- a/packages/core/src/renderer/components/workloads-replication-controllers/replication-controller-store.injectable.ts +++ b/packages/core/src/renderer/components/workloads-replication-controllers/replication-controller-store.injectable.ts @@ -7,7 +7,7 @@ import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manag import { ReplicationControllerStore } from "./replication-controller-store"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; import { loggerInjectionToken } from "@k8slens/logger"; -import replicationControllerApiInjectable from "../../../common/k8s-api/endpoints/replication-controller.api.injectable"; +import { replicationControllerApiInjectable } from "@k8slens/kube-api-specifics"; const replicationControllerStoreInjectable = getInjectable({ id: "replication-controller-store", diff --git a/packages/core/src/renderer/components/workloads-statefulsets/scale/dialog.test.tsx b/packages/core/src/renderer/components/workloads-statefulsets/scale/dialog.test.tsx index b965dc01fd..53263854ea 100755 --- a/packages/core/src/renderer/components/workloads-statefulsets/scale/dialog.test.tsx +++ b/packages/core/src/renderer/components/workloads-statefulsets/scale/dialog.test.tsx @@ -10,7 +10,7 @@ import { waitFor, fireEvent } from "@testing-library/react"; import React from "react"; import type { OpenStatefulSetScaleDialog } from "./open-dialog.injectable"; import { getDiForUnitTesting } from "../../../getDiForUnitTesting"; -import statefulSetApiInjectable from "../../../../common/k8s-api/endpoints/stateful-set.api.injectable"; +import { statefulSetApiInjectable } from "@k8slens/kube-api-specifics"; import storesAndApisCanBeCreatedInjectable from "../../../stores-apis-can-be-created.injectable"; import openStatefulSetScaleDialogInjectable from "./open-dialog.injectable"; import { type DiRender, renderFor } from "../../test-utils/renderFor"; diff --git a/packages/core/src/renderer/components/workloads-statefulsets/scale/dialog.tsx b/packages/core/src/renderer/components/workloads-statefulsets/scale/dialog.tsx index 0f153d685f..5159fa5146 100644 --- a/packages/core/src/renderer/components/workloads-statefulsets/scale/dialog.tsx +++ b/packages/core/src/renderer/components/workloads-statefulsets/scale/dialog.tsx @@ -17,7 +17,7 @@ import { Icon } from "@k8slens/icon"; import { Slider } from "../../slider"; import { cssNames } from "@k8slens/utilities"; import { withInjectables } from "@ogre-tools/injectable-react"; -import statefulSetApiInjectable from "../../../../common/k8s-api/endpoints/stateful-set.api.injectable"; +import { statefulSetApiInjectable } from "@k8slens/kube-api-specifics"; import statefulSetDialogStateInjectable from "./dialog-state.injectable"; import type { ShowCheckedErrorNotification } from "../../notifications/show-checked-error.injectable"; import showCheckedErrorNotificationInjectable from "../../notifications/show-checked-error.injectable"; diff --git a/packages/core/src/renderer/components/workloads-statefulsets/statefulset-menu.tsx b/packages/core/src/renderer/components/workloads-statefulsets/statefulset-menu.tsx index 8d13696092..0ddf45bfb2 100644 --- a/packages/core/src/renderer/components/workloads-statefulsets/statefulset-menu.tsx +++ b/packages/core/src/renderer/components/workloads-statefulsets/statefulset-menu.tsx @@ -8,7 +8,7 @@ import type { StatefulSet } from "@k8slens/kube-object"; import { MenuItem } from "../menu"; import { Icon } from "@k8slens/icon"; import { withInjectables } from "@ogre-tools/injectable-react"; -import statefulSetApiInjectable from "../../../common/k8s-api/endpoints/stateful-set.api.injectable"; +import { statefulSetApiInjectable } from "@k8slens/kube-api-specifics"; import type { OpenConfirmDialog } from "../confirm-dialog/open.injectable"; import openConfirmDialogInjectable from "../confirm-dialog/open.injectable"; import type { ShowCheckedErrorNotification } from "../notifications/show-checked-error.injectable"; diff --git a/packages/core/src/renderer/components/workloads-statefulsets/store.injectable.ts b/packages/core/src/renderer/components/workloads-statefulsets/store.injectable.ts index 0de8ebad2d..348f21347f 100644 --- a/packages/core/src/renderer/components/workloads-statefulsets/store.injectable.ts +++ b/packages/core/src/renderer/components/workloads-statefulsets/store.injectable.ts @@ -6,16 +6,15 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import getPodsByOwnerIdInjectable from "../workloads-pods/get-pods-by-owner-id.injectable"; import { kubeObjectStoreInjectionToken } from "../../../common/k8s-api/api-manager/kube-object-store-token"; -import statefulSetApiInjectable from "../../../common/k8s-api/endpoints/stateful-set.api.injectable"; +import { statefulSetApiInjectable, storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; -import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import { StatefulSetStore } from "./store"; const statefulSetStoreInjectable = getInjectable({ id: "stateful-set-store", instantiate: (di) => { - assert(di.inject(storesAndApisCanBeCreatedInjectable), "statefulSetStore is only available in certain environment"); + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "statefulSetStore is only available in certain environment"); const api = di.inject(statefulSetApiInjectable); diff --git a/packages/core/src/renderer/k8s/api-kube.injectable.ts b/packages/core/src/renderer/k8s/api-kube.injectable.ts index f0dd8287df..68b62578b5 100644 --- a/packages/core/src/renderer/k8s/api-kube.injectable.ts +++ b/packages/core/src/renderer/k8s/api-kube.injectable.ts @@ -6,7 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; import { apiKubePrefix } from "../../common/vars"; import { apiKubeInjectionToken } from "@k8slens/kube-api"; -import { storesAndApisCanBeCreatedInjectionToken } from "../../common/k8s-api/stores-apis-can-be-created.token"; +import { storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import createKubeJsonApiInjectable from "../../common/k8s-api/create-kube-json-api.injectable"; import isDevelopmentInjectable from "../../common/vars/is-development.injectable"; import showErrorNotificationInjectable from "../components/notifications/show-error-notification.injectable"; diff --git a/packages/core/src/renderer/stores-apis-can-be-created.injectable.ts b/packages/core/src/renderer/stores-apis-can-be-created.injectable.ts index 87e3bf323a..3d17d2860f 100644 --- a/packages/core/src/renderer/stores-apis-can-be-created.injectable.ts +++ b/packages/core/src/renderer/stores-apis-can-be-created.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { storesAndApisCanBeCreatedInjectionToken } from "../common/k8s-api/stores-apis-can-be-created.token"; +import { storesAndApisCanBeCreatedInjectionToken } from "@k8slens/kube-api-specifics"; import hostedClusterIdInjectable from "./cluster-frame-context/hosted-cluster-id.injectable"; const storesAndApisCanBeCreatedInjectable = getInjectable({ diff --git a/packages/utility-features/kube-api-specifics/index.ts b/packages/utility-features/kube-api-specifics/index.ts index d1d7f293d7..8d0fa7badb 100644 --- a/packages/utility-features/kube-api-specifics/index.ts +++ b/packages/utility-features/kube-api-specifics/index.ts @@ -1,2 +1,2 @@ -export * from "./src/token"; -export * from "./src/can-be-created-token"; +export * from "./src/specifics"; +export * from "./src/feature"; diff --git a/packages/utility-features/kube-api-specifics/package.json b/packages/utility-features/kube-api-specifics/package.json index 48e4842f10..ede2e0a333 100644 --- a/packages/utility-features/kube-api-specifics/package.json +++ b/packages/utility-features/kube-api-specifics/package.json @@ -1,7 +1,7 @@ { "name": "@k8slens/kube-api-specifics", "private": false, - "version": "1.0.0-alpha.1", + "version": "1.0.0", "description": "Kube api", "type": "commonjs", "publishConfig": { @@ -32,8 +32,11 @@ "lint:fix": "lens-lint --fix" }, "peerDependencies": { + "@k8slens/feature-core": "^6.5.0-alpha.8", "@k8slens/kube-api": "^1.0.0-alpha.1", - "@ogre-tools/injectable": "^17.2.0" + "@k8slens/logger": "^1.0.0", + "@ogre-tools/injectable": "^17.2.0", + "@ogre-tools/injectable-extension-for-auto-registration": "^17.2.0" }, "devDependencies": { "@k8slens/eslint-config": "^6.5.0-alpha.2", diff --git a/packages/utility-features/kube-api-specifics/src/feature.ts b/packages/utility-features/kube-api-specifics/src/feature.ts new file mode 100644 index 0000000000..7ebd3eb161 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/feature.ts @@ -0,0 +1,13 @@ +import { getFeature } from "@k8slens/feature-core"; +import { autoRegister } from "@ogre-tools/injectable-extension-for-auto-registration"; + +export const kubeApiSpecificsFeature = getFeature({ + id: "kube-api-specifics", + register: (di) => { + autoRegister({ + di, + targetModule: module, + getRequireContexts: () => [require.context("./", true, /\.injectable\.(ts|tsx)$/)], + }); + }, +}); diff --git a/packages/utility-features/kube-api-specifics/src/can-be-created-token.ts b/packages/utility-features/kube-api-specifics/src/specifics/can-be-created-token.ts similarity index 100% rename from packages/utility-features/kube-api-specifics/src/can-be-created-token.ts rename to packages/utility-features/kube-api-specifics/src/specifics/can-be-created-token.ts diff --git a/packages/utility-features/kube-api-specifics/src/specifics/cluster-role-binding.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/cluster-role-binding.api.injectable.ts new file mode 100644 index 0000000000..558c90655c --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/cluster-role-binding.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { ClusterRoleBindingApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const clusterRoleBindingApiInjectable = getInjectable({ + id: "cluster-role-binding-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "clusterRoleBindingApi is only accessible in certain environments", + ); + + return new ClusterRoleBindingApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/cluster-role.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/cluster-role.api.injectable.ts new file mode 100644 index 0000000000..ef60f1d8be --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/cluster-role.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { ClusterRoleApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const clusterRoleApiInjectable = getInjectable({ + id: "cluster-role-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "clusterRoleApi is only available in certain environments", + ); + + return new ClusterRoleApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/core/src/common/k8s-api/endpoints/cluster.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/cluster.api.injectable.ts similarity index 53% rename from packages/core/src/common/k8s-api/endpoints/cluster.api.injectable.ts rename to packages/utility-features/kube-api-specifics/src/specifics/cluster.api.injectable.ts index bb2c2f9d3d..38a2a7a059 100644 --- a/packages/core/src/common/k8s-api/endpoints/cluster.api.injectable.ts +++ b/packages/utility-features/kube-api-specifics/src/specifics/cluster.api.injectable.ts @@ -4,24 +4,24 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; import { ClusterApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; -const clusterApiInjectable = getInjectable({ +export const clusterApiInjectable = getInjectable({ id: "cluster-api", instantiate: (di) => { assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "clusterApi is only available in certain environments"); return new ClusterApi({ - logger: di.inject(loggerInjectionToken), + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), maybeKubeApi: di.inject(maybeKubeApiInjectable), }); }, injectionToken: kubeApiInjectionToken, }); - -export default clusterApiInjectable; diff --git a/packages/utility-features/kube-api-specifics/src/specifics/component-status.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/component-status.api.injectable.ts new file mode 100644 index 0000000000..5b5f9414d7 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/component-status.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { ComponentStatusApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; + +export const componentStatusApiInjectable = getInjectable({ + id: "component-status-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "componentStatusApi is only available in certain environments", + ); + + return new ComponentStatusApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/config-map.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/config-map.api.injectable.ts new file mode 100644 index 0000000000..f5345d258e --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/config-map.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { ConfigMapApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const configMapApiInjectable = getInjectable({ + id: "config-map-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "configMapApi is only available in certain environments", + ); + + return new ConfigMapApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/cron-job.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/cron-job.api.injectable.ts new file mode 100644 index 0000000000..e87e39428b --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/cron-job.api.injectable.ts @@ -0,0 +1,32 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { CronJobApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const cronJobApiInjectable = getInjectable({ + id: "cron-job-api", + instantiate: (di) => { + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "cronJobApi is only available in certain environments"); + + return new CronJobApi( + { + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }, + { + checkPreferredVersion: true, + }, + ); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/custom-resource-definition.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/custom-resource-definition.api.injectable.ts new file mode 100644 index 0000000000..1c7812cb95 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/custom-resource-definition.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { CustomResourceDefinitionApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; + +export const customResourceDefinitionApiInjectable = getInjectable({ + id: "custom-resource-definition-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "customResourceDefinitionApi is only available in certain environments", + ); + + return new CustomResourceDefinitionApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/daemon-set.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/daemon-set.api.injectable.ts new file mode 100644 index 0000000000..c590d9e7c5 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/daemon-set.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { DaemonSetApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const daemonSetApiInjectable = getInjectable({ + id: "daemon-set-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "daemonSetApi is only available in certain environments", + ); + + return new DaemonSetApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/deployment.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/deployment.api.injectable.ts new file mode 100644 index 0000000000..c729105abe --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/deployment.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { DeploymentApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const deploymentApiInjectable = getInjectable({ + id: "deployment-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "deploymentApi is only available in certain environments", + ); + + return new DeploymentApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/endpoint.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/endpoint.api.injectable.ts new file mode 100644 index 0000000000..76f146a3b7 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/endpoint.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { EndpointsApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const endpointsApiInjectable = getInjectable({ + id: "endpoints-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "endpointsApi is only available in certain environments", + ); + + return new EndpointsApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/event.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/event.api.injectable.ts new file mode 100644 index 0000000000..0209e704d5 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/event.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { KubeEventApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const kubeEventApiInjectable = getInjectable({ + id: "kube-event-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "kubeEventApi is only available in certain environments", + ); + + return new KubeEventApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/horizontal-pod-autoscaler.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/horizontal-pod-autoscaler.api.injectable.ts new file mode 100644 index 0000000000..fe00424200 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/horizontal-pod-autoscaler.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { HorizontalPodAutoscalerApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const horizontalPodAutoscalerApiInjectable = getInjectable({ + id: "horizontal-pod-autoscaler-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "horizontalPodAutoscalerApi is only available in certain environments", + ); + + return new HorizontalPodAutoscalerApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/index.ts b/packages/utility-features/kube-api-specifics/src/specifics/index.ts new file mode 100644 index 0000000000..7a8b5db9d7 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/index.ts @@ -0,0 +1,45 @@ +export * from "./can-be-created-token"; +export * from "./cluster-role-binding.api.injectable"; +export * from "./cluster-role.api.injectable"; +export * from "./cluster.api.injectable"; +export * from "./component-status.api.injectable"; +export * from "./config-map.api.injectable"; +export * from "./cron-job.api.injectable"; +export * from "./custom-resource-definition.api.injectable"; +export * from "./daemon-set.api.injectable"; +export * from "./deployment.api.injectable"; +export * from "./endpoint.api.injectable"; +export * from "./event.api.injectable"; +export * from "./horizontal-pod-autoscaler.api.injectable"; +export * from "./ingress-class.api.injectable"; +export * from "./ingress.api.injectable"; +export * from "./job.api.injectable"; +export * from "./lease.api.injectable"; +export * from "./limit-range.api.injectable"; +export * from "./maybe-kube-api.injectable"; +export * from "./mutating-webhook-configuration-api.injectable"; +export * from "./namespace.api.injectable"; +export * from "./network-policy.api.injectable"; +export * from "./node.api.injectable"; +export * from "./persistent-volume-claim.api.injectable"; +export * from "./persistent-volume.api.injectable"; +export * from "./pod-disruption-budget.api.injectable"; +export * from "./pod-metrics.api.injectable"; +export * from "./pod-security-policy.api.injectable"; +export * from "./pod.api.injectable"; +export * from "./priority-class.api.injectable"; +export * from "./replica-set.api.injectable"; +export * from "./replication-controller.api.injectable"; +export * from "./resource-quota.api.injectable"; +export * from "./role-binding.api.injectable"; +export * from "./role.api.injectable"; +export * from "./runtime-class.api.injectable"; +export * from "./secret.api.injectable"; +export * from "./self-subject-rules-reviews.api.injectable"; +export * from "./service-account.api.injectable"; +export * from "./service.api.injectable"; +export * from "./stateful-set.api.injectable"; +export * from "./storage-class.api.injectable"; +export * from "./token"; +export * from "./validating-webhook-configuration-api.injectable"; +export * from "./vertical-pod-autoscaler.api.injectable"; diff --git a/packages/utility-features/kube-api-specifics/src/specifics/ingress-class.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/ingress-class.api.injectable.ts new file mode 100644 index 0000000000..ed806addaa --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/ingress-class.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { IngressClassApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; + +export const ingressClassApiInjectable = getInjectable({ + id: "ingress-class-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "horizontalPodAutoscalerApi is only available in certain environments", + ); + + return new IngressClassApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/core/src/common/k8s-api/endpoints/ingress.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/ingress.api.injectable.ts similarity index 53% rename from packages/core/src/common/k8s-api/endpoints/ingress.api.injectable.ts rename to packages/utility-features/kube-api-specifics/src/specifics/ingress.api.injectable.ts index 203d65f25d..083a45c81a 100644 --- a/packages/core/src/common/k8s-api/endpoints/ingress.api.injectable.ts +++ b/packages/utility-features/kube-api-specifics/src/specifics/ingress.api.injectable.ts @@ -4,24 +4,24 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; import { IngressApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; -const ingressApiInjectable = getInjectable({ +export const ingressApiInjectable = getInjectable({ id: "ingress-api", instantiate: (di) => { assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "ingressApi is only available in certain environments"); return new IngressApi({ - logger: di.inject(loggerInjectionToken), + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), maybeKubeApi: di.inject(maybeKubeApiInjectable), }); }, injectionToken: kubeApiInjectionToken, }); - -export default ingressApiInjectable; diff --git a/packages/utility-features/kube-api-specifics/src/specifics/job.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/job.api.injectable.ts new file mode 100644 index 0000000000..cc6d49a35f --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/job.api.injectable.ts @@ -0,0 +1,32 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { JobApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const jobApiInjectable = getInjectable({ + id: "job-api", + instantiate: (di) => { + assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "jobApi is only available in certain environments"); + + return new JobApi( + { + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }, + { + checkPreferredVersion: true, + }, + ); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/core/src/common/k8s-api/endpoints/lease.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/lease.api.injectable.ts similarity index 53% rename from packages/core/src/common/k8s-api/endpoints/lease.api.injectable.ts rename to packages/utility-features/kube-api-specifics/src/specifics/lease.api.injectable.ts index bdc7552448..05fc51e7c0 100644 --- a/packages/core/src/common/k8s-api/endpoints/lease.api.injectable.ts +++ b/packages/utility-features/kube-api-specifics/src/specifics/lease.api.injectable.ts @@ -4,24 +4,24 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; import { LeaseApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; -const leaseApiInjectable = getInjectable({ +export const leaseApiInjectable = getInjectable({ id: "lease-api", instantiate: (di) => { assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "leaseApi is only available in certain environments"); return new LeaseApi({ - logger: di.inject(loggerInjectionToken), + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), maybeKubeApi: di.inject(maybeKubeApiInjectable), }); }, injectionToken: kubeApiInjectionToken, }); - -export default leaseApiInjectable; diff --git a/packages/utility-features/kube-api-specifics/src/specifics/limit-range.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/limit-range.api.injectable.ts new file mode 100644 index 0000000000..4d43528ac6 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/limit-range.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { LimitRangeApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const limitRangeApiInjectable = getInjectable({ + id: "limit-range-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "limitRangeApi is only available in certain environments", + ); + + return new LimitRangeApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/core/src/common/k8s-api/maybe-kube-api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/maybe-kube-api.injectable.ts similarity index 82% rename from packages/core/src/common/k8s-api/maybe-kube-api.injectable.ts rename to packages/utility-features/kube-api-specifics/src/specifics/maybe-kube-api.injectable.ts index 9265da0ce4..82b6cb6fcf 100644 --- a/packages/core/src/common/k8s-api/maybe-kube-api.injectable.ts +++ b/packages/utility-features/kube-api-specifics/src/specifics/maybe-kube-api.injectable.ts @@ -5,7 +5,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import { apiKubeInjectionToken } from "@k8slens/kube-api"; -const maybeKubeApiInjectable = getInjectable({ +export const maybeKubeApiInjectable = getInjectable({ id: "maybe-kube-api", instantiate: (di) => { try { @@ -15,5 +15,3 @@ const maybeKubeApiInjectable = getInjectable({ } }, }); - -export default maybeKubeApiInjectable; diff --git a/packages/utility-features/kube-api-specifics/src/specifics/mutating-webhook-configuration-api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/mutating-webhook-configuration-api.injectable.ts new file mode 100644 index 0000000000..6a926e736b --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/mutating-webhook-configuration-api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { MutatingWebhookConfigurationApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const mutatingWebhookConfigurationApiInjectable = getInjectable({ + id: "mutating-webhook-configuration", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "mutatingWebhookConfigurationApi is only available in certain environments", + ); + + return new MutatingWebhookConfigurationApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/namespace.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/namespace.api.injectable.ts new file mode 100644 index 0000000000..c906e4196d --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/namespace.api.injectable.ts @@ -0,0 +1,31 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { NamespaceApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const namespaceApiInjectable = getInjectable({ + id: "namespace-api", + + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "namespaceApi is only available in certain environments", + ); + + return new NamespaceApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/network-policy.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/network-policy.api.injectable.ts new file mode 100644 index 0000000000..5a20b73833 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/network-policy.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { NetworkPolicyApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const networkPolicyApiInjectable = getInjectable({ + id: "network-policy-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "networkPolicyApi is only available in certain environments", + ); + + return new NetworkPolicyApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/core/src/common/k8s-api/endpoints/node.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/node.api.injectable.ts similarity index 53% rename from packages/core/src/common/k8s-api/endpoints/node.api.injectable.ts rename to packages/utility-features/kube-api-specifics/src/specifics/node.api.injectable.ts index fe2764db03..82ddb6dd01 100644 --- a/packages/core/src/common/k8s-api/endpoints/node.api.injectable.ts +++ b/packages/utility-features/kube-api-specifics/src/specifics/node.api.injectable.ts @@ -4,24 +4,24 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; import { NodeApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; -const nodeApiInjectable = getInjectable({ +export const nodeApiInjectable = getInjectable({ id: "node-api", instantiate: (di) => { assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "nodeApi is only available in certain environments"); return new NodeApi({ - logger: di.inject(loggerInjectionToken), + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), maybeKubeApi: di.inject(maybeKubeApiInjectable), }); }, injectionToken: kubeApiInjectionToken, }); - -export default nodeApiInjectable; diff --git a/packages/utility-features/kube-api-specifics/src/specifics/persistent-volume-claim.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/persistent-volume-claim.api.injectable.ts new file mode 100644 index 0000000000..1c6043b986 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/persistent-volume-claim.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { PersistentVolumeClaimApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const persistentVolumeClaimApiInjectable = getInjectable({ + id: "persistent-volume-claim-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "persistentVolumeClaimApi is only available in certain environments", + ); + + return new PersistentVolumeClaimApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/persistent-volume.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/persistent-volume.api.injectable.ts new file mode 100644 index 0000000000..1ee1414de2 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/persistent-volume.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { PersistentVolumeApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const persistentVolumeApiInjectable = getInjectable({ + id: "persistent-volume-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "persistentVolumeApi is only available in certain environments", + ); + + return new PersistentVolumeApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/pod-disruption-budget.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/pod-disruption-budget.api.injectable.ts new file mode 100644 index 0000000000..91197dbeae --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/pod-disruption-budget.api.injectable.ts @@ -0,0 +1,38 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { PodDisruptionBudgetApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const podDisruptionBudgetApiInjectable = getInjectable({ + id: "pod-disruption-budget-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "podDisruptionBudgetApi is only available in certain environments", + ); + + return new PodDisruptionBudgetApi( + { + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }, + { + checkPreferredVersion: true, + allowedUsableVersions: { + policy: ["v1", "v1beta1"], + }, + }, + ); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/pod-metrics.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/pod-metrics.api.injectable.ts new file mode 100644 index 0000000000..9c8a34ee4e --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/pod-metrics.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { PodMetricsApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const podMetricsApiInjectable = getInjectable({ + id: "pod-metrics-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "podMetricsApi is only available in certain environments", + ); + + return new PodMetricsApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/pod-security-policy.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/pod-security-policy.api.injectable.ts new file mode 100644 index 0000000000..e5a81a3851 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/pod-security-policy.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { PodSecurityPolicyApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const podSecurityPolicyApiInjectable = getInjectable({ + id: "pod-security-policy-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "podSecurityPolicyApi is only available in certain environments", + ); + + return new PodSecurityPolicyApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/core/src/common/k8s-api/endpoints/pod.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/pod.api.injectable.ts similarity index 53% rename from packages/core/src/common/k8s-api/endpoints/pod.api.injectable.ts rename to packages/utility-features/kube-api-specifics/src/specifics/pod.api.injectable.ts index 352d8f5815..3b61f3e1f5 100644 --- a/packages/core/src/common/k8s-api/endpoints/pod.api.injectable.ts +++ b/packages/utility-features/kube-api-specifics/src/specifics/pod.api.injectable.ts @@ -4,25 +4,25 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; import { PodApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; -const podApiInjectable = getInjectable({ +export const podApiInjectable = getInjectable({ id: "pod-api", instantiate: (di) => { assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "podApi is only available in certain environments"); return new PodApi({ - logger: di.inject(loggerInjectionToken), + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), maybeKubeApi: di.inject(maybeKubeApiInjectable), }); }, injectionToken: kubeApiInjectionToken, }); - -export default podApiInjectable; diff --git a/packages/utility-features/kube-api-specifics/src/specifics/priority-class.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/priority-class.api.injectable.ts new file mode 100644 index 0000000000..d6465993da --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/priority-class.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { PriorityClassApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const priorityClassApiInjectable = getInjectable({ + id: "priority-class-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "PriorityClassApi is only available in certain environments", + ); + + return new PriorityClassApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/replica-set.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/replica-set.api.injectable.ts new file mode 100644 index 0000000000..787930ab0e --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/replica-set.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { ReplicaSetApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const replicaSetApiInjectable = getInjectable({ + id: "replica-set-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "replicaSetApi is only available in certain environments", + ); + + return new ReplicaSetApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/replication-controller.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/replication-controller.api.injectable.ts new file mode 100644 index 0000000000..ddd0940b3f --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/replication-controller.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { ReplicationControllerApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; + +export const replicationControllerApiInjectable = getInjectable({ + id: "replication-controller-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "replicationControllerApi is only available in certain environments", + ); + + return new ReplicationControllerApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/resource-quota.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/resource-quota.api.injectable.ts new file mode 100644 index 0000000000..f2bc33c5c4 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/resource-quota.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { ResourceQuotaApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const resourceQuotaApiInjectable = getInjectable({ + id: "resource-quota-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "resourceQuotaApi is only available in certain environments", + ); + + return new ResourceQuotaApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/role-binding.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/role-binding.api.injectable.ts new file mode 100644 index 0000000000..0862aab4f7 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/role-binding.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { RoleBindingApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const roleBindingApiInjectable = getInjectable({ + id: "role-binding-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "roleBindingApi is only available in certain environments", + ); + + return new RoleBindingApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/core/src/common/k8s-api/endpoints/role.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/role.api.injectable.ts similarity index 53% rename from packages/core/src/common/k8s-api/endpoints/role.api.injectable.ts rename to packages/utility-features/kube-api-specifics/src/specifics/role.api.injectable.ts index 0b9e077e4b..e183aa39ff 100644 --- a/packages/core/src/common/k8s-api/endpoints/role.api.injectable.ts +++ b/packages/utility-features/kube-api-specifics/src/specifics/role.api.injectable.ts @@ -4,24 +4,24 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; import { RoleApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; -const roleApiInjectable = getInjectable({ +export const roleApiInjectable = getInjectable({ id: "role-api", instantiate: (di) => { assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "roleApi is only available in certain environments"); return new RoleApi({ - logger: di.inject(loggerInjectionToken), + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), maybeKubeApi: di.inject(maybeKubeApiInjectable), }); }, injectionToken: kubeApiInjectionToken, }); - -export default roleApiInjectable; diff --git a/packages/utility-features/kube-api-specifics/src/specifics/runtime-class.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/runtime-class.api.injectable.ts new file mode 100644 index 0000000000..eabe3b44e0 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/runtime-class.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { RuntimeClassApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const runtimeClassApiInjectable = getInjectable({ + id: "runtime-class-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "RuntimeClassApi is only available in certain environments", + ); + + return new RuntimeClassApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/core/src/common/k8s-api/endpoints/secret.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/secret.api.injectable.ts similarity index 53% rename from packages/core/src/common/k8s-api/endpoints/secret.api.injectable.ts rename to packages/utility-features/kube-api-specifics/src/specifics/secret.api.injectable.ts index 66cc807c06..f66c1bc4f9 100644 --- a/packages/core/src/common/k8s-api/endpoints/secret.api.injectable.ts +++ b/packages/utility-features/kube-api-specifics/src/specifics/secret.api.injectable.ts @@ -4,24 +4,24 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; import { SecretApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; -const secretApiInjectable = getInjectable({ +export const secretApiInjectable = getInjectable({ id: "secret-api", instantiate: (di) => { assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "secretApi is only available in certain environments"); return new SecretApi({ - logger: di.inject(loggerInjectionToken), + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), maybeKubeApi: di.inject(maybeKubeApiInjectable), }); }, injectionToken: kubeApiInjectionToken, }); - -export default secretApiInjectable; diff --git a/packages/utility-features/kube-api-specifics/src/specifics/self-subject-rules-reviews.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/self-subject-rules-reviews.api.injectable.ts new file mode 100644 index 0000000000..eb527b455e --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/self-subject-rules-reviews.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { SelfSubjectRulesReviewApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const selfSubjectRulesReviewApiInjectable = getInjectable({ + id: "self-subject-rules-review-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "selfSubjectRulesReviewApi is only available in certain environments", + ); + + return new SelfSubjectRulesReviewApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/service-account.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/service-account.api.injectable.ts new file mode 100644 index 0000000000..28aceabbef --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/service-account.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { ServiceAccountApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const serviceAccountApiInjectable = getInjectable({ + id: "service-account-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "serviceAccountApi is only available in certain environments", + ); + + return new ServiceAccountApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/core/src/common/k8s-api/endpoints/service.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/service.api.injectable.ts similarity index 53% rename from packages/core/src/common/k8s-api/endpoints/service.api.injectable.ts rename to packages/utility-features/kube-api-specifics/src/specifics/service.api.injectable.ts index 75adcfb3f0..a5171bca6f 100644 --- a/packages/core/src/common/k8s-api/endpoints/service.api.injectable.ts +++ b/packages/utility-features/kube-api-specifics/src/specifics/service.api.injectable.ts @@ -4,24 +4,24 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import assert from "assert"; -import { storesAndApisCanBeCreatedInjectionToken } from "../stores-apis-can-be-created.token"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; import { ServiceApi } from "@k8slens/kube-api"; -import { kubeApiInjectionToken } from "@k8slens/kube-api-specifics"; -import { loggerInjectionToken } from "@k8slens/logger"; -import maybeKubeApiInjectable from "../maybe-kube-api.injectable"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; -const serviceApiInjectable = getInjectable({ +export const serviceApiInjectable = getInjectable({ id: "service-api", instantiate: (di) => { assert(di.inject(storesAndApisCanBeCreatedInjectionToken), "serviceApi is only available in certain environments"); return new ServiceApi({ - logger: di.inject(loggerInjectionToken), + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), maybeKubeApi: di.inject(maybeKubeApiInjectable), }); }, injectionToken: kubeApiInjectionToken, }); - -export default serviceApiInjectable; diff --git a/packages/utility-features/kube-api-specifics/src/specifics/stateful-set.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/stateful-set.api.injectable.ts new file mode 100644 index 0000000000..3654d4b7f8 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/stateful-set.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { StatefulSetApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const statefulSetApiInjectable = getInjectable({ + id: "stateful-set-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "statefulSetApi is only available in certain environments", + ); + + return new StatefulSetApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/storage-class.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/storage-class.api.injectable.ts new file mode 100644 index 0000000000..58823f53c2 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/storage-class.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { StorageClassApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const storageClassApiInjectable = getInjectable({ + id: "storage-class-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "storageClassApi is only available in certain environments", + ); + + return new StorageClassApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/token.ts b/packages/utility-features/kube-api-specifics/src/specifics/token.ts similarity index 100% rename from packages/utility-features/kube-api-specifics/src/token.ts rename to packages/utility-features/kube-api-specifics/src/specifics/token.ts diff --git a/packages/utility-features/kube-api-specifics/src/specifics/validating-webhook-configuration-api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/validating-webhook-configuration-api.injectable.ts new file mode 100644 index 0000000000..b22ae55b53 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/validating-webhook-configuration-api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { ValidatingWebhookConfigurationApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const validatingWebhookConfigurationApiInjectable = getInjectable({ + id: "validating-webhook-configuration", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "const validatingWebhookConfigurationApi is only available in certain environments", + ); + + return new ValidatingWebhookConfigurationApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +}); diff --git a/packages/utility-features/kube-api-specifics/src/specifics/vertical-pod-autoscaler.api.injectable.ts b/packages/utility-features/kube-api-specifics/src/specifics/vertical-pod-autoscaler.api.injectable.ts new file mode 100644 index 0000000000..8cb1a56248 --- /dev/null +++ b/packages/utility-features/kube-api-specifics/src/specifics/vertical-pod-autoscaler.api.injectable.ts @@ -0,0 +1,30 @@ +/** + * 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 assert from "assert"; +import { storesAndApisCanBeCreatedInjectionToken } from "./can-be-created-token"; +import { VerticalPodAutoscalerApi } from "@k8slens/kube-api"; +import { kubeApiInjectionToken } from "./token"; +import { logErrorInjectionToken, logInfoInjectionToken, logWarningInjectionToken } from "@k8slens/logger"; +import { maybeKubeApiInjectable } from "./maybe-kube-api.injectable"; + +export const verticalPodAutoscalerApiInjectable = getInjectable({ + id: "vertical-pod-autoscaler-api", + instantiate: (di) => { + assert( + di.inject(storesAndApisCanBeCreatedInjectionToken), + "verticalPodAutoscalerApi is only available in certain environments", + ); + + return new VerticalPodAutoscalerApi({ + logError: di.inject(logErrorInjectionToken), + logInfo: di.inject(logInfoInjectionToken), + logWarn: di.inject(logWarningInjectionToken), + maybeKubeApi: di.inject(maybeKubeApiInjectable), + }); + }, + + injectionToken: kubeApiInjectionToken, +});