From 9ac5f21cd42b151826f97937a5cb7b51771ad42c Mon Sep 17 00:00:00 2001 From: Lauri Nevala Date: Fri, 25 Sep 2020 14:25:59 +0300 Subject: [PATCH] Add migration to fix kubeconfig paths that point to snap config dir Signed-off-by: Lauri Nevala --- src/migrations/cluster-store/index.ts | 2 ++ src/migrations/cluster-store/snap.ts | 30 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/migrations/cluster-store/snap.ts diff --git a/src/migrations/cluster-store/index.ts b/src/migrations/cluster-store/index.ts index d178d7106b..f35e8f6c9c 100644 --- a/src/migrations/cluster-store/index.ts +++ b/src/migrations/cluster-store/index.ts @@ -7,6 +7,7 @@ import version260Beta3 from "./2.6.0-beta.3" import version270Beta0 from "./2.7.0-beta.0" import version270Beta1 from "./2.7.0-beta.1" import version360Beta1 from "./3.6.0-beta.1" +import snap from "./snap" export default { ...version200Beta2, @@ -16,4 +17,5 @@ export default { ...version270Beta0, ...version270Beta1, ...version360Beta1, + ...snap } \ No newline at end of file diff --git a/src/migrations/cluster-store/snap.ts b/src/migrations/cluster-store/snap.ts new file mode 100644 index 0000000000..9d5910e189 --- /dev/null +++ b/src/migrations/cluster-store/snap.ts @@ -0,0 +1,30 @@ +// Fix embedded kubeconfig paths under snap config + +import { migration } from "../migration-wrapper"; +import { ClusterModel, ClusterStore } from "../../common/cluster-store"; +import { getAppVersion } from "../../common/utils/app-version"; + +export default migration({ + version: getAppVersion(), // Run always after upgrade + run(store, printLog) { + if (!process.env["SNAP"]) return; + + printLog("Migrating embedded kubeconfig paths") + const storedClusters: ClusterModel[] = store.get("clusters") || []; + if (!storedClusters.length) return; + + printLog("Number of clusters to migrate: ", storedClusters.length) + const migratedClusters = storedClusters + .map(cluster => { + /** + * replace snap version with 'current' in kubeconfig path + */ + const kubeconfigPath = cluster.kubeConfigPath.replace(/\/snap\/kontena-lens\/[0-9]*\//, "/snap/kontena-lens/current/") + cluster.kubeConfigPath = kubeconfigPath + return cluster; + }) + + + store.set("clusters", migratedClusters) + } +})