mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
- requestNamespaceListPermissions is infallable so no need to have the extra try/catch - Refactor isMetricHidden method away from Cluster - Refactor shouldShowResource out of Cluster - Refactor isInLocalKubeconfig out of Cluster - Remove depecrated and unused workspace from Cluster - Refactor out kubectl as a dependency of Cluster - Remove from cluster getter used only once - Split out ClusterConnection from Cluster - Also split out KubeAuthProxyServer from ContextHandler - Rename ContextHandler to PrometheusHandler - Cleanup onNetworkOffline/Online impls within ClusterManager - Remove annotations from ClusterConnection - Remove mobx annotations from Cluster - Rename loadConfigFromFileInjectable - Remove all uses of dead createClusterInjectionToken - Fix type errors related to broadcastConnectionUpdate Signed-off-by: Sebastian Malton <sebastian@malton.name>
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
/**
|
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
*/
|
|
import type { KubeConfig } from "@kubernetes/client-node";
|
|
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
|
|
import type { Cluster } from "./cluster";
|
|
import loadConfigFromFileInjectable from "../kube-helpers/load-config-from-file.injectable";
|
|
import type { ConfigResult } from "../kube-helpers";
|
|
|
|
export interface LoadKubeconfig {
|
|
(fullResult?: false): Promise<KubeConfig>;
|
|
(fullResult: true): Promise<ConfigResult>;
|
|
}
|
|
|
|
const loadKubeconfigInjectable = getInjectable({
|
|
id: "load-kubeconfig",
|
|
instantiate: (di, cluster) => {
|
|
const loadConfigFromFile = di.inject(loadConfigFromFileInjectable);
|
|
|
|
return (async (fullResult = false) => {
|
|
const result = await loadConfigFromFile(cluster.kubeConfigPath.get());
|
|
|
|
if (fullResult) {
|
|
return result;
|
|
}
|
|
|
|
return result.config;
|
|
}) as LoadKubeconfig;
|
|
},
|
|
lifecycle: lifecycleEnum.keyedSingleton({
|
|
getInstanceKey: (di, cluster: Cluster) => cluster.id,
|
|
}),
|
|
});
|
|
|
|
export default loadKubeconfigInjectable;
|