From 02e1104452337a35df802b91a188b3165939ead1 Mon Sep 17 00:00:00 2001 From: djeinstine Date: Thu, 17 Oct 2024 13:56:35 +0000 Subject: [PATCH] replaced getKubeConfig with getKubeArguments to be in line with getDockerArguments --- .../api/kubernetes/stats/[...service].js | 4 +-- .../api/kubernetes/status/[...service].js | 4 +-- src/pages/api/widgets/kubernetes.js | 4 +-- src/utils/config/kubernetes.js | 26 ++++++++++++++----- src/utils/config/service-helpers.js | 4 +-- src/utils/kubernetes/kubernetes-crd.js | 0 6 files changed, 28 insertions(+), 14 deletions(-) create mode 100644 src/utils/kubernetes/kubernetes-crd.js diff --git a/src/pages/api/kubernetes/stats/[...service].js b/src/pages/api/kubernetes/stats/[...service].js index b1bf8345..89554eec 100644 --- a/src/pages/api/kubernetes/stats/[...service].js +++ b/src/pages/api/kubernetes/stats/[...service].js @@ -1,6 +1,6 @@ import { CoreV1Api, Metrics } from "@kubernetes/client-node"; -import getKubeConfig from "../../../../utils/config/kubernetes"; +import getKubeArguments from "../../../../utils/config/kubernetes"; import { parseCpu, parseMemory } from "../../../../utils/kubernetes/kubernetes-utils"; import createLogger from "../../../../utils/logger"; @@ -20,7 +20,7 @@ export default async function handler(req, res) { const labelSelector = podSelector !== undefined ? podSelector : `${APP_LABEL}=${appName}`; try { - const kc = getKubeConfig(); + const kc = getKubeArguments().config; if (!kc) { res.status(500).send({ error: "No kubernetes configuration", diff --git a/src/pages/api/kubernetes/status/[...service].js b/src/pages/api/kubernetes/status/[...service].js index e50d726c..bae2e98f 100644 --- a/src/pages/api/kubernetes/status/[...service].js +++ b/src/pages/api/kubernetes/status/[...service].js @@ -1,6 +1,6 @@ import { CoreV1Api } from "@kubernetes/client-node"; -import getKubeConfig from "../../../../utils/config/kubernetes"; +import getKubeArguments from "../../../../utils/config/kubernetes"; import createLogger from "../../../../utils/logger"; const logger = createLogger("kubernetesStatusService"); @@ -18,7 +18,7 @@ export default async function handler(req, res) { } const labelSelector = podSelector !== undefined ? podSelector : `${APP_LABEL}=${appName}`; try { - const kc = getKubeConfig(); + const kc = getKubeArguments().config; if (!kc) { res.status(500).send({ error: "No kubernetes configuration", diff --git a/src/pages/api/widgets/kubernetes.js b/src/pages/api/widgets/kubernetes.js index 778a6aa1..eadb77cc 100644 --- a/src/pages/api/widgets/kubernetes.js +++ b/src/pages/api/widgets/kubernetes.js @@ -1,6 +1,6 @@ import { CoreV1Api, Metrics } from "@kubernetes/client-node"; -import getKubeConfig from "../../../utils/config/kubernetes"; +import getKubeArguments from "../../../utils/config/kubernetes"; import { parseCpu, parseMemory } from "../../../utils/kubernetes/kubernetes-utils"; import createLogger from "../../../utils/logger"; @@ -8,7 +8,7 @@ const logger = createLogger("kubernetes-widget"); export default async function handler(req, res) { try { - const kc = getKubeConfig(); + const kc = getKubeArguments().config; if (!kc) { return res.status(500).send({ error: "No kubernetes configuration", diff --git a/src/utils/config/kubernetes.js b/src/utils/config/kubernetes.js index 6693a98d..14dcb082 100644 --- a/src/utils/config/kubernetes.js +++ b/src/utils/config/kubernetes.js @@ -6,26 +6,40 @@ import { KubeConfig } from "@kubernetes/client-node"; import checkAndCopyConfig, { CONF_DIR, substituteEnvironmentVars } from "utils/config/config"; -export default function getKubeConfig() { +const extractKubeData = (config) => { + + //kubeconfig + const kc = new KubeConfig(); + kc.loadFromCluster() + //route + let route="ingress"; + if (config?.route=="gateway"){ + route="gateway"; + } + return {"config":kc, + "route":route}; +} + +export default function getKubeArguments() { checkAndCopyConfig("kubernetes.yaml"); const configFile = path.join(CONF_DIR, "kubernetes.yaml"); const rawConfigData = readFileSync(configFile, "utf8"); const configData = substituteEnvironmentVars(rawConfigData); const config = yaml.load(configData); - const kc = new KubeConfig(); + let kubeData; switch (config?.mode) { case "cluster": - kc.loadFromCluster(); + kubeData = extractKubeData(config); break; case "default": - kc.loadFromDefault(); + kubeData = extractKubeData(config); break; case "disabled": default: - return null; + kubeData=null; } - return kc; + return kubeData; } diff --git a/src/utils/config/service-helpers.js b/src/utils/config/service-helpers.js index 9d55ce43..b4ed1252 100644 --- a/src/utils/config/service-helpers.js +++ b/src/utils/config/service-helpers.js @@ -8,7 +8,7 @@ import { CustomObjectsApi, NetworkingV1Api, ApiextensionsV1Api } from "@kubernet import createLogger from "utils/logger"; import checkAndCopyConfig, { CONF_DIR, getSettings, substituteEnvironmentVars } from "utils/config/config"; import getDockerArguments from "utils/config/docker"; -import getKubeConfig from "utils/config/kubernetes"; +import getKubeArguments from "utils/config/kubernetes"; import * as shvl from "utils/config/shvl"; const logger = createLogger("service-helpers"); @@ -186,7 +186,7 @@ export async function servicesFromKubernetes() { checkAndCopyConfig("kubernetes.yaml"); try { - const kc = getKubeConfig(); + const kc = getKubeArguments().config; if (!kc) { return []; } diff --git a/src/utils/kubernetes/kubernetes-crd.js b/src/utils/kubernetes/kubernetes-crd.js new file mode 100644 index 00000000..e69de29b