UNPKG

@takashito/linode-mcp-server

Version:

MCP server for Linode API

100 lines 4.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createKubernetesClient = createKubernetesClient; /** * Creates a Kubernetes (LKE) client for interfacing with the Linode Kubernetes Engine API */ function createKubernetesClient(axios) { return { // Cluster operations getClusters: async (params) => { const response = await axios.get('/lke/clusters', { params }); return response.data; }, getCluster: async (id) => { const response = await axios.get(`/lke/clusters/${id}`); return response.data; }, createCluster: async (data) => { const response = await axios.post('/lke/clusters', data); return response.data; }, updateCluster: async (id, data) => { const response = await axios.put(`/lke/clusters/${id}`, data); return response.data; }, deleteCluster: async (id) => { await axios.delete(`/lke/clusters/${id}`); }, recycleCluster: async (id) => { await axios.post(`/lke/clusters/${id}/recycle`); }, upgradeCluster: async (id) => { await axios.post(`/lke/clusters/${id}/upgrade`); }, // Node pool operations getNodePools: async (clusterId) => { const response = await axios.get(`/lke/clusters/${clusterId}/pools`); // Linode API returns node pools as a paginated response, so extract the data array return response.data.data; }, getNodePool: async (clusterId, poolId) => { const response = await axios.get(`/lke/clusters/${clusterId}/pools/${poolId}`); return response.data; }, createNodePool: async (clusterId, data) => { const response = await axios.post(`/lke/clusters/${clusterId}/pools`, data); return response.data; }, updateNodePool: async (clusterId, poolId, data) => { const response = await axios.put(`/lke/clusters/${clusterId}/pools/${poolId}`, data); return response.data; }, deleteNodePool: async (clusterId, poolId) => { await axios.delete(`/lke/clusters/${clusterId}/pools/${poolId}`); }, recycleNodes: async (clusterId, poolId, data) => { await axios.post(`/lke/clusters/${clusterId}/pools/${poolId}/recycle`, data); }, // Node operations deleteNode: async (clusterId, nodeId) => { await axios.delete(`/lke/clusters/${clusterId}/nodes/${nodeId}`); }, recycleNode: async (clusterId, nodeId) => { await axios.post(`/lke/clusters/${clusterId}/nodes/${nodeId}/recycle`); }, // Cluster access getKubeconfig: async (id) => { const response = await axios.get(`/lke/clusters/${id}/kubeconfig`); return response.data; }, getAPIEndpoints: async (id) => { const response = await axios.get(`/lke/clusters/${id}/api-endpoints`); // Linode API returns endpoints as a paginated response, so extract the data array return response.data.data; }, getDashboardURL: async (id) => { const response = await axios.get(`/lke/clusters/${id}/dashboard`); return response.data; }, deleteServiceToken: async (id) => { await axios.delete(`/lke/clusters/${id}/servicetoken`); }, // Version and type information getVersions: async () => { const response = await axios.get('/lke/versions'); // Linode API returns versions as a paginated response, so extract the data array return response.data.data; }, getVersion: async (version) => { const response = await axios.get(`/lke/versions/${version}`); return response.data; }, getTypes: async () => { const response = await axios.get('/lke/types'); // Linode API returns types as a paginated response, so extract the data array return response.data.data; } }; } //# sourceMappingURL=kubernetes.js.map