kubeview-mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.prettierrc.json +11 -0
- package/CHANGELOG.md +55 -0
- package/LICENSE +21 -0
- package/README.md +251 -0
- package/RELEASE.md +154 -0
- package/TODO.md +0 -0
- package/bin/kubeview-mcp.js +274 -0
- package/bin/setup.js +368 -0
- package/dist/src/cli/cli.d.ts +3 -0
- package/dist/src/cli/cli.d.ts.map +1 -0
- package/dist/src/cli/cli.js +23 -0
- package/dist/src/cli/cli.js.map +1 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +45 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/kubernetes/BaseResourceOperations.d.ts +155 -0
- package/dist/src/kubernetes/BaseResourceOperations.d.ts.map +1 -0
- package/dist/src/kubernetes/BaseResourceOperations.js +136 -0
- package/dist/src/kubernetes/BaseResourceOperations.js.map +1 -0
- package/dist/src/kubernetes/CircuitBreaker.d.ts +182 -0
- package/dist/src/kubernetes/CircuitBreaker.d.ts.map +1 -0
- package/dist/src/kubernetes/CircuitBreaker.js +369 -0
- package/dist/src/kubernetes/CircuitBreaker.js.map +1 -0
- package/dist/src/kubernetes/ConnectionManager.d.ts +60 -0
- package/dist/src/kubernetes/ConnectionManager.d.ts.map +1 -0
- package/dist/src/kubernetes/ConnectionManager.js +77 -0
- package/dist/src/kubernetes/ConnectionManager.js.map +1 -0
- package/dist/src/kubernetes/ConnectionPool.d.ts +183 -0
- package/dist/src/kubernetes/ConnectionPool.d.ts.map +1 -0
- package/dist/src/kubernetes/ConnectionPool.js +437 -0
- package/dist/src/kubernetes/ConnectionPool.js.map +1 -0
- package/dist/src/kubernetes/ErrorHandler.d.ts +172 -0
- package/dist/src/kubernetes/ErrorHandler.d.ts.map +1 -0
- package/dist/src/kubernetes/ErrorHandler.js +328 -0
- package/dist/src/kubernetes/ErrorHandler.js.map +1 -0
- package/dist/src/kubernetes/ErrorHandling.d.ts +148 -0
- package/dist/src/kubernetes/ErrorHandling.d.ts.map +1 -0
- package/dist/src/kubernetes/ErrorHandling.js +304 -0
- package/dist/src/kubernetes/ErrorHandling.js.map +1 -0
- package/dist/src/kubernetes/KubernetesClient.d.ts +162 -0
- package/dist/src/kubernetes/KubernetesClient.d.ts.map +1 -0
- package/dist/src/kubernetes/KubernetesClient.js +382 -0
- package/dist/src/kubernetes/KubernetesClient.js.map +1 -0
- package/dist/src/kubernetes/ResourceOperations.d.ts +69 -0
- package/dist/src/kubernetes/ResourceOperations.d.ts.map +1 -0
- package/dist/src/kubernetes/ResourceOperations.js +99 -0
- package/dist/src/kubernetes/ResourceOperations.js.map +1 -0
- package/dist/src/kubernetes/RetryStrategy.d.ts +137 -0
- package/dist/src/kubernetes/RetryStrategy.d.ts.map +1 -0
- package/dist/src/kubernetes/RetryStrategy.js +277 -0
- package/dist/src/kubernetes/RetryStrategy.js.map +1 -0
- package/dist/src/kubernetes/RetryableOperation.d.ts +118 -0
- package/dist/src/kubernetes/RetryableOperation.d.ts.map +1 -0
- package/dist/src/kubernetes/RetryableOperation.js +233 -0
- package/dist/src/kubernetes/RetryableOperation.js.map +1 -0
- package/dist/src/kubernetes/index.d.ts +18 -0
- package/dist/src/kubernetes/index.d.ts.map +1 -0
- package/dist/src/kubernetes/index.js +28 -0
- package/dist/src/kubernetes/index.js.map +1 -0
- package/dist/src/kubernetes/resources/ConfigMapOperations.d.ts +60 -0
- package/dist/src/kubernetes/resources/ConfigMapOperations.d.ts.map +1 -0
- package/dist/src/kubernetes/resources/ConfigMapOperations.js +306 -0
- package/dist/src/kubernetes/resources/ConfigMapOperations.js.map +1 -0
- package/dist/src/kubernetes/resources/CustomResourceOperations.d.ts +55 -0
- package/dist/src/kubernetes/resources/CustomResourceOperations.d.ts.map +1 -0
- package/dist/src/kubernetes/resources/CustomResourceOperations.js +363 -0
- package/dist/src/kubernetes/resources/CustomResourceOperations.js.map +1 -0
- package/dist/src/kubernetes/resources/DeploymentOperations.d.ts +66 -0
- package/dist/src/kubernetes/resources/DeploymentOperations.d.ts.map +1 -0
- package/dist/src/kubernetes/resources/DeploymentOperations.js +234 -0
- package/dist/src/kubernetes/resources/DeploymentOperations.js.map +1 -0
- package/dist/src/kubernetes/resources/IngressOperations.d.ts +60 -0
- package/dist/src/kubernetes/resources/IngressOperations.d.ts.map +1 -0
- package/dist/src/kubernetes/resources/IngressOperations.js +224 -0
- package/dist/src/kubernetes/resources/IngressOperations.js.map +1 -0
- package/dist/src/kubernetes/resources/MetricOperations.d.ts +218 -0
- package/dist/src/kubernetes/resources/MetricOperations.d.ts.map +1 -0
- package/dist/src/kubernetes/resources/MetricOperations.js +893 -0
- package/dist/src/kubernetes/resources/MetricOperations.js.map +1 -0
- package/dist/src/kubernetes/resources/NamespaceOperations.d.ts +38 -0
- package/dist/src/kubernetes/resources/NamespaceOperations.d.ts.map +1 -0
- package/dist/src/kubernetes/resources/NamespaceOperations.js +101 -0
- package/dist/src/kubernetes/resources/NamespaceOperations.js.map +1 -0
- package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.d.ts +109 -0
- package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.d.ts.map +1 -0
- package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.js +383 -0
- package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.js.map +1 -0
- package/dist/src/kubernetes/resources/PersistentVolumeOperations.d.ts +97 -0
- package/dist/src/kubernetes/resources/PersistentVolumeOperations.d.ts.map +1 -0
- package/dist/src/kubernetes/resources/PersistentVolumeOperations.js +321 -0
- package/dist/src/kubernetes/resources/PersistentVolumeOperations.js.map +1 -0
- package/dist/src/kubernetes/resources/PodOperations.d.ts +99 -0
- package/dist/src/kubernetes/resources/PodOperations.d.ts.map +1 -0
- package/dist/src/kubernetes/resources/PodOperations.js +333 -0
- package/dist/src/kubernetes/resources/PodOperations.js.map +1 -0
- package/dist/src/kubernetes/resources/SecretOperations.d.ts +71 -0
- package/dist/src/kubernetes/resources/SecretOperations.d.ts.map +1 -0
- package/dist/src/kubernetes/resources/SecretOperations.js +254 -0
- package/dist/src/kubernetes/resources/SecretOperations.js.map +1 -0
- package/dist/src/kubernetes/resources/ServiceOperations.d.ts +64 -0
- package/dist/src/kubernetes/resources/ServiceOperations.d.ts.map +1 -0
- package/dist/src/kubernetes/resources/ServiceOperations.js +232 -0
- package/dist/src/kubernetes/resources/ServiceOperations.js.map +1 -0
- package/dist/src/kubernetes/utils/ResourceUtils.d.ts +238 -0
- package/dist/src/kubernetes/utils/ResourceUtils.d.ts.map +1 -0
- package/dist/src/kubernetes/utils/ResourceUtils.js +439 -0
- package/dist/src/kubernetes/utils/ResourceUtils.js.map +1 -0
- package/dist/src/plugins/ArgoCDToolsPlugin.d.ts +45 -0
- package/dist/src/plugins/ArgoCDToolsPlugin.d.ts.map +1 -0
- package/dist/src/plugins/ArgoCDToolsPlugin.js +155 -0
- package/dist/src/plugins/ArgoCDToolsPlugin.js.map +1 -0
- package/dist/src/plugins/ArgoToolsPlugin.d.ts +45 -0
- package/dist/src/plugins/ArgoToolsPlugin.d.ts.map +1 -0
- package/dist/src/plugins/ArgoToolsPlugin.js +149 -0
- package/dist/src/plugins/ArgoToolsPlugin.js.map +1 -0
- package/dist/src/plugins/HelmToolsPlugin.d.ts +41 -0
- package/dist/src/plugins/HelmToolsPlugin.d.ts.map +1 -0
- package/dist/src/plugins/HelmToolsPlugin.js +146 -0
- package/dist/src/plugins/HelmToolsPlugin.js.map +1 -0
- package/dist/src/plugins/KubernetesToolsPlugin.d.ts +44 -0
- package/dist/src/plugins/KubernetesToolsPlugin.d.ts.map +1 -0
- package/dist/src/plugins/KubernetesToolsPlugin.js +159 -0
- package/dist/src/plugins/KubernetesToolsPlugin.js.map +1 -0
- package/dist/src/plugins/SamplePlugin.d.ts +12 -0
- package/dist/src/plugins/SamplePlugin.d.ts.map +1 -0
- package/dist/src/plugins/SamplePlugin.js +51 -0
- package/dist/src/plugins/SamplePlugin.js.map +1 -0
- package/dist/src/plugins/index.d.ts +5 -0
- package/dist/src/plugins/index.d.ts.map +1 -0
- package/dist/src/plugins/index.js +5 -0
- package/dist/src/plugins/index.js.map +1 -0
- package/dist/src/server/MCPServer.d.ts +93 -0
- package/dist/src/server/MCPServer.d.ts.map +1 -0
- package/dist/src/server/MCPServer.js +398 -0
- package/dist/src/server/MCPServer.js.map +1 -0
- package/dist/src/tools/argo/ArgoCronListTool.d.ts +10 -0
- package/dist/src/tools/argo/ArgoCronListTool.d.ts.map +1 -0
- package/dist/src/tools/argo/ArgoCronListTool.js +70 -0
- package/dist/src/tools/argo/ArgoCronListTool.js.map +1 -0
- package/dist/src/tools/argo/ArgoGetTool.d.ts +10 -0
- package/dist/src/tools/argo/ArgoGetTool.d.ts.map +1 -0
- package/dist/src/tools/argo/ArgoGetTool.js +80 -0
- package/dist/src/tools/argo/ArgoGetTool.js.map +1 -0
- package/dist/src/tools/argo/ArgoListTool.d.ts +10 -0
- package/dist/src/tools/argo/ArgoListTool.d.ts.map +1 -0
- package/dist/src/tools/argo/ArgoListTool.js +133 -0
- package/dist/src/tools/argo/ArgoListTool.js.map +1 -0
- package/dist/src/tools/argo/ArgoLogsTool.d.ts +10 -0
- package/dist/src/tools/argo/ArgoLogsTool.d.ts.map +1 -0
- package/dist/src/tools/argo/ArgoLogsTool.js +117 -0
- package/dist/src/tools/argo/ArgoLogsTool.js.map +1 -0
- package/dist/src/tools/argo/BaseTool.d.ts +60 -0
- package/dist/src/tools/argo/BaseTool.d.ts.map +1 -0
- package/dist/src/tools/argo/BaseTool.js +51 -0
- package/dist/src/tools/argo/BaseTool.js.map +1 -0
- package/dist/src/tools/argo/index.d.ts +7 -0
- package/dist/src/tools/argo/index.d.ts.map +1 -0
- package/dist/src/tools/argo/index.js +6 -0
- package/dist/src/tools/argo/index.js.map +1 -0
- package/dist/src/tools/argocd/ArgoCDAppGetTool.d.ts +10 -0
- package/dist/src/tools/argocd/ArgoCDAppGetTool.d.ts.map +1 -0
- package/dist/src/tools/argocd/ArgoCDAppGetTool.js +97 -0
- package/dist/src/tools/argocd/ArgoCDAppGetTool.js.map +1 -0
- package/dist/src/tools/argocd/ArgoCDAppHistoryTool.d.ts +10 -0
- package/dist/src/tools/argocd/ArgoCDAppHistoryTool.d.ts.map +1 -0
- package/dist/src/tools/argocd/ArgoCDAppHistoryTool.js +80 -0
- package/dist/src/tools/argocd/ArgoCDAppHistoryTool.js.map +1 -0
- package/dist/src/tools/argocd/ArgoCDAppListTool.d.ts +10 -0
- package/dist/src/tools/argocd/ArgoCDAppListTool.d.ts.map +1 -0
- package/dist/src/tools/argocd/ArgoCDAppListTool.js +128 -0
- package/dist/src/tools/argocd/ArgoCDAppListTool.js.map +1 -0
- package/dist/src/tools/argocd/ArgoCDAppLogsTool.d.ts +10 -0
- package/dist/src/tools/argocd/ArgoCDAppLogsTool.d.ts.map +1 -0
- package/dist/src/tools/argocd/ArgoCDAppLogsTool.js +143 -0
- package/dist/src/tools/argocd/ArgoCDAppLogsTool.js.map +1 -0
- package/dist/src/tools/argocd/ArgoCDAppResourcesTool.d.ts +10 -0
- package/dist/src/tools/argocd/ArgoCDAppResourcesTool.d.ts.map +1 -0
- package/dist/src/tools/argocd/ArgoCDAppResourcesTool.js +123 -0
- package/dist/src/tools/argocd/ArgoCDAppResourcesTool.js.map +1 -0
- package/dist/src/tools/argocd/BaseTool.d.ts +71 -0
- package/dist/src/tools/argocd/BaseTool.d.ts.map +1 -0
- package/dist/src/tools/argocd/BaseTool.js +62 -0
- package/dist/src/tools/argocd/BaseTool.js.map +1 -0
- package/dist/src/tools/argocd/index.d.ts +8 -0
- package/dist/src/tools/argocd/index.d.ts.map +1 -0
- package/dist/src/tools/argocd/index.js +7 -0
- package/dist/src/tools/argocd/index.js.map +1 -0
- package/dist/src/tools/helm/BaseTool.d.ts +51 -0
- package/dist/src/tools/helm/BaseTool.d.ts.map +1 -0
- package/dist/src/tools/helm/BaseTool.js +42 -0
- package/dist/src/tools/helm/BaseTool.js.map +1 -0
- package/dist/src/tools/helm/HelmGetHooksTool.d.ts +10 -0
- package/dist/src/tools/helm/HelmGetHooksTool.d.ts.map +1 -0
- package/dist/src/tools/helm/HelmGetHooksTool.js +38 -0
- package/dist/src/tools/helm/HelmGetHooksTool.js.map +1 -0
- package/dist/src/tools/helm/HelmGetManifestTool.d.ts +10 -0
- package/dist/src/tools/helm/HelmGetManifestTool.d.ts.map +1 -0
- package/dist/src/tools/helm/HelmGetManifestTool.js +38 -0
- package/dist/src/tools/helm/HelmGetManifestTool.js.map +1 -0
- package/dist/src/tools/helm/HelmGetNotesTool.d.ts +10 -0
- package/dist/src/tools/helm/HelmGetNotesTool.d.ts.map +1 -0
- package/dist/src/tools/helm/HelmGetNotesTool.js +38 -0
- package/dist/src/tools/helm/HelmGetNotesTool.js.map +1 -0
- package/dist/src/tools/helm/HelmGetResourcesTool.d.ts +13 -0
- package/dist/src/tools/helm/HelmGetResourcesTool.d.ts.map +1 -0
- package/dist/src/tools/helm/HelmGetResourcesTool.js +124 -0
- package/dist/src/tools/helm/HelmGetResourcesTool.js.map +1 -0
- package/dist/src/tools/helm/HelmGetValuesTool.d.ts +10 -0
- package/dist/src/tools/helm/HelmGetValuesTool.d.ts.map +1 -0
- package/dist/src/tools/helm/HelmGetValuesTool.js +54 -0
- package/dist/src/tools/helm/HelmGetValuesTool.js.map +1 -0
- package/dist/src/tools/helm/HelmHistoryTool.d.ts +10 -0
- package/dist/src/tools/helm/HelmHistoryTool.d.ts.map +1 -0
- package/dist/src/tools/helm/HelmHistoryTool.js +49 -0
- package/dist/src/tools/helm/HelmHistoryTool.js.map +1 -0
- package/dist/src/tools/helm/HelmListTool.d.ts +10 -0
- package/dist/src/tools/helm/HelmListTool.d.ts.map +1 -0
- package/dist/src/tools/helm/HelmListTool.js +107 -0
- package/dist/src/tools/helm/HelmListTool.js.map +1 -0
- package/dist/src/tools/helm/HelmListWithResourcesTool.d.ts +14 -0
- package/dist/src/tools/helm/HelmListWithResourcesTool.d.ts.map +1 -0
- package/dist/src/tools/helm/HelmListWithResourcesTool.js +175 -0
- package/dist/src/tools/helm/HelmListWithResourcesTool.js.map +1 -0
- package/dist/src/tools/helm/HelmStatusTool.d.ts +10 -0
- package/dist/src/tools/helm/HelmStatusTool.d.ts.map +1 -0
- package/dist/src/tools/helm/HelmStatusTool.js +54 -0
- package/dist/src/tools/helm/HelmStatusTool.js.map +1 -0
- package/dist/src/tools/helm/index.d.ts +12 -0
- package/dist/src/tools/helm/index.d.ts.map +1 -0
- package/dist/src/tools/helm/index.js +11 -0
- package/dist/src/tools/helm/index.js.map +1 -0
- package/dist/src/tools/kubernetes/BaseTool.d.ts +48 -0
- package/dist/src/tools/kubernetes/BaseTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/BaseTool.js +55 -0
- package/dist/src/tools/kubernetes/BaseTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetConfigMapTool.d.ts +11 -0
- package/dist/src/tools/kubernetes/GetConfigMapTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/GetConfigMapTool.js +28 -0
- package/dist/src/tools/kubernetes/GetConfigMapTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetContainerLogsTool.d.ts +15 -0
- package/dist/src/tools/kubernetes/GetContainerLogsTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/GetContainerLogsTool.js +119 -0
- package/dist/src/tools/kubernetes/GetContainerLogsTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetDeploymentsTool.d.ts +11 -0
- package/dist/src/tools/kubernetes/GetDeploymentsTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/GetDeploymentsTool.js +30 -0
- package/dist/src/tools/kubernetes/GetDeploymentsTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetEventsTool.d.ts +11 -0
- package/dist/src/tools/kubernetes/GetEventsTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/GetEventsTool.js +123 -0
- package/dist/src/tools/kubernetes/GetEventsTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetIngressTool.d.ts +11 -0
- package/dist/src/tools/kubernetes/GetIngressTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/GetIngressTool.js +35 -0
- package/dist/src/tools/kubernetes/GetIngressTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetMetricsTool.d.ts +11 -0
- package/dist/src/tools/kubernetes/GetMetricsTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/GetMetricsTool.js +40 -0
- package/dist/src/tools/kubernetes/GetMetricsTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetNamespacesTool.d.ts +11 -0
- package/dist/src/tools/kubernetes/GetNamespacesTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/GetNamespacesTool.js +33 -0
- package/dist/src/tools/kubernetes/GetNamespacesTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.d.ts +11 -0
- package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.js +92 -0
- package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetPersistentVolumesTool.d.ts +11 -0
- package/dist/src/tools/kubernetes/GetPersistentVolumesTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/GetPersistentVolumesTool.js +88 -0
- package/dist/src/tools/kubernetes/GetPersistentVolumesTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetPodMetricsTool.d.ts +11 -0
- package/dist/src/tools/kubernetes/GetPodMetricsTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/GetPodMetricsTool.js +100 -0
- package/dist/src/tools/kubernetes/GetPodMetricsTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetPodsTool.d.ts +11 -0
- package/dist/src/tools/kubernetes/GetPodsTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/GetPodsTool.js +35 -0
- package/dist/src/tools/kubernetes/GetPodsTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetResourceTool.d.ts +12 -0
- package/dist/src/tools/kubernetes/GetResourceTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/GetResourceTool.js +79 -0
- package/dist/src/tools/kubernetes/GetResourceTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetSecretsTool.d.ts +11 -0
- package/dist/src/tools/kubernetes/GetSecretsTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/GetSecretsTool.js +49 -0
- package/dist/src/tools/kubernetes/GetSecretsTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetServicesTool.d.ts +11 -0
- package/dist/src/tools/kubernetes/GetServicesTool.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/GetServicesTool.js +35 -0
- package/dist/src/tools/kubernetes/GetServicesTool.js.map +1 -0
- package/dist/src/tools/kubernetes/index.d.ts +17 -0
- package/dist/src/tools/kubernetes/index.d.ts.map +1 -0
- package/dist/src/tools/kubernetes/index.js +16 -0
- package/dist/src/tools/kubernetes/index.js.map +1 -0
- package/dist/src/utils/CliUtils.d.ts +24 -0
- package/dist/src/utils/CliUtils.d.ts.map +1 -0
- package/dist/src/utils/CliUtils.js +159 -0
- package/dist/src/utils/CliUtils.js.map +1 -0
- package/dist/tests/__mocks__/@kubernetes/client-node.d.ts +34 -0
- package/dist/tests/__mocks__/@kubernetes/client-node.d.ts.map +1 -0
- package/dist/tests/__mocks__/@kubernetes/client-node.js +20 -0
- package/dist/tests/__mocks__/@kubernetes/client-node.js.map +1 -0
- package/dist/tests/argo/ArgoGetTool.test.d.ts +2 -0
- package/dist/tests/argo/ArgoGetTool.test.d.ts.map +1 -0
- package/dist/tests/argo/ArgoGetTool.test.js +141 -0
- package/dist/tests/argo/ArgoGetTool.test.js.map +1 -0
- package/dist/tests/helm/BaseTool.test.d.ts +2 -0
- package/dist/tests/helm/BaseTool.test.d.ts.map +1 -0
- package/dist/tests/helm/BaseTool.test.js +241 -0
- package/dist/tests/helm/BaseTool.test.js.map +1 -0
- package/dist/tests/index.test.d.ts +2 -0
- package/dist/tests/index.test.d.ts.map +1 -0
- package/dist/tests/index.test.js +7 -0
- package/dist/tests/index.test.js.map +1 -0
- package/dist/tests/kubernetes/ConfigMapOperations.test.d.ts +2 -0
- package/dist/tests/kubernetes/ConfigMapOperations.test.d.ts.map +1 -0
- package/dist/tests/kubernetes/ConfigMapOperations.test.js +460 -0
- package/dist/tests/kubernetes/ConfigMapOperations.test.js.map +1 -0
- package/dist/tests/kubernetes/ConnectionManager.test.d.ts +2 -0
- package/dist/tests/kubernetes/ConnectionManager.test.d.ts.map +1 -0
- package/dist/tests/kubernetes/ConnectionManager.test.js +97 -0
- package/dist/tests/kubernetes/ConnectionManager.test.js.map +1 -0
- package/dist/tests/kubernetes/ConnectionPool.test.d.ts +2 -0
- package/dist/tests/kubernetes/ConnectionPool.test.d.ts.map +1 -0
- package/dist/tests/kubernetes/ConnectionPool.test.js +328 -0
- package/dist/tests/kubernetes/ConnectionPool.test.js.map +1 -0
- package/dist/tests/kubernetes/DeploymentOperations.test.d.ts +2 -0
- package/dist/tests/kubernetes/DeploymentOperations.test.d.ts.map +1 -0
- package/dist/tests/kubernetes/DeploymentOperations.test.js +196 -0
- package/dist/tests/kubernetes/DeploymentOperations.test.js.map +1 -0
- package/dist/tests/kubernetes/ErrorHandling.test.d.ts +2 -0
- package/dist/tests/kubernetes/ErrorHandling.test.d.ts.map +1 -0
- package/dist/tests/kubernetes/ErrorHandling.test.js +329 -0
- package/dist/tests/kubernetes/ErrorHandling.test.js.map +1 -0
- package/dist/tests/kubernetes/GetPodMetricsTool.test.d.ts +2 -0
- package/dist/tests/kubernetes/GetPodMetricsTool.test.d.ts.map +1 -0
- package/dist/tests/kubernetes/GetPodMetricsTool.test.js +150 -0
- package/dist/tests/kubernetes/GetPodMetricsTool.test.js.map +1 -0
- package/dist/tests/kubernetes/KubernetesClient.test.d.ts +2 -0
- package/dist/tests/kubernetes/KubernetesClient.test.d.ts.map +1 -0
- package/dist/tests/kubernetes/KubernetesClient.test.js +371 -0
- package/dist/tests/kubernetes/KubernetesClient.test.js.map +1 -0
- package/dist/tests/kubernetes/MetricOperations.parsing.test.d.ts +2 -0
- package/dist/tests/kubernetes/MetricOperations.parsing.test.d.ts.map +1 -0
- package/dist/tests/kubernetes/MetricOperations.parsing.test.js +49 -0
- package/dist/tests/kubernetes/MetricOperations.parsing.test.js.map +1 -0
- package/dist/tests/kubernetes/NamespaceOperations.test.d.ts +2 -0
- package/dist/tests/kubernetes/NamespaceOperations.test.d.ts.map +1 -0
- package/dist/tests/kubernetes/NamespaceOperations.test.js +115 -0
- package/dist/tests/kubernetes/NamespaceOperations.test.js.map +1 -0
- package/dist/tests/kubernetes/PodOperations.test.d.ts +2 -0
- package/dist/tests/kubernetes/PodOperations.test.d.ts.map +1 -0
- package/dist/tests/kubernetes/PodOperations.test.js +209 -0
- package/dist/tests/kubernetes/PodOperations.test.js.map +1 -0
- package/dist/tests/kubernetes/RetryStrategy.test.d.ts +2 -0
- package/dist/tests/kubernetes/RetryStrategy.test.d.ts.map +1 -0
- package/dist/tests/kubernetes/RetryStrategy.test.js +419 -0
- package/dist/tests/kubernetes/RetryStrategy.test.js.map +1 -0
- package/dist/tests/kubernetes/ServiceOperations.test.d.ts +2 -0
- package/dist/tests/kubernetes/ServiceOperations.test.d.ts.map +1 -0
- package/dist/tests/kubernetes/ServiceOperations.test.js +159 -0
- package/dist/tests/kubernetes/ServiceOperations.test.js.map +1 -0
- package/dist/tests/plugins/KubernetesToolsPlugin.test.d.ts +2 -0
- package/dist/tests/plugins/KubernetesToolsPlugin.test.d.ts.map +1 -0
- package/dist/tests/plugins/KubernetesToolsPlugin.test.js +153 -0
- package/dist/tests/plugins/KubernetesToolsPlugin.test.js.map +1 -0
- package/dist/tests/server/MCPServer.integration.test.d.ts +2 -0
- package/dist/tests/server/MCPServer.integration.test.d.ts.map +1 -0
- package/dist/tests/server/MCPServer.integration.test.js +244 -0
- package/dist/tests/server/MCPServer.integration.test.js.map +1 -0
- package/dist/tests/server/MCPServer.test.d.ts +2 -0
- package/dist/tests/server/MCPServer.test.d.ts.map +1 -0
- package/dist/tests/server/MCPServer.test.js +257 -0
- package/dist/tests/server/MCPServer.test.js.map +1 -0
- package/package.json +85 -0
- package/src/cli/cli.ts +25 -0
- package/src/cli/run-command.js +391 -0
- package/src/index.ts +46 -0
- package/src/kubernetes/BaseResourceOperations.ts +286 -0
- package/src/kubernetes/CircuitBreaker.ts +485 -0
- package/src/kubernetes/ConnectionManager.ts +114 -0
- package/src/kubernetes/ConnectionPool.ts +551 -0
- package/src/kubernetes/ErrorHandler.ts +436 -0
- package/src/kubernetes/ErrorHandling.ts +401 -0
- package/src/kubernetes/KubernetesClient.ts +500 -0
- package/src/kubernetes/README.md +349 -0
- package/src/kubernetes/ResourceOperations.ts +116 -0
- package/src/kubernetes/RetryStrategy.ts +365 -0
- package/src/kubernetes/RetryableOperation.ts +313 -0
- package/src/kubernetes/docs/ResourceOperations.md +606 -0
- package/src/kubernetes/index.ts +116 -0
- package/src/kubernetes/resources/ConfigMapOperations.ts +367 -0
- package/src/kubernetes/resources/CustomResourceOperations.ts +392 -0
- package/src/kubernetes/resources/DeploymentOperations.ts +294 -0
- package/src/kubernetes/resources/IngressOperations.ts +277 -0
- package/src/kubernetes/resources/MetricOperations.ts +1159 -0
- package/src/kubernetes/resources/NamespaceOperations.ts +129 -0
- package/src/kubernetes/resources/PersistentVolumeClaimOperations.ts +516 -0
- package/src/kubernetes/resources/PersistentVolumeOperations.ts +438 -0
- package/src/kubernetes/resources/PodOperations.ts +417 -0
- package/src/kubernetes/resources/SecretOperations.ts +304 -0
- package/src/kubernetes/resources/ServiceOperations.ts +283 -0
- package/src/kubernetes/utils/ResourceUtils.ts +553 -0
- package/src/plugins/ArgoCDToolsPlugin.ts +189 -0
- package/src/plugins/ArgoToolsPlugin.ts +180 -0
- package/src/plugins/HelmToolsPlugin.ts +180 -0
- package/src/plugins/KubernetesToolsPlugin.ts +198 -0
- package/src/plugins/SamplePlugin.ts +60 -0
- package/src/plugins/index.ts +4 -0
- package/src/server/MCPServer.ts +500 -0
- package/src/tools/argo/ArgoCronListTool.ts +78 -0
- package/src/tools/argo/ArgoGetTool.ts +91 -0
- package/src/tools/argo/ArgoListTool.ts +143 -0
- package/src/tools/argo/ArgoLogsTool.ts +131 -0
- package/src/tools/argo/BaseTool.ts +69 -0
- package/src/tools/argo/index.ts +6 -0
- package/src/tools/argocd/ArgoCDAppGetTool.ts +109 -0
- package/src/tools/argocd/ArgoCDAppHistoryTool.ts +91 -0
- package/src/tools/argocd/ArgoCDAppListTool.ts +144 -0
- package/src/tools/argocd/ArgoCDAppLogsTool.ts +162 -0
- package/src/tools/argocd/ArgoCDAppResourcesTool.ts +139 -0
- package/src/tools/argocd/BaseTool.ts +83 -0
- package/src/tools/argocd/index.ts +7 -0
- package/src/tools/helm/BaseTool.ts +60 -0
- package/src/tools/helm/HelmGetHooksTool.ts +44 -0
- package/src/tools/helm/HelmGetManifestTool.ts +44 -0
- package/src/tools/helm/HelmGetNotesTool.ts +44 -0
- package/src/tools/helm/HelmGetResourcesTool.ts +140 -0
- package/src/tools/helm/HelmGetValuesTool.ts +62 -0
- package/src/tools/helm/HelmHistoryTool.ts +56 -0
- package/src/tools/helm/HelmListTool.ts +107 -0
- package/src/tools/helm/HelmListWithResourcesTool.ts +194 -0
- package/src/tools/helm/HelmStatusTool.ts +62 -0
- package/src/tools/helm/index.ts +11 -0
- package/src/tools/kubernetes/BaseTool.ts +76 -0
- package/src/tools/kubernetes/GetConfigMapTool.ts +33 -0
- package/src/tools/kubernetes/GetContainerLogsTool.ts +140 -0
- package/src/tools/kubernetes/GetDeploymentsTool.ts +33 -0
- package/src/tools/kubernetes/GetEventsTool.ts +133 -0
- package/src/tools/kubernetes/GetIngressTool.ts +39 -0
- package/src/tools/kubernetes/GetMetricsTool.ts +53 -0
- package/src/tools/kubernetes/GetNamespacesTool.ts +36 -0
- package/src/tools/kubernetes/GetPersistentVolumeClaimsTool.ts +113 -0
- package/src/tools/kubernetes/GetPersistentVolumesTool.ts +107 -0
- package/src/tools/kubernetes/GetPodMetricsTool.ts +113 -0
- package/src/tools/kubernetes/GetPodsTool.ts +39 -0
- package/src/tools/kubernetes/GetResourceTool.ts +90 -0
- package/src/tools/kubernetes/GetSecretsTool.ts +55 -0
- package/src/tools/kubernetes/GetServicesTool.ts +39 -0
- package/src/tools/kubernetes/index.ts +16 -0
- package/src/utils/CliUtils.ts +207 -0
- package/tsconfig.json +36 -0
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
import * as k8s from '@kubernetes/client-node';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { homedir } from 'os';
|
|
4
|
+
import { existsSync } from 'fs';
|
|
5
|
+
import { ResourceOperations } from './ResourceOperations.js';
|
|
6
|
+
/**
|
|
7
|
+
* Authentication method types
|
|
8
|
+
*/
|
|
9
|
+
export var AuthMethod;
|
|
10
|
+
(function (AuthMethod) {
|
|
11
|
+
AuthMethod["KUBECONFIG"] = "kubeconfig";
|
|
12
|
+
AuthMethod["IN_CLUSTER"] = "in-cluster";
|
|
13
|
+
AuthMethod["TOKEN"] = "token";
|
|
14
|
+
})(AuthMethod || (AuthMethod = {}));
|
|
15
|
+
/**
|
|
16
|
+
* KubernetesClient provides a high-level interface for interacting with Kubernetes clusters
|
|
17
|
+
*/
|
|
18
|
+
export class KubernetesClient {
|
|
19
|
+
config;
|
|
20
|
+
kc;
|
|
21
|
+
coreV1Api;
|
|
22
|
+
appsV1Api;
|
|
23
|
+
batchV1Api;
|
|
24
|
+
networkingV1Api;
|
|
25
|
+
authMethod;
|
|
26
|
+
logger;
|
|
27
|
+
_resources;
|
|
28
|
+
_customObjectsApi;
|
|
29
|
+
constructor(config = {}) {
|
|
30
|
+
this.config = config;
|
|
31
|
+
this.logger = config.logger;
|
|
32
|
+
this.kc = new k8s.KubeConfig();
|
|
33
|
+
this.authMethod = this.detectAuthMethod();
|
|
34
|
+
this.initializeClient();
|
|
35
|
+
this.config.skipTlsVerify = true;
|
|
36
|
+
this.initializeApiClients();
|
|
37
|
+
this._resources = new ResourceOperations(this);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Detect which authentication method to use based on configuration
|
|
41
|
+
*/
|
|
42
|
+
detectAuthMethod() {
|
|
43
|
+
if (this.config.inCluster) {
|
|
44
|
+
return AuthMethod.IN_CLUSTER;
|
|
45
|
+
}
|
|
46
|
+
if (this.config.bearerToken && this.config.apiServerUrl) {
|
|
47
|
+
return AuthMethod.TOKEN;
|
|
48
|
+
}
|
|
49
|
+
return AuthMethod.KUBECONFIG;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Initialize the Kubernetes client based on the detected auth method
|
|
53
|
+
*/
|
|
54
|
+
initializeClient() {
|
|
55
|
+
try {
|
|
56
|
+
switch (this.authMethod) {
|
|
57
|
+
case AuthMethod.IN_CLUSTER:
|
|
58
|
+
this.initializeInClusterConfig();
|
|
59
|
+
break;
|
|
60
|
+
case AuthMethod.TOKEN:
|
|
61
|
+
this.initializeTokenConfig();
|
|
62
|
+
break;
|
|
63
|
+
case AuthMethod.KUBECONFIG:
|
|
64
|
+
default:
|
|
65
|
+
this.initializeKubeConfig();
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
this.logger?.info(`Kubernetes client initialized using ${this.authMethod} authentication`);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
const message = `Failed to initialize Kubernetes client: ${error instanceof Error ? error.message : String(error)}`;
|
|
72
|
+
this.logger?.error(message);
|
|
73
|
+
throw new Error(message);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Initialize using kubeconfig file
|
|
78
|
+
*/
|
|
79
|
+
initializeKubeConfig() {
|
|
80
|
+
const kubeConfigPath = this.getKubeConfigPath();
|
|
81
|
+
if (!existsSync(kubeConfigPath)) {
|
|
82
|
+
throw new Error(`Kubeconfig file not found at: ${kubeConfigPath}`);
|
|
83
|
+
}
|
|
84
|
+
this.kc.loadFromFile(kubeConfigPath);
|
|
85
|
+
if (this.config.context) {
|
|
86
|
+
this.kc.setCurrentContext(this.config.context);
|
|
87
|
+
}
|
|
88
|
+
this.logger?.debug(`Loaded kubeconfig from: ${kubeConfigPath}`);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Initialize using in-cluster configuration
|
|
92
|
+
*/
|
|
93
|
+
initializeInClusterConfig() {
|
|
94
|
+
this.kc.loadFromCluster();
|
|
95
|
+
this.logger?.debug('Loaded in-cluster configuration');
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Initialize using bearer token
|
|
99
|
+
*/
|
|
100
|
+
initializeTokenConfig() {
|
|
101
|
+
if (!this.config.bearerToken || !this.config.apiServerUrl) {
|
|
102
|
+
throw new Error('Bearer token and API server URL are required for token authentication');
|
|
103
|
+
}
|
|
104
|
+
const cluster = {
|
|
105
|
+
name: 'default',
|
|
106
|
+
server: this.config.apiServerUrl,
|
|
107
|
+
skipTLSVerify: this.config.skipTlsVerify || false,
|
|
108
|
+
};
|
|
109
|
+
const user = {
|
|
110
|
+
name: 'default',
|
|
111
|
+
token: this.config.bearerToken,
|
|
112
|
+
};
|
|
113
|
+
const context = {
|
|
114
|
+
name: 'default',
|
|
115
|
+
cluster: cluster.name,
|
|
116
|
+
user: user.name,
|
|
117
|
+
};
|
|
118
|
+
this.kc.loadFromOptions({
|
|
119
|
+
clusters: [cluster],
|
|
120
|
+
users: [user],
|
|
121
|
+
contexts: [context],
|
|
122
|
+
currentContext: context.name,
|
|
123
|
+
});
|
|
124
|
+
this.logger?.debug(`Configured token authentication for: ${this.config.apiServerUrl}`);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get the path to the kubeconfig file
|
|
128
|
+
*/
|
|
129
|
+
getKubeConfigPath() {
|
|
130
|
+
if (this.config.kubeConfigPath) {
|
|
131
|
+
return this.config.kubeConfigPath;
|
|
132
|
+
}
|
|
133
|
+
// Check KUBECONFIG environment variable
|
|
134
|
+
const kubeConfigEnv = process.env.KUBECONFIG;
|
|
135
|
+
if (kubeConfigEnv) {
|
|
136
|
+
// KUBECONFIG can contain multiple paths separated by :
|
|
137
|
+
const paths = kubeConfigEnv.split(':');
|
|
138
|
+
for (const path of paths) {
|
|
139
|
+
if (existsSync(path)) {
|
|
140
|
+
return path;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// Default location
|
|
145
|
+
return join(homedir(), '.kube', 'config');
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Initialize API clients for different Kubernetes resources
|
|
149
|
+
*/
|
|
150
|
+
initializeApiClients() {
|
|
151
|
+
this.coreV1Api = this.kc.makeApiClient(k8s.CoreV1Api);
|
|
152
|
+
this.appsV1Api = this.kc.makeApiClient(k8s.AppsV1Api);
|
|
153
|
+
this.batchV1Api = this.kc.makeApiClient(k8s.BatchV1Api);
|
|
154
|
+
this.networkingV1Api = this.kc.makeApiClient(k8s.NetworkingV1Api);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Get the current cluster information
|
|
158
|
+
*/
|
|
159
|
+
getCurrentCluster() {
|
|
160
|
+
const currentContext = this.kc.getCurrentContext();
|
|
161
|
+
const contexts = this.kc.getContexts();
|
|
162
|
+
const context = contexts.find((c) => c.name === currentContext);
|
|
163
|
+
if (!context) {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
const clusters = this.kc.getClusters();
|
|
167
|
+
return clusters.find((c) => c.name === context.cluster) || null;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get the current context name
|
|
171
|
+
*/
|
|
172
|
+
getCurrentContext() {
|
|
173
|
+
return this.kc.getCurrentContext();
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Get all available contexts
|
|
177
|
+
*/
|
|
178
|
+
getContexts() {
|
|
179
|
+
return this.kc.getContexts().map((ctx) => ctx.name);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Refresh the current context by reloading the kubeconfig file
|
|
183
|
+
* This ensures we always use the latest context when executing operations
|
|
184
|
+
*/
|
|
185
|
+
async refreshCurrentContext() {
|
|
186
|
+
// Only refresh for kubeconfig-based authentication
|
|
187
|
+
if (this.authMethod !== AuthMethod.KUBECONFIG) {
|
|
188
|
+
this.logger?.debug('Skipping context refresh for non-kubeconfig authentication');
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
try {
|
|
192
|
+
const kubeConfigPath = this.getKubeConfigPath();
|
|
193
|
+
if (!existsSync(kubeConfigPath)) {
|
|
194
|
+
this.logger?.warn(`Kubeconfig file not found at: ${kubeConfigPath} during refresh`);
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
// Store the old context to detect changes
|
|
198
|
+
const oldContext = this.kc.getCurrentContext();
|
|
199
|
+
// Reload the kubeconfig file to get the latest context
|
|
200
|
+
this.kc.loadFromFile(kubeConfigPath);
|
|
201
|
+
const newContext = this.kc.getCurrentContext();
|
|
202
|
+
// If context changed, reinitialize API clients
|
|
203
|
+
if (oldContext !== newContext) {
|
|
204
|
+
this.initializeApiClients();
|
|
205
|
+
this.logger?.info(`Context changed from '${oldContext}' to '${newContext}' - API clients reinitialized`);
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
this.logger?.debug(`Context unchanged: '${newContext}'`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
this.logger?.error(`Failed to refresh current context: ${error instanceof Error ? error.message : String(error)}`);
|
|
213
|
+
// Don't throw - we'll continue with the existing context
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Switch to a different context
|
|
218
|
+
*/
|
|
219
|
+
async switchContext(contextName) {
|
|
220
|
+
const contexts = this.kc.getContexts();
|
|
221
|
+
const context = contexts.find((c) => c.name === contextName);
|
|
222
|
+
if (!context) {
|
|
223
|
+
throw new Error(`Context not found: ${contextName}`);
|
|
224
|
+
}
|
|
225
|
+
this.kc.setCurrentContext(contextName);
|
|
226
|
+
this.initializeApiClients();
|
|
227
|
+
this.logger?.info(`Switched to context: ${contextName}`);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Get the authentication method being used
|
|
231
|
+
*/
|
|
232
|
+
getAuthMethod() {
|
|
233
|
+
return this.authMethod;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Test the connection to the Kubernetes API server
|
|
237
|
+
*/
|
|
238
|
+
async testConnection() {
|
|
239
|
+
try {
|
|
240
|
+
await this.coreV1Api.listNamespace();
|
|
241
|
+
this.logger?.debug('Successfully connected to Kubernetes API server');
|
|
242
|
+
return true;
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
this.logger?.error(`Failed to connect to Kubernetes API server: ${error}`);
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Factory method to create a KubernetesClient from a kubeconfig file
|
|
251
|
+
*/
|
|
252
|
+
static fromKubeConfig(kubeConfigPath, context, logger) {
|
|
253
|
+
return new KubernetesClient({
|
|
254
|
+
kubeConfigPath,
|
|
255
|
+
context,
|
|
256
|
+
logger,
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Factory method to create a KubernetesClient for in-cluster use
|
|
261
|
+
*/
|
|
262
|
+
static fromInCluster(logger) {
|
|
263
|
+
return new KubernetesClient({
|
|
264
|
+
inCluster: true,
|
|
265
|
+
logger,
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Factory method to create a KubernetesClient using a bearer token
|
|
270
|
+
*/
|
|
271
|
+
static fromToken(apiServerUrl, bearerToken, skipTlsVerify = false, logger) {
|
|
272
|
+
return new KubernetesClient({
|
|
273
|
+
apiServerUrl,
|
|
274
|
+
bearerToken,
|
|
275
|
+
skipTlsVerify,
|
|
276
|
+
logger,
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
// Getters for API clients
|
|
280
|
+
get core() {
|
|
281
|
+
return this.coreV1Api;
|
|
282
|
+
}
|
|
283
|
+
get apps() {
|
|
284
|
+
return this.appsV1Api;
|
|
285
|
+
}
|
|
286
|
+
get batch() {
|
|
287
|
+
return this.batchV1Api;
|
|
288
|
+
}
|
|
289
|
+
get networking() {
|
|
290
|
+
return this.networkingV1Api;
|
|
291
|
+
}
|
|
292
|
+
get kubeConfig() {
|
|
293
|
+
return this.kc;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Get resource operations for working with Kubernetes resources
|
|
297
|
+
*/
|
|
298
|
+
get resources() {
|
|
299
|
+
return this._resources;
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Returns a Kubernetes API client for the specified API constructor.
|
|
303
|
+
* This allows for accessing various Kubernetes APIs in a type-safe manner.
|
|
304
|
+
* @param apiClientConstructor The constructor of the API client to instantiate (e.g., k8s.CoreV1Api).
|
|
305
|
+
* It should conform to `new (config: Configuration) => T`.
|
|
306
|
+
* @returns An instance of the requested API client.
|
|
307
|
+
*/
|
|
308
|
+
getGenericApiClient(apiClientConstructor) {
|
|
309
|
+
return this.kc.makeApiClient(apiClientConstructor);
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Makes a generic GET request to the Kubernetes API server.
|
|
313
|
+
* This is useful for accessing API endpoints not covered by specific client APIs (e.g., custom resources or aggregated APIs like metrics.k8s.io).
|
|
314
|
+
* @param path The API path to request (e.g., '/apis/metrics.k8s.io/v1beta1/nodes').
|
|
315
|
+
* @returns A promise that resolves with the API response.
|
|
316
|
+
* @throws Will throw an error if the request fails.
|
|
317
|
+
*/
|
|
318
|
+
async getRaw(path) {
|
|
319
|
+
this.logger?.debug(`Making authenticated raw request to: ${path}`);
|
|
320
|
+
try {
|
|
321
|
+
// Use the customObjects API as a workaround for raw requests
|
|
322
|
+
// Since metrics are served by the metrics-server through custom resources
|
|
323
|
+
if (path.includes('metrics.k8s.io')) {
|
|
324
|
+
const group = 'metrics.k8s.io';
|
|
325
|
+
const version = 'v1beta1';
|
|
326
|
+
if (path.includes('/nodes')) {
|
|
327
|
+
return (await this.customObjects.listClusterCustomObject({
|
|
328
|
+
group: group,
|
|
329
|
+
version: version,
|
|
330
|
+
plural: 'nodes',
|
|
331
|
+
}));
|
|
332
|
+
}
|
|
333
|
+
else if (path.includes('/pods')) {
|
|
334
|
+
// Handle namespaced vs cluster-wide pod metrics
|
|
335
|
+
const namespacedMatch = path.match(/\/namespaces\/([\w-]+)\/pods/);
|
|
336
|
+
if (namespacedMatch) {
|
|
337
|
+
const namespace = namespacedMatch[1];
|
|
338
|
+
return (await this.customObjects.listNamespacedCustomObject({
|
|
339
|
+
group: group,
|
|
340
|
+
version: version,
|
|
341
|
+
namespace: namespace,
|
|
342
|
+
plural: 'pods',
|
|
343
|
+
}));
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
return (await this.customObjects.listClusterCustomObject({
|
|
347
|
+
group: group,
|
|
348
|
+
version: version,
|
|
349
|
+
plural: 'pods',
|
|
350
|
+
}));
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
// For non-metrics paths, throw an error explaining the limitation
|
|
355
|
+
throw new Error(`Raw requests are only supported for metrics.k8s.io API paths. Attempted path: ${path}`);
|
|
356
|
+
}
|
|
357
|
+
catch (error) {
|
|
358
|
+
this.logger?.error(`Error making raw request to ${path}: ${error.message}`);
|
|
359
|
+
// If it's a 403 error, provide more helpful debugging information
|
|
360
|
+
if (error.statusCode === 403 || (error.response && error.response.statusCode === 403)) {
|
|
361
|
+
this.logger?.error('Authentication failed - check that your kubeconfig is valid and you have the necessary permissions');
|
|
362
|
+
this.logger?.error('If using exec-based auth, ensure the authentication plugin is properly configured');
|
|
363
|
+
}
|
|
364
|
+
throw error;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
get customObjects() {
|
|
368
|
+
if (!this._customObjectsApi) {
|
|
369
|
+
this._customObjectsApi = this.kc.makeApiClient(k8s.CustomObjectsApi);
|
|
370
|
+
}
|
|
371
|
+
return this._customObjectsApi;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Sets whether to skip TLS verification for API requests
|
|
375
|
+
* @param skip True to skip TLS verification, false otherwise
|
|
376
|
+
*/
|
|
377
|
+
setSkipTlsVerify(skip) {
|
|
378
|
+
this.config.skipTlsVerify = skip;
|
|
379
|
+
this.logger?.debug(`TLS verification set to: ${!skip}`);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
//# sourceMappingURL=KubernetesClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KubernetesClient.js","sourceRoot":"","sources":["../../../src/kubernetes/KubernetesClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import * as k8s from '@kubernetes/client-node';
|
|
2
|
+
import { KubernetesClient } from './KubernetesClient.js';
|
|
3
|
+
import { PodOperations } from './resources/PodOperations.js';
|
|
4
|
+
import { ServiceOperations } from './resources/ServiceOperations.js';
|
|
5
|
+
import { DeploymentOperations } from './resources/DeploymentOperations.js';
|
|
6
|
+
import { ConfigMapOperations } from './resources/ConfigMapOperations.js';
|
|
7
|
+
import { SecretOperations } from './resources/SecretOperations.js';
|
|
8
|
+
import { CustomResourceOperations } from './resources/CustomResourceOperations.js';
|
|
9
|
+
import { NamespaceOperations } from './resources/NamespaceOperations.js';
|
|
10
|
+
import { PersistentVolumeOperations } from './resources/PersistentVolumeOperations.js';
|
|
11
|
+
import { PersistentVolumeClaimOperations } from './resources/PersistentVolumeClaimOperations.js';
|
|
12
|
+
import { IngressOperations } from './resources/IngressOperations.js';
|
|
13
|
+
/**
|
|
14
|
+
* Resource operations manager
|
|
15
|
+
*/
|
|
16
|
+
export declare class ResourceOperations {
|
|
17
|
+
private client;
|
|
18
|
+
private pods;
|
|
19
|
+
private services;
|
|
20
|
+
private deployments;
|
|
21
|
+
private configMaps;
|
|
22
|
+
private secrets;
|
|
23
|
+
private namespaces;
|
|
24
|
+
private persistentVolumesOps;
|
|
25
|
+
private persistentVolumeClaimsOps;
|
|
26
|
+
private ingresses;
|
|
27
|
+
constructor(client: KubernetesClient);
|
|
28
|
+
/**
|
|
29
|
+
* Get pod operations
|
|
30
|
+
*/
|
|
31
|
+
get pod(): PodOperations;
|
|
32
|
+
/**
|
|
33
|
+
* Get service operations
|
|
34
|
+
*/
|
|
35
|
+
get service(): ServiceOperations;
|
|
36
|
+
/**
|
|
37
|
+
* Get deployment operations
|
|
38
|
+
*/
|
|
39
|
+
get deployment(): DeploymentOperations;
|
|
40
|
+
/**
|
|
41
|
+
* Get configMap operations
|
|
42
|
+
*/
|
|
43
|
+
get configMap(): ConfigMapOperations;
|
|
44
|
+
/**
|
|
45
|
+
* Get secret operations
|
|
46
|
+
*/
|
|
47
|
+
get secret(): SecretOperations;
|
|
48
|
+
/**
|
|
49
|
+
* Get namespace operations
|
|
50
|
+
*/
|
|
51
|
+
get namespace(): NamespaceOperations;
|
|
52
|
+
/**
|
|
53
|
+
* Get persistent volume operations
|
|
54
|
+
*/
|
|
55
|
+
get persistentVolumes(): PersistentVolumeOperations;
|
|
56
|
+
/**
|
|
57
|
+
* Get persistent volume claim operations
|
|
58
|
+
*/
|
|
59
|
+
get persistentVolumeClaims(): PersistentVolumeClaimOperations;
|
|
60
|
+
/**
|
|
61
|
+
* Get ingress operations
|
|
62
|
+
*/
|
|
63
|
+
get ingress(): IngressOperations;
|
|
64
|
+
/**
|
|
65
|
+
* Create a custom resource operations instance
|
|
66
|
+
*/
|
|
67
|
+
custom<T extends k8s.KubernetesObject>(group: string, version: string, plural: string, namespaced?: boolean): CustomResourceOperations<T>;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=ResourceOperations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceOperations.d.ts","sourceRoot":"","sources":["../../../src/kubernetes/ResourceOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE;;GAEG;AACH,qBAAa,kBAAkB;IAWjB,OAAO,CAAC,MAAM;IAV1B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,yBAAyB,CAAkC;IACnE,OAAO,CAAC,SAAS,CAAoB;gBAEjB,MAAM,EAAE,gBAAgB;IAY5C;;OAEG;IACH,IAAW,GAAG,IAAI,aAAa,CAE9B;IAED;;OAEG;IACH,IAAW,OAAO,IAAI,iBAAiB,CAEtC;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,oBAAoB,CAE5C;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,mBAAmB,CAE1C;IAED;;OAEG;IACH,IAAW,MAAM,IAAI,gBAAgB,CAEpC;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,mBAAmB,CAE1C;IAED;;OAEG;IACH,IAAW,iBAAiB,IAAI,0BAA0B,CAEzD;IAED;;OAEG;IACH,IAAW,sBAAsB,IAAI,+BAA+B,CAEnE;IAED;;OAEG;IACH,IAAW,OAAO,IAAI,iBAAiB,CAEtC;IAED;;OAEG;IACI,MAAM,CAAC,CAAC,SAAS,GAAG,CAAC,gBAAgB,EAC1C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,UAAO,GAChB,wBAAwB,CAAC,CAAC,CAAC;CAG/B"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// Import resource-specific operations
|
|
2
|
+
import { PodOperations } from './resources/PodOperations.js';
|
|
3
|
+
import { ServiceOperations } from './resources/ServiceOperations.js';
|
|
4
|
+
import { DeploymentOperations } from './resources/DeploymentOperations.js';
|
|
5
|
+
import { ConfigMapOperations } from './resources/ConfigMapOperations.js';
|
|
6
|
+
import { SecretOperations } from './resources/SecretOperations.js';
|
|
7
|
+
import { CustomResourceOperations } from './resources/CustomResourceOperations.js';
|
|
8
|
+
import { NamespaceOperations } from './resources/NamespaceOperations.js';
|
|
9
|
+
import { PersistentVolumeOperations } from './resources/PersistentVolumeOperations.js';
|
|
10
|
+
import { PersistentVolumeClaimOperations } from './resources/PersistentVolumeClaimOperations.js';
|
|
11
|
+
import { IngressOperations } from './resources/IngressOperations.js';
|
|
12
|
+
/**
|
|
13
|
+
* Resource operations manager
|
|
14
|
+
*/
|
|
15
|
+
export class ResourceOperations {
|
|
16
|
+
client;
|
|
17
|
+
pods;
|
|
18
|
+
services;
|
|
19
|
+
deployments;
|
|
20
|
+
configMaps;
|
|
21
|
+
secrets;
|
|
22
|
+
namespaces;
|
|
23
|
+
persistentVolumesOps;
|
|
24
|
+
persistentVolumeClaimsOps;
|
|
25
|
+
ingresses;
|
|
26
|
+
constructor(client) {
|
|
27
|
+
this.client = client;
|
|
28
|
+
this.pods = new PodOperations(client);
|
|
29
|
+
this.services = new ServiceOperations(client);
|
|
30
|
+
this.deployments = new DeploymentOperations(client);
|
|
31
|
+
this.configMaps = new ConfigMapOperations(client);
|
|
32
|
+
this.secrets = new SecretOperations(client);
|
|
33
|
+
this.namespaces = new NamespaceOperations(client);
|
|
34
|
+
this.persistentVolumesOps = new PersistentVolumeOperations(client);
|
|
35
|
+
this.persistentVolumeClaimsOps = new PersistentVolumeClaimOperations(client);
|
|
36
|
+
this.ingresses = new IngressOperations(client);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get pod operations
|
|
40
|
+
*/
|
|
41
|
+
get pod() {
|
|
42
|
+
return this.pods;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get service operations
|
|
46
|
+
*/
|
|
47
|
+
get service() {
|
|
48
|
+
return this.services;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get deployment operations
|
|
52
|
+
*/
|
|
53
|
+
get deployment() {
|
|
54
|
+
return this.deployments;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get configMap operations
|
|
58
|
+
*/
|
|
59
|
+
get configMap() {
|
|
60
|
+
return this.configMaps;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get secret operations
|
|
64
|
+
*/
|
|
65
|
+
get secret() {
|
|
66
|
+
return this.secrets;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get namespace operations
|
|
70
|
+
*/
|
|
71
|
+
get namespace() {
|
|
72
|
+
return this.namespaces;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get persistent volume operations
|
|
76
|
+
*/
|
|
77
|
+
get persistentVolumes() {
|
|
78
|
+
return this.persistentVolumesOps;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get persistent volume claim operations
|
|
82
|
+
*/
|
|
83
|
+
get persistentVolumeClaims() {
|
|
84
|
+
return this.persistentVolumeClaimsOps;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get ingress operations
|
|
88
|
+
*/
|
|
89
|
+
get ingress() {
|
|
90
|
+
return this.ingresses;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Create a custom resource operations instance
|
|
94
|
+
*/
|
|
95
|
+
custom(group, version, plural, namespaced = true) {
|
|
96
|
+
return new CustomResourceOperations(this.client, group, version, plural, namespaced);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=ResourceOperations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceOperations.js","sourceRoot":"","sources":["../../../src/kubernetes/ResourceOperations.ts"],"names":[],"mappings":"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"}
|