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,349 @@
|
|
|
1
|
+
# Kubernetes Client Module
|
|
2
|
+
|
|
3
|
+
This module provides a high-level interface for interacting with Kubernetes clusters using the official Kubernetes client library for Node.js.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Multiple Authentication Methods**:
|
|
8
|
+
- Kubeconfig file (default `~/.kube/config` or custom path)
|
|
9
|
+
- In-cluster configuration (for pods running inside Kubernetes)
|
|
10
|
+
- Bearer token authentication
|
|
11
|
+
- Support for `KUBECONFIG` environment variable with multiple paths
|
|
12
|
+
|
|
13
|
+
- **Context Management**:
|
|
14
|
+
- List available contexts
|
|
15
|
+
- Switch between contexts
|
|
16
|
+
- Get current context and cluster information
|
|
17
|
+
|
|
18
|
+
- **Connection Management**:
|
|
19
|
+
- Connection testing
|
|
20
|
+
- Automatic retry logic
|
|
21
|
+
- Connection pooling
|
|
22
|
+
|
|
23
|
+
- **Resource Operations**:
|
|
24
|
+
- Full CRUD operations for all Kubernetes resources
|
|
25
|
+
- Type-safe interfaces for core resources (Pods, Services, Deployments, etc.)
|
|
26
|
+
- Support for custom resources
|
|
27
|
+
- Watch operations for real-time updates
|
|
28
|
+
- Advanced operations (scaling, rolling updates, log streaming, exec, etc.)
|
|
29
|
+
|
|
30
|
+
- **Utilities**:
|
|
31
|
+
- Label and field selector builders
|
|
32
|
+
- JSON patch builder
|
|
33
|
+
- Metadata manipulation utilities
|
|
34
|
+
- Container and pod template helpers
|
|
35
|
+
|
|
36
|
+
## Quick Start
|
|
37
|
+
|
|
38
|
+
### Installation
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npm install @kubernetes/client-node winston
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Basic Usage
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
import { KubernetesClient } from './KubernetesClient';
|
|
48
|
+
|
|
49
|
+
// Create a client using default kubeconfig
|
|
50
|
+
const client = KubernetesClient.fromKubeConfig();
|
|
51
|
+
|
|
52
|
+
// Test connection
|
|
53
|
+
const isConnected = await client.testConnection();
|
|
54
|
+
console.log('Connected to Kubernetes:', isConnected);
|
|
55
|
+
|
|
56
|
+
// Get current context
|
|
57
|
+
console.log('Current context:', client.getCurrentContext());
|
|
58
|
+
|
|
59
|
+
// Access resource operations
|
|
60
|
+
const resources = client.resources;
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Authentication Examples
|
|
64
|
+
|
|
65
|
+
#### Using Default Kubeconfig
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
const client = KubernetesClient.fromKubeConfig();
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
#### Using Custom Kubeconfig Path
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
const client = KubernetesClient.fromKubeConfig('/path/to/kubeconfig', 'my-context');
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
#### In-Cluster Authentication
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
const client = KubernetesClient.fromInCluster();
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
#### Bearer Token Authentication
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
const client = KubernetesClient.fromToken(
|
|
87
|
+
'https://kubernetes.example.com:6443',
|
|
88
|
+
'your-bearer-token',
|
|
89
|
+
true // skipTlsVerify (not recommended for production)
|
|
90
|
+
);
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Resource Operations
|
|
94
|
+
|
|
95
|
+
#### Working with Pods
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
// Create a pod
|
|
99
|
+
const pod = await resources.pod.create({
|
|
100
|
+
apiVersion: 'v1',
|
|
101
|
+
kind: 'Pod',
|
|
102
|
+
metadata: { name: 'my-pod', namespace: 'default' },
|
|
103
|
+
spec: {
|
|
104
|
+
containers: [{
|
|
105
|
+
name: 'nginx',
|
|
106
|
+
image: 'nginx:latest',
|
|
107
|
+
ports: [{ containerPort: 80 }]
|
|
108
|
+
}]
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
// Get pod logs
|
|
113
|
+
const logs = await resources.pod.getLogs('my-pod', {
|
|
114
|
+
namespace: 'default',
|
|
115
|
+
tailLines: 100
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
// Execute command in pod
|
|
119
|
+
const result = await resources.pod.exec('my-pod', ['ls', '-la'], {
|
|
120
|
+
namespace: 'default'
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
// Stream logs
|
|
124
|
+
const stop = resources.pod.streamLogs('my-pod',
|
|
125
|
+
(data) => console.log(data),
|
|
126
|
+
{ follow: true }
|
|
127
|
+
);
|
|
128
|
+
// Call stop() when done
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
#### Working with Deployments
|
|
132
|
+
|
|
133
|
+
```typescript
|
|
134
|
+
// Create deployment
|
|
135
|
+
const deployment = await resources.deployment.create({
|
|
136
|
+
apiVersion: 'apps/v1',
|
|
137
|
+
kind: 'Deployment',
|
|
138
|
+
metadata: { name: 'my-app', namespace: 'default' },
|
|
139
|
+
spec: {
|
|
140
|
+
replicas: 3,
|
|
141
|
+
selector: { matchLabels: { app: 'my-app' } },
|
|
142
|
+
template: {
|
|
143
|
+
metadata: { labels: { app: 'my-app' } },
|
|
144
|
+
spec: {
|
|
145
|
+
containers: [{
|
|
146
|
+
name: 'app',
|
|
147
|
+
image: 'myapp:v1',
|
|
148
|
+
ports: [{ containerPort: 8080 }]
|
|
149
|
+
}]
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
// Scale deployment
|
|
156
|
+
await resources.deployment.scale('my-app', 5, { namespace: 'default' });
|
|
157
|
+
|
|
158
|
+
// Update image
|
|
159
|
+
await resources.deployment.updateImage('my-app', 'app', 'myapp:v2', {
|
|
160
|
+
namespace: 'default'
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
// Wait for ready
|
|
164
|
+
const ready = await resources.deployment.waitForReady('my-app', {
|
|
165
|
+
namespace: 'default',
|
|
166
|
+
timeoutSeconds: 300
|
|
167
|
+
});
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
#### Working with Services
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
// Create service
|
|
174
|
+
const service = await resources.service.create({
|
|
175
|
+
apiVersion: 'v1',
|
|
176
|
+
kind: 'Service',
|
|
177
|
+
metadata: { name: 'my-service', namespace: 'default' },
|
|
178
|
+
spec: {
|
|
179
|
+
selector: { app: 'my-app' },
|
|
180
|
+
ports: [{ port: 80, targetPort: 8080 }],
|
|
181
|
+
type: 'ClusterIP'
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
// Create service from pod
|
|
186
|
+
const svc = await resources.service.createFromPod(pod, 80, {
|
|
187
|
+
serviceName: 'pod-service',
|
|
188
|
+
serviceType: 'NodePort'
|
|
189
|
+
});
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
#### Working with ConfigMaps and Secrets
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
// Create ConfigMap
|
|
196
|
+
const configMap = await resources.configMap.createFromData('app-config', {
|
|
197
|
+
'config.yaml': 'debug: true\nport: 8080',
|
|
198
|
+
'app.properties': 'server.port=8080'
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
// Create Secret
|
|
202
|
+
const secret = await resources.secret.createOpaque('app-secret', {
|
|
203
|
+
username: 'admin',
|
|
204
|
+
password: 'secret123'
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
// Get decoded secret value
|
|
208
|
+
const password = await resources.secret.getDecodedValue('app-secret', 'password');
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
#### Working with Custom Resources
|
|
212
|
+
|
|
213
|
+
```typescript
|
|
214
|
+
// Create client for custom resource
|
|
215
|
+
const crdClient = resources.custom(
|
|
216
|
+
'example.com', // group
|
|
217
|
+
'v1', // version
|
|
218
|
+
'myresources', // plural
|
|
219
|
+
true // namespaced
|
|
220
|
+
);
|
|
221
|
+
|
|
222
|
+
// Create custom resource
|
|
223
|
+
const cr = await crdClient.create({
|
|
224
|
+
apiVersion: 'example.com/v1',
|
|
225
|
+
kind: 'MyResource',
|
|
226
|
+
metadata: { name: 'my-cr', namespace: 'default' },
|
|
227
|
+
spec: { foo: 'bar' }
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
// Update status
|
|
231
|
+
await crdClient.updateStatus('my-cr', {
|
|
232
|
+
phase: 'Running',
|
|
233
|
+
message: 'Resource is ready'
|
|
234
|
+
});
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Watch Operations
|
|
238
|
+
|
|
239
|
+
```typescript
|
|
240
|
+
// Watch pods
|
|
241
|
+
const stopWatching = resources.pod.watch(
|
|
242
|
+
(event) => {
|
|
243
|
+
console.log(`${event.type}: ${event.object.metadata?.name}`);
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
namespace: 'default',
|
|
247
|
+
labelSelector: 'app=my-app'
|
|
248
|
+
}
|
|
249
|
+
);
|
|
250
|
+
|
|
251
|
+
// Stop watching when done
|
|
252
|
+
stopWatching();
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### Utility Functions
|
|
256
|
+
|
|
257
|
+
#### Label Selectors
|
|
258
|
+
|
|
259
|
+
```typescript
|
|
260
|
+
import { LabelSelector } from './utils/ResourceUtils';
|
|
261
|
+
|
|
262
|
+
const selector = new LabelSelector()
|
|
263
|
+
.equals('app', 'my-app')
|
|
264
|
+
.in('env', ['prod', 'staging'])
|
|
265
|
+
.exists('version')
|
|
266
|
+
.build();
|
|
267
|
+
// Result: "app=my-app,env in (prod,staging),version"
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
#### Patch Operations
|
|
271
|
+
|
|
272
|
+
```typescript
|
|
273
|
+
import { PatchBuilder } from './utils/ResourceUtils';
|
|
274
|
+
|
|
275
|
+
const patch = new PatchBuilder()
|
|
276
|
+
.replace('/spec/replicas', 5)
|
|
277
|
+
.add('/metadata/labels/version', 'v2')
|
|
278
|
+
.build();
|
|
279
|
+
|
|
280
|
+
await resources.deployment.patch('my-app', patch);
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
#### Metadata Utilities
|
|
284
|
+
|
|
285
|
+
```typescript
|
|
286
|
+
import { MetadataUtils } from './utils/ResourceUtils';
|
|
287
|
+
|
|
288
|
+
// Generate unique names
|
|
289
|
+
const name = MetadataUtils.generateName('pod'); // e.g., "pod-a3x7f"
|
|
290
|
+
|
|
291
|
+
// Add labels
|
|
292
|
+
MetadataUtils.addLabels(resource, {
|
|
293
|
+
app: 'my-app',
|
|
294
|
+
env: 'prod'
|
|
295
|
+
});
|
|
296
|
+
|
|
297
|
+
// Check resource age
|
|
298
|
+
const age = MetadataUtils.formatAge(resource); // e.g., "2d", "3h"
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
## Error Handling
|
|
302
|
+
|
|
303
|
+
All operations throw `KubernetesOperationError` on failure:
|
|
304
|
+
|
|
305
|
+
```typescript
|
|
306
|
+
import { KubernetesOperationError } from './ResourceOperations';
|
|
307
|
+
|
|
308
|
+
try {
|
|
309
|
+
await resources.pod.get('non-existent');
|
|
310
|
+
} catch (error) {
|
|
311
|
+
if (error instanceof KubernetesOperationError) {
|
|
312
|
+
console.error('Operation:', error.operation);
|
|
313
|
+
console.error('Status:', error.statusCode);
|
|
314
|
+
console.error('Message:', error.message);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
## API Documentation
|
|
320
|
+
|
|
321
|
+
For comprehensive API documentation and more examples, see [ResourceOperations.md](./docs/ResourceOperations.md).
|
|
322
|
+
|
|
323
|
+
## Testing
|
|
324
|
+
|
|
325
|
+
The module includes comprehensive unit tests for all components. Run tests with:
|
|
326
|
+
|
|
327
|
+
```bash
|
|
328
|
+
npm test
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
For integration tests with a real cluster:
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
npm run test:integration
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
## Contributing
|
|
338
|
+
|
|
339
|
+
When adding new features:
|
|
340
|
+
|
|
341
|
+
1. Follow the existing patterns for resource operations
|
|
342
|
+
2. Add comprehensive TypeScript types
|
|
343
|
+
3. Include unit tests
|
|
344
|
+
4. Update documentation
|
|
345
|
+
5. Add usage examples
|
|
346
|
+
|
|
347
|
+
## License
|
|
348
|
+
|
|
349
|
+
This module is part of the kubeview-mcp project.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import * as k8s from '@kubernetes/client-node';
|
|
2
|
+
import { KubernetesClient } from './KubernetesClient.js';
|
|
3
|
+
|
|
4
|
+
// Import resource-specific operations
|
|
5
|
+
import { PodOperations } from './resources/PodOperations.js';
|
|
6
|
+
import { ServiceOperations } from './resources/ServiceOperations.js';
|
|
7
|
+
import { DeploymentOperations } from './resources/DeploymentOperations.js';
|
|
8
|
+
import { ConfigMapOperations } from './resources/ConfigMapOperations.js';
|
|
9
|
+
import { SecretOperations } from './resources/SecretOperations.js';
|
|
10
|
+
import { CustomResourceOperations } from './resources/CustomResourceOperations.js';
|
|
11
|
+
import { NamespaceOperations } from './resources/NamespaceOperations.js';
|
|
12
|
+
import { PersistentVolumeOperations } from './resources/PersistentVolumeOperations.js';
|
|
13
|
+
import { PersistentVolumeClaimOperations } from './resources/PersistentVolumeClaimOperations.js';
|
|
14
|
+
import { IngressOperations } from './resources/IngressOperations.js';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Resource operations manager
|
|
18
|
+
*/
|
|
19
|
+
export class ResourceOperations {
|
|
20
|
+
private pods: PodOperations;
|
|
21
|
+
private services: ServiceOperations;
|
|
22
|
+
private deployments: DeploymentOperations;
|
|
23
|
+
private configMaps: ConfigMapOperations;
|
|
24
|
+
private secrets: SecretOperations;
|
|
25
|
+
private namespaces: NamespaceOperations;
|
|
26
|
+
private persistentVolumesOps: PersistentVolumeOperations;
|
|
27
|
+
private persistentVolumeClaimsOps: PersistentVolumeClaimOperations;
|
|
28
|
+
private ingresses: IngressOperations;
|
|
29
|
+
|
|
30
|
+
constructor(private client: KubernetesClient) {
|
|
31
|
+
this.pods = new PodOperations(client);
|
|
32
|
+
this.services = new ServiceOperations(client);
|
|
33
|
+
this.deployments = new DeploymentOperations(client);
|
|
34
|
+
this.configMaps = new ConfigMapOperations(client);
|
|
35
|
+
this.secrets = new SecretOperations(client);
|
|
36
|
+
this.namespaces = new NamespaceOperations(client);
|
|
37
|
+
this.persistentVolumesOps = new PersistentVolumeOperations(client);
|
|
38
|
+
this.persistentVolumeClaimsOps = new PersistentVolumeClaimOperations(client);
|
|
39
|
+
this.ingresses = new IngressOperations(client);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Get pod operations
|
|
44
|
+
*/
|
|
45
|
+
public get pod(): PodOperations {
|
|
46
|
+
return this.pods;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Get service operations
|
|
51
|
+
*/
|
|
52
|
+
public get service(): ServiceOperations {
|
|
53
|
+
return this.services;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Get deployment operations
|
|
58
|
+
*/
|
|
59
|
+
public get deployment(): DeploymentOperations {
|
|
60
|
+
return this.deployments;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Get configMap operations
|
|
65
|
+
*/
|
|
66
|
+
public get configMap(): ConfigMapOperations {
|
|
67
|
+
return this.configMaps;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Get secret operations
|
|
72
|
+
*/
|
|
73
|
+
public get secret(): SecretOperations {
|
|
74
|
+
return this.secrets;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Get namespace operations
|
|
79
|
+
*/
|
|
80
|
+
public get namespace(): NamespaceOperations {
|
|
81
|
+
return this.namespaces;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Get persistent volume operations
|
|
86
|
+
*/
|
|
87
|
+
public get persistentVolumes(): PersistentVolumeOperations {
|
|
88
|
+
return this.persistentVolumesOps;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Get persistent volume claim operations
|
|
93
|
+
*/
|
|
94
|
+
public get persistentVolumeClaims(): PersistentVolumeClaimOperations {
|
|
95
|
+
return this.persistentVolumeClaimsOps;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Get ingress operations
|
|
100
|
+
*/
|
|
101
|
+
public get ingress(): IngressOperations {
|
|
102
|
+
return this.ingresses;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Create a custom resource operations instance
|
|
107
|
+
*/
|
|
108
|
+
public custom<T extends k8s.KubernetesObject>(
|
|
109
|
+
group: string,
|
|
110
|
+
version: string,
|
|
111
|
+
plural: string,
|
|
112
|
+
namespaced = true,
|
|
113
|
+
): CustomResourceOperations<T> {
|
|
114
|
+
return new CustomResourceOperations<T>(this.client, group, version, plural, namespaced);
|
|
115
|
+
}
|
|
116
|
+
}
|