mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Cleanup 'Cluster' to remove environment specific details (#6951)
- 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>
This commit is contained in:
1 parent
e6d6d1d8f7
commit
ad9bafe2a5
133 files changed
+2544
-1961
No files matched your search
@@ -5,6 +5,7 @@
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { Cluster } from "../../../common/cluster/cluster";
|
||||
import loggerInjectable from "../../../common/logger.injectable";
|
||||
import kubeconfigManagerInjectable from "../../kubeconfig-manager/kubeconfig-manager.injectable";
|
||||
import type { DeleteHelmReleaseData } from "../delete-helm-release.injectable";
|
||||
import deleteHelmReleaseInjectable from "../delete-helm-release.injectable";
|
||||
|
||||
@@ -16,11 +17,12 @@ const deleteClusterHelmReleaseInjectable = getInjectable({
|
||||
const deleteHelmRelease = di.inject(deleteHelmReleaseInjectable);
|
||||
|
||||
return async (cluster: Cluster, data: DeleteHelmReleaseData) => {
|
||||
const proxyKubeconfig = await cluster.getProxyKubeconfigPath();
|
||||
const proxyKubeconfigManager = di.inject(kubeconfigManagerInjectable, cluster);
|
||||
const proxyKubeconfigPath = await proxyKubeconfigManager.ensurePath();
|
||||
|
||||
logger.debug(`[CLUSTER]: Delete helm release`, data);
|
||||
|
||||
return deleteHelmRelease(proxyKubeconfig, data);
|
||||
return deleteHelmRelease(proxyKubeconfigPath, data);
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { Cluster } from "../../../common/cluster/cluster";
|
||||
import loggerInjectable from "../../../common/logger.injectable";
|
||||
import kubeconfigManagerInjectable from "../../kubeconfig-manager/kubeconfig-manager.injectable";
|
||||
import type { GetHelmReleaseHistoryData } from "../get-helm-release-history.injectable";
|
||||
import getHelmReleaseHistoryInjectable from "../get-helm-release-history.injectable";
|
||||
|
||||
@@ -16,11 +17,12 @@ const getClusterHelmReleaseHistoryInjectable = getInjectable({
|
||||
const getHelmReleaseHistory = di.inject(getHelmReleaseHistoryInjectable);
|
||||
|
||||
return async (cluster: Cluster, data: GetHelmReleaseHistoryData) => {
|
||||
const proxyKubeconfig = await cluster.getProxyKubeconfigPath();
|
||||
const proxyKubeconfigManager = di.inject(kubeconfigManagerInjectable, cluster);
|
||||
const proxyKubeconfigPath = await proxyKubeconfigManager.ensurePath();
|
||||
|
||||
logger.debug(`[CLUSTER]: Fetch release history for clusterId=${cluster.id}`, data);
|
||||
|
||||
return getHelmReleaseHistory(proxyKubeconfig, data);
|
||||
return getHelmReleaseHistory(proxyKubeconfigPath, data);
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -7,6 +7,7 @@ import loggerInjectable from "../../../common/logger.injectable";
|
||||
import type { Cluster } from "../../../common/cluster/cluster";
|
||||
import type { GetHelmReleaseValuesData } from "../get-helm-release-values.injectable";
|
||||
import getHelmReleaseValuesInjectable from "../get-helm-release-values.injectable";
|
||||
import kubeconfigManagerInjectable from "../../kubeconfig-manager/kubeconfig-manager.injectable";
|
||||
|
||||
const getClusterHelmReleaseValuesInjectable = getInjectable({
|
||||
id: "get-cluster-helm-release-values",
|
||||
@@ -16,11 +17,12 @@ const getClusterHelmReleaseValuesInjectable = getInjectable({
|
||||
const getHelmReleaseValues = di.inject(getHelmReleaseValuesInjectable);
|
||||
|
||||
return async (cluster: Cluster, data: GetHelmReleaseValuesData) => {
|
||||
const pathToKubeconfig = await cluster.getProxyKubeconfigPath();
|
||||
const proxyKubeconfigManager = di.inject(kubeconfigManagerInjectable, cluster);
|
||||
const proxyKubeconfigPath = await proxyKubeconfigManager.ensurePath();
|
||||
|
||||
logger.debug(`[CLUSTER]: getting helm release values`, data);
|
||||
|
||||
return getHelmReleaseValues(pathToKubeconfig, data);
|
||||
return getHelmReleaseValues(proxyKubeconfigPath, data);
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -6,6 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { Cluster } from "../../../common/cluster/cluster";
|
||||
import loggerInjectable from "../../../common/logger.injectable";
|
||||
import { isObject, json } from "../../../common/utils";
|
||||
import kubeconfigManagerInjectable from "../../kubeconfig-manager/kubeconfig-manager.injectable";
|
||||
import execHelmInjectable from "../exec-helm/exec-helm.injectable";
|
||||
import getHelmReleaseResourcesInjectable from "./get-helm-release-resources/get-helm-release-resources.injectable";
|
||||
|
||||
@@ -18,7 +19,8 @@ const getHelmReleaseInjectable = getInjectable({
|
||||
const getHelmReleaseResources = di.inject(getHelmReleaseResourcesInjectable);
|
||||
|
||||
return async (cluster: Cluster, releaseName: string, namespace: string) => {
|
||||
const kubeconfigPath = await cluster.getProxyKubeconfigPath();
|
||||
const proxyKubeconfigManager = di.inject(kubeconfigManagerInjectable, cluster);
|
||||
const proxyKubeconfigPath = await proxyKubeconfigManager.ensurePath();
|
||||
|
||||
logger.debug("Fetch release");
|
||||
|
||||
@@ -28,7 +30,7 @@ const getHelmReleaseInjectable = getInjectable({
|
||||
"--namespace",
|
||||
namespace,
|
||||
"--kubeconfig",
|
||||
kubeconfigPath,
|
||||
proxyKubeconfigPath,
|
||||
"--output",
|
||||
"json",
|
||||
]);
|
||||
@@ -48,7 +50,7 @@ const getHelmReleaseInjectable = getInjectable({
|
||||
const resourcesResult = await getHelmReleaseResources(
|
||||
releaseName,
|
||||
namespace,
|
||||
kubeconfigPath,
|
||||
proxyKubeconfigPath,
|
||||
);
|
||||
|
||||
if (!resourcesResult.callWasSuccessful) {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { JsonObject } from "type-fest";
|
||||
import type { Cluster } from "../../../common/cluster/cluster";
|
||||
import kubeconfigManagerInjectable from "../../kubeconfig-manager/kubeconfig-manager.injectable";
|
||||
import installHelmChartInjectable from "../install-helm-chart.injectable";
|
||||
|
||||
export interface InstallChartArgs {
|
||||
@@ -22,11 +23,12 @@ const installClusterHelmChartInjectable = getInjectable({
|
||||
const installHelmChart = di.inject(installHelmChartInjectable);
|
||||
|
||||
return async (cluster: Cluster, data: InstallChartArgs) => {
|
||||
const proxyKubeconfig = await cluster.getProxyKubeconfigPath();
|
||||
const proxyKubeconfigManager = di.inject(kubeconfigManagerInjectable, cluster);
|
||||
const proxyKubeconfigPath = await proxyKubeconfigManager.ensurePath();
|
||||
|
||||
return installHelmChart({
|
||||
...data,
|
||||
kubeconfigPath: proxyKubeconfig,
|
||||
kubeconfigPath: proxyKubeconfigPath,
|
||||
});
|
||||
};
|
||||
},
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { Cluster } from "../../../common/cluster/cluster";
|
||||
import loggerInjectable from "../../../common/logger.injectable";
|
||||
import kubeconfigManagerInjectable from "../../kubeconfig-manager/kubeconfig-manager.injectable";
|
||||
import listHelmReleasesInjectable from "../list-helm-releases.injectable";
|
||||
|
||||
const listClusterHelmReleasesInjectable = getInjectable({
|
||||
@@ -15,11 +16,12 @@ const listClusterHelmReleasesInjectable = getInjectable({
|
||||
const listHelmReleases = di.inject(listHelmReleasesInjectable);
|
||||
|
||||
return async (cluster: Cluster, namespace?: string) => {
|
||||
const proxyKubeconfig = await cluster.getProxyKubeconfigPath();
|
||||
const proxyKubeconfigManager = di.inject(kubeconfigManagerInjectable, cluster);
|
||||
const proxyKubeconfigPath = await proxyKubeconfigManager.ensurePath();
|
||||
|
||||
logger.debug(`[CLUSTER]: listing helm releases for clusterId=${cluster.id}`, { namespace });
|
||||
|
||||
return listHelmReleases(proxyKubeconfig, namespace);
|
||||
return listHelmReleases(proxyKubeconfigPath, namespace);
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import type { Cluster } from "../../../common/cluster/cluster";
|
||||
import loggerInjectable from "../../../common/logger.injectable";
|
||||
import kubeconfigManagerInjectable from "../../kubeconfig-manager/kubeconfig-manager.injectable";
|
||||
import type { RollbackHelmReleaseData } from "../rollback-helm-release.injectable";
|
||||
import rollbackHelmReleaseInjectable from "../rollback-helm-release.injectable";
|
||||
|
||||
@@ -16,11 +17,12 @@ const rollbackClusterHelmReleaseInjectable = getInjectable({
|
||||
const rollbackHelmRelease = di.inject(rollbackHelmReleaseInjectable);
|
||||
|
||||
return async (cluster: Cluster, data: RollbackHelmReleaseData) => {
|
||||
const proxyKubeconfig = await cluster.getProxyKubeconfigPath();
|
||||
const proxyKubeconfigManager = di.inject(kubeconfigManagerInjectable, cluster);
|
||||
const proxyKubeconfigPath = await proxyKubeconfigManager.ensurePath();
|
||||
|
||||
logger.debug(`[CLUSTER]: rolling back helm release for clusterId=${cluster.id}`, data);
|
||||
|
||||
await rollbackHelmRelease(proxyKubeconfig, data);
|
||||
await rollbackHelmRelease(proxyKubeconfigPath, data);
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -10,6 +10,7 @@ import getHelmReleaseInjectable from "./get-helm-release.injectable";
|
||||
import writeFileInjectable from "../../../common/fs/write-file.injectable";
|
||||
import removePathInjectable from "../../../common/fs/remove.injectable";
|
||||
import execHelmInjectable from "../exec-helm/exec-helm.injectable";
|
||||
import kubeconfigManagerInjectable from "../../kubeconfig-manager/kubeconfig-manager.injectable";
|
||||
|
||||
export interface UpdateChartArgs {
|
||||
chart: string;
|
||||
@@ -28,7 +29,8 @@ const updateHelmReleaseInjectable = getInjectable({
|
||||
const execHelm = di.inject(execHelmInjectable);
|
||||
|
||||
return async (cluster: Cluster, releaseName: string, namespace: string, data: UpdateChartArgs) => {
|
||||
const proxyKubeconfig = await cluster.getProxyKubeconfigPath();
|
||||
const proxyKubeconfigManager = di.inject(kubeconfigManagerInjectable, cluster);
|
||||
const proxyKubeconfigPath = await proxyKubeconfigManager.ensurePath();
|
||||
const valuesFilePath = tempy.file({ name: "values.yaml" });
|
||||
|
||||
logger.debug(`[HELM]: upgrading "${releaseName}" in "${namespace}" to ${data.version}`);
|
||||
@@ -43,7 +45,7 @@ const updateHelmReleaseInjectable = getInjectable({
|
||||
"--version", data.version,
|
||||
"--values", valuesFilePath,
|
||||
"--namespace", namespace,
|
||||
"--kubeconfig", proxyKubeconfig,
|
||||
"--kubeconfig", proxyKubeconfigPath,
|
||||
]);
|
||||
|
||||
if (result.callWasSuccessful === false) {
|
||||
|
||||
Reference in new issue
Block a user