Skip to main content
Glama

Multi-Cluster MCP Server

by yanmxa
kubeconfig.ts1.52 kB
import * as k8s from '@kubernetes/client-node'; import * as fs from 'fs'; import * as path from 'path'; export function generateKubeconfig(secret: k8s.V1Secret, clusterToServerAPIMap: Map<string, string>): string { const secretData = secret.data; const cluster = secret.metadata?.namespace || "" if (!secretData || !secretData["ca.crt"] || !secretData["token"]) { return `Secret ${secret.metadata?.namespace}/ ${secret.metadata?.name} contain a valid token or ca.crt.`; } const caCrt = secretData["ca.crt"]; // Step 2: Decode Secret Data (Base64 -> String) const token = Buffer.from(secretData["token"], "base64").toString("utf-8"); const server = clusterToServerAPIMap.get(cluster) if (!server) { return "No current cluster server URL found in the clusters" } // Step 3: Construct the Kubeconfig YAML String const kubeconfigYaml = `apiVersion: v1 kind: Config clusters: - name: cluster cluster: certificate-authority-data: ${caCrt} server: ${server} contexts: - name: context context: cluster: cluster user: user namespace: ${cluster} current-context: context users: - name: user user: token: ${token} `; // Step 4: Write to kubeconfig.yaml File const fullPath = path.resolve(getKubeconfigPath(cluster)); fs.writeFileSync(fullPath, kubeconfigYaml); // console.log(`Kubeconfig file created: ${fullPath}`); return ""; } export function getKubeconfigPath(cluster: string): string { return `/tmp/multicluster-mcp-server-kubeconfig.${cluster}` }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yanmxa/multicluster-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server