mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* unify build fs layout Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * use currentApp path for static files Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * lint fix Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * allow to import open-lens Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * allow to customize both main & renderer Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix compile-library script Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * remove bundled extensions Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * similar interface for both main & renderer Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * use startApp on both sides Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix startApp import Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix startApp import Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * Fix injection cycle (somehow) Signed-off-by: Sebastian Malton <sebastian@malton.name> * use cwd in download_binaries Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * introduce applicationInformationToken Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * register applicationInformationInjectable in main & renderer Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * allow to define bundled extensions via appStart Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * compile node-fetch automatically via prepare Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * define peerDependencies Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * webpack fixes Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * rename application-information-token.injectable.ts -> application-information-token.ts Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * monaco-editor as externals Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * refactor application-information Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * introduce bundledExtensionInjectionToken Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * mark library exports as experimental Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * move extension npm package files & add release automation Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * add missing build files to package Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix bad merge conflict resolve Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix package.json name Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * allow to set mode via startApp Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * revert unnecessary changes Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * webpack: fix extensionOutDir Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * remove unnecessary peerDependencies Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * introduce nodeEnvInjectionToken Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * remove NODE_ENV from environmentVariablesInjectable Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix jest modulePathIgnorePatterns Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix duplicate injectable registration Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix build executableName Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> Signed-off-by: Sebastian Malton <sebastian@malton.name> Co-authored-by: Sebastian Malton <sebastian@malton.name>
61 lines
2.1 KiB
TypeScript
61 lines
2.1 KiB
TypeScript
/**
|
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
*/
|
|
|
|
// Fix embedded kubeconfig paths under snap config
|
|
|
|
import { getInjectable } from "@ogre-tools/injectable";
|
|
import applicationInformationToken from "../../../common/vars/application-information-token";
|
|
import { clusterStoreMigrationInjectionToken } from "../../../common/cluster-store/migration-token";
|
|
import loggerInjectable from "../../../common/logger.injectable";
|
|
import isSnapPackageInjectable from "../../../common/vars/is-snap-package.injectable";
|
|
import type { ClusterModel } from "../../../common/cluster-types";
|
|
import pathExistsSyncInjectable from "../../../common/fs/path-exists-sync.injectable";
|
|
|
|
const clusterStoreSnapMigrationInjectable = getInjectable({
|
|
id: "cluster-store-snap-migration",
|
|
instantiate: (di) => {
|
|
const { version } = di.inject(applicationInformationToken);
|
|
const logger = di.inject(loggerInjectable);
|
|
const isSnapPackage = di.inject(isSnapPackageInjectable);
|
|
const pathExistsSync = di.inject(pathExistsSyncInjectable);
|
|
|
|
return {
|
|
version, // Run always after upgrade
|
|
run(store) {
|
|
if (!isSnapPackage) {
|
|
return;
|
|
}
|
|
|
|
logger.info("Migrating embedded kubeconfig paths");
|
|
const storedClusters = (store.get("clusters") || []) as ClusterModel[];
|
|
|
|
if (!storedClusters.length) return;
|
|
|
|
logger.info("Number of clusters to migrate: ", storedClusters.length);
|
|
const migratedClusters = storedClusters
|
|
.map(cluster => {
|
|
/**
|
|
* replace snap version with 'current' in kubeconfig path
|
|
*/
|
|
if (!pathExistsSync(cluster.kubeConfigPath)) {
|
|
const kubeconfigPath = cluster.kubeConfigPath.replace(/\/snap\/kontena-lens\/[0-9]*\//, "/snap/kontena-lens/current/");
|
|
|
|
cluster.kubeConfigPath = kubeconfigPath;
|
|
}
|
|
|
|
return cluster;
|
|
});
|
|
|
|
|
|
store.set("clusters", migratedClusters);
|
|
},
|
|
};
|
|
},
|
|
injectionToken: clusterStoreMigrationInjectionToken,
|
|
});
|
|
|
|
export default clusterStoreSnapMigrationInjectable;
|
|
|