UNPKG

@takashito/linode-mcp-server

Version:

MCP server for Linode API

131 lines 5.71 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`); }, // 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`); }, // Control Plane ACL operations getControlPlaneACL: async (clusterId) => { const response = await axios.get(`/lke/clusters/${clusterId}/control_plane_acl`); return response.data; }, updateControlPlaneACL: async (clusterId, data) => { const response = await axios.put(`/lke/clusters/${clusterId}/control_plane_acl`, data); return response.data; }, deleteControlPlaneACL: async (clusterId) => { await axios.delete(`/lke/clusters/${clusterId}/control_plane_acl`); }, // Kubeconfig operations deleteKubeconfig: async (clusterId) => { await axios.delete(`/lke/clusters/${clusterId}/kubeconfig`); }, // Cluster regeneration regenerateCluster: async (clusterId) => { await axios.post(`/lke/clusters/${clusterId}/regenerate`); }, // Node operations (get) getNode: async (clusterId, nodeId) => { const response = await axios.get(`/lke/clusters/${clusterId}/nodes/${nodeId}`); return response.data; }, // Tier version operations getTierVersions: async (tier) => { const response = await axios.get(`https://api.linode.com/v4beta/lke/tiers/${tier}/versions`); return response.data.data; }, getTierVersion: async (tier, version) => { const response = await axios.get(`https://api.linode.com/v4beta/lke/tiers/${tier}/versions/${version}`); return response.data; }, // 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