"Fossies" - the Fresh Open Source Software Archive

Member "lens-5.3.3/src/migrations/cluster-store/2.6.0-beta.3.ts" (14 Dec 2021, 2490 Bytes) of package /linux/misc/lens-5.3.3.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) TypeScript source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "2.6.0-beta.3.ts": 5.2.7_vs_5.3.0.

    1 /**
    2  * Copyright (c) 2021 OpenLens Authors
    3  *
    4  * Permission is hereby granted, free of charge, to any person obtaining a copy of
    5  * this software and associated documentation files (the "Software"), to deal in
    6  * the Software without restriction, including without limitation the rights to
    7  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
    8  * the Software, and to permit persons to whom the Software is furnished to do so,
    9  * subject to the following conditions:
   10  *
   11  * The above copyright notice and this permission notice shall be included in all
   12  * copies or substantial portions of the Software.
   13  *
   14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
   16  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
   17  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
   18  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
   19  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   20  */
   21 
   22 import yaml from "js-yaml";
   23 import { MigrationDeclaration, migrationLog } from "../helpers";
   24 
   25 export default {
   26   version: "2.6.0-beta.3",
   27   run(store) {
   28     for (const value of store) {
   29       const clusterKey = value[0];
   30 
   31       if (clusterKey === "__internal__") continue;
   32       const cluster = value[1];
   33 
   34       if (!cluster.kubeConfig) continue;
   35       const config = yaml.load(cluster.kubeConfig);
   36 
   37       if (!config || typeof config !== "object" || !config.hasOwnProperty("users")) {
   38         continue;
   39       }
   40 
   41       const kubeConfig = config as Record<string, any>;
   42       const userObj = kubeConfig.users[0];
   43 
   44       if (userObj) {
   45         const user = userObj.user;
   46 
   47         if (user["auth-provider"] && user["auth-provider"].config) {
   48           const authConfig = user["auth-provider"].config;
   49 
   50           if (authConfig["access-token"]) {
   51             authConfig["access-token"] = `${authConfig["access-token"]}`;
   52           }
   53 
   54           if (authConfig.expiry) {
   55             authConfig.expiry = `${authConfig.expiry}`;
   56           }
   57           migrationLog(authConfig);
   58           user["auth-provider"].config = authConfig;
   59           kubeConfig.users = [{
   60             name: userObj.name,
   61             user,
   62           }];
   63           cluster.kubeConfig = yaml.dump(kubeConfig);
   64           store.set(clusterKey, cluster);
   65         }
   66       }
   67     }
   68   },
   69 } as MigrationDeclaration;