mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
move config route to main
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
1 parent
f0716e7a28
commit
47d82e4d62
6 files changed
+71
-58
No files matched your search
@@ -8,7 +8,7 @@ import compression from "compression"
|
||||
import helmet from "helmet"
|
||||
import morgan from "morgan"
|
||||
import { logger } from "../server/utils/logger"
|
||||
import { configRoute, kubewatchRoute, metricsRoute, readyStateRoute } from "../server/routes";
|
||||
import { kubewatchRoute, metricsRoute, readyStateRoute } from "../server/routes";
|
||||
import { useRequestHeaderToken } from "../server/middlewares";
|
||||
|
||||
const {
|
||||
@@ -23,7 +23,6 @@ const outputDir = path.resolve(process.cwd(), BUILD_DIR, CLIENT_DIR);
|
||||
app.set('trust proxy', 1); // trust first proxy
|
||||
|
||||
localApis.use(
|
||||
configRoute(),
|
||||
readyStateRoute(),
|
||||
kubewatchRoute(),
|
||||
metricsRoute()
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
export interface IClusterConfigMap {
|
||||
clusterName: string;
|
||||
clusterUrl: string;
|
||||
}
|
||||
|
||||
export interface IClusterInfo extends IClusterConfigMap {
|
||||
export interface IClusterInfo {
|
||||
kubeVersion?: string;
|
||||
pharosVersion?: string;
|
||||
clusterName?: string;
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
//-- Config route
|
||||
|
||||
import config from "../config";
|
||||
import { IConfig } from "../common/config"
|
||||
import { Router } from "express";
|
||||
import { userSession } from "../user-session";
|
||||
import { getClusterInfo } from "../api/get-cluster-info";
|
||||
import { isClusterAdmin } from "../api/is-cluster-admin";
|
||||
import { getAllowedNamespaces } from "../api/get-namespaces";
|
||||
import { parseJwt } from "../utils/parse-jwt";
|
||||
|
||||
export function configRoute() {
|
||||
const router = Router();
|
||||
|
||||
router.route('/config')
|
||||
.get(async (req, res) => {
|
||||
const { username, authHeader } = userSession.get(req);
|
||||
const authToken = userSession.getToken(req);
|
||||
|
||||
const data: IConfig = {
|
||||
clusterName: config.KUBE_CLUSTER_NAME,
|
||||
lensVersion: config.LENS_VERSION,
|
||||
lensTheme: config.LENS_THEME,
|
||||
chartsEnabled: !!config.CHARTS_ENABLED,
|
||||
kubectlAccess: !!req.headers["x-lens-kubectl-token"]
|
||||
};
|
||||
|
||||
// load config data from other places
|
||||
const loading: Promise<any>[] = [
|
||||
getClusterInfo().then(info => Object.assign(data, info)),
|
||||
];
|
||||
|
||||
// validate user token from session and fetch more config data
|
||||
if (authToken) {
|
||||
const { sub, email } = parseJwt(authToken);
|
||||
data.username = email || sub || username;
|
||||
data.token = authToken;
|
||||
loading.push(
|
||||
isClusterAdmin({ authHeader }).then(isAdmin => data.isClusterAdmin = isAdmin),
|
||||
getAllowedNamespaces({ authHeader }).then(list => data.allowedNamespaces = list),
|
||||
);
|
||||
}
|
||||
await Promise.all(loading);
|
||||
res.json(data);
|
||||
});
|
||||
|
||||
return router;
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
export * from "./config-route"
|
||||
export * from "./kubewatch-route"
|
||||
export * from "./metrics-route"
|
||||
export * from "./ready-state-route"
|
||||
Reference in new issue
Block a user