diff --git a/backend/src/plugins/kube.ts b/backend/src/plugins/kube.ts index c3263f79d0..ee1d78c87f 100644 --- a/backend/src/plugins/kube.ts +++ b/backend/src/plugins/kube.ts @@ -5,6 +5,7 @@ import * as jsYaml from 'js-yaml'; import * as k8s from '@kubernetes/client-node'; import { DEV_MODE } from '../utils/constants'; import { cleanupDSPSuffix, initializeWatchedResources } from '../utils/resourceUtils'; +import { User } from '@kubernetes/client-node/dist/config_types'; const CONSOLE_CONFIG_YAML_FIELD = 'console-config.yaml'; @@ -27,6 +28,14 @@ export default fp(async (fastify: FastifyInstance) => { fastify.log.error(e, 'Failed to retrieve current namespace'); } + let currentToken; + try { + currentToken = await getCurrentToken(currentUser); + } catch (e) { + currentToken = ''; + fastify.log.error(e, 'Failed to retrieve current token'); + } + let clusterID; try { const clusterVersion = await customObjectsApi.getClusterCustomObject( @@ -64,6 +73,7 @@ export default fp(async (fastify: FastifyInstance) => { batchV1Api, customObjectsApi, currentUser, + currentToken, clusterID, clusterBranding, rbac, @@ -103,3 +113,21 @@ const getCurrentNamespace = async () => { } }); }; + +const getCurrentToken = async (currentUser: User) => { + return new Promise((resolve, reject) => { + if (currentContext === 'inClusterContext') { + const location = + currentUser?.authProvider?.config?.tokenFile || + '/var/run/secrets/kubernetes.io/serviceaccount/token'; + fs.readFile(location, 'utf8', (err, data) => { + if (err) { + reject(err); + } + resolve(data); + }); + } else { + resolve(currentUser?.token || ''); + } + }); +}; diff --git a/backend/src/routes/api/gpu/gpuUtils.ts b/backend/src/routes/api/gpu/gpuUtils.ts index 9eade85cc8..28a58d2e63 100644 --- a/backend/src/routes/api/gpu/gpuUtils.ts +++ b/backend/src/routes/api/gpu/gpuUtils.ts @@ -33,12 +33,12 @@ export const getGPUNumber = async (fastify: KubeFastifyInstance): Promise