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,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced error handling with circuit breaker and observability
|
|
3
|
+
*/
|
|
4
|
+
import { Logger } from 'winston';
|
|
5
|
+
import { ErrorContext } from './ErrorHandling.js';
|
|
6
|
+
import { RetryStrategy, RetryConfig } from './RetryStrategy.js';
|
|
7
|
+
import { CircuitBreaker, CircuitBreakerConfig, CircuitBreakerFactory } from './CircuitBreaker.js';
|
|
8
|
+
/**
|
|
9
|
+
* Error handler interface
|
|
10
|
+
*/
|
|
11
|
+
export interface IErrorHandler {
|
|
12
|
+
/**
|
|
13
|
+
* Handle an error
|
|
14
|
+
* @returns true if error was handled, false to propagate
|
|
15
|
+
*/
|
|
16
|
+
handle(error: any, context?: ErrorContext): Promise<boolean> | boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Transform an error
|
|
19
|
+
*/
|
|
20
|
+
transform?(error: any, context?: ErrorContext): any;
|
|
21
|
+
/**
|
|
22
|
+
* Check if handler can handle this error
|
|
23
|
+
*/
|
|
24
|
+
canHandle?(error: any): boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Error handler chain configuration
|
|
28
|
+
*/
|
|
29
|
+
export interface ErrorHandlerChainConfig {
|
|
30
|
+
handlers: IErrorHandler[];
|
|
31
|
+
logger?: Logger;
|
|
32
|
+
stopOnFirstHandled?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Composite error handler that chains multiple handlers
|
|
36
|
+
*/
|
|
37
|
+
export declare class ErrorHandlerChain implements IErrorHandler {
|
|
38
|
+
private readonly handlers;
|
|
39
|
+
private readonly logger?;
|
|
40
|
+
private readonly stopOnFirstHandled;
|
|
41
|
+
constructor(config: ErrorHandlerChainConfig);
|
|
42
|
+
handle(error: any, context?: ErrorContext): Promise<boolean>;
|
|
43
|
+
transform(error: any, context?: ErrorContext): any;
|
|
44
|
+
canHandle(error: any): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Add a handler to the chain
|
|
47
|
+
*/
|
|
48
|
+
addHandler(handler: IErrorHandler): void;
|
|
49
|
+
/**
|
|
50
|
+
* Remove a handler from the chain
|
|
51
|
+
*/
|
|
52
|
+
removeHandler(handler: IErrorHandler): void;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Logging error handler
|
|
56
|
+
*/
|
|
57
|
+
export declare class LoggingErrorHandler implements IErrorHandler {
|
|
58
|
+
private readonly logger;
|
|
59
|
+
private readonly logLevel;
|
|
60
|
+
constructor(logger: Logger, logLevel?: 'error' | 'warn' | 'info');
|
|
61
|
+
handle(error: any, context?: ErrorContext): boolean;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Retry error handler with configurable strategy
|
|
65
|
+
*/
|
|
66
|
+
export declare class RetryErrorHandler implements IErrorHandler {
|
|
67
|
+
private readonly retryStrategy;
|
|
68
|
+
constructor(retryConfig?: Partial<RetryConfig>, logger?: Logger);
|
|
69
|
+
canHandle(error: any): boolean;
|
|
70
|
+
handle(_error: any, _context?: ErrorContext): Promise<boolean>;
|
|
71
|
+
/**
|
|
72
|
+
* Get the retry strategy for use in operations
|
|
73
|
+
*/
|
|
74
|
+
getRetryStrategy(): RetryStrategy;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Circuit breaker error handler
|
|
78
|
+
*/
|
|
79
|
+
export declare class CircuitBreakerErrorHandler implements IErrorHandler {
|
|
80
|
+
private readonly circuitBreakerFactory;
|
|
81
|
+
private readonly defaultConfig;
|
|
82
|
+
constructor(defaultConfig?: Partial<Omit<CircuitBreakerConfig, 'name'>>, logger?: Logger);
|
|
83
|
+
handle(_error: any, context?: ErrorContext): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Get or create a circuit breaker for an operation
|
|
86
|
+
*/
|
|
87
|
+
getCircuitBreaker(operationName: string): CircuitBreaker;
|
|
88
|
+
/**
|
|
89
|
+
* Get circuit breaker factory
|
|
90
|
+
*/
|
|
91
|
+
getFactory(): CircuitBreakerFactory;
|
|
92
|
+
/**
|
|
93
|
+
* Cleanup resources
|
|
94
|
+
*/
|
|
95
|
+
dispose(): void;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Transformation error handler that enriches errors with context
|
|
99
|
+
*/
|
|
100
|
+
export declare class ContextEnrichmentHandler implements IErrorHandler {
|
|
101
|
+
handle(_error: any, _context?: ErrorContext): boolean;
|
|
102
|
+
transform(error: any, context?: ErrorContext): any;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Rate limit error handler with backoff
|
|
106
|
+
*/
|
|
107
|
+
export declare class RateLimitHandler implements IErrorHandler {
|
|
108
|
+
private readonly logger?;
|
|
109
|
+
private readonly rateLimits;
|
|
110
|
+
constructor(logger?: Logger | undefined);
|
|
111
|
+
canHandle(error: any): boolean;
|
|
112
|
+
handle(error: any, context?: ErrorContext): Promise<boolean>;
|
|
113
|
+
/**
|
|
114
|
+
* Check if operation is currently rate limited
|
|
115
|
+
*/
|
|
116
|
+
isRateLimited(operation: string): boolean;
|
|
117
|
+
/**
|
|
118
|
+
* Get remaining wait time for rate limited operation
|
|
119
|
+
*/
|
|
120
|
+
getRemainingWaitTime(operation: string): number;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Default error handler factory
|
|
124
|
+
*/
|
|
125
|
+
export declare class ErrorHandlerFactory {
|
|
126
|
+
static createDefault(logger?: Logger): ErrorHandlerChain;
|
|
127
|
+
static createWithRetry(retryConfig?: Partial<RetryConfig>, logger?: Logger): ErrorHandlerChain;
|
|
128
|
+
static createWithCircuitBreaker(circuitConfig?: Partial<Omit<CircuitBreakerConfig, 'name'>>, logger?: Logger): ErrorHandlerChain;
|
|
129
|
+
static createComplete(retryConfig?: Partial<RetryConfig>, circuitConfig?: Partial<Omit<CircuitBreakerConfig, 'name'>>, logger?: Logger): {
|
|
130
|
+
chain: ErrorHandlerChain;
|
|
131
|
+
retryHandler: RetryErrorHandler;
|
|
132
|
+
circuitHandler: CircuitBreakerErrorHandler;
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Error recovery strategies
|
|
137
|
+
*/
|
|
138
|
+
export interface IErrorRecovery<T> {
|
|
139
|
+
/**
|
|
140
|
+
* Attempt to recover from an error
|
|
141
|
+
* @returns Recovery result or throws if recovery fails
|
|
142
|
+
*/
|
|
143
|
+
recover(error: any, context?: ErrorContext): Promise<T> | T;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Fallback recovery strategy
|
|
147
|
+
*/
|
|
148
|
+
export declare class FallbackRecovery<T> implements IErrorRecovery<T> {
|
|
149
|
+
private readonly fallbackValue;
|
|
150
|
+
private readonly condition?;
|
|
151
|
+
constructor(fallbackValue: T | (() => T | Promise<T>), condition?: ((error: any) => boolean) | undefined);
|
|
152
|
+
recover(error: any, _context?: ErrorContext): Promise<T>;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Cache-based recovery strategy
|
|
156
|
+
*/
|
|
157
|
+
export declare class CacheRecovery<T> implements IErrorRecovery<T> {
|
|
158
|
+
private readonly cacheKey;
|
|
159
|
+
private readonly ttlMs;
|
|
160
|
+
private cache;
|
|
161
|
+
constructor(cacheKey: (context?: ErrorContext) => string, ttlMs?: number);
|
|
162
|
+
recover(error: any, context?: ErrorContext): Promise<T>;
|
|
163
|
+
/**
|
|
164
|
+
* Store value in cache
|
|
165
|
+
*/
|
|
166
|
+
store(value: T, context?: ErrorContext): void;
|
|
167
|
+
/**
|
|
168
|
+
* Clear cache
|
|
169
|
+
*/
|
|
170
|
+
clear(): void;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=ErrorHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/kubernetes/ErrorHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enhanced error handling with circuit breaker and observability
|
|
3
|
+
*/
|
|
4
|
+
import { KubernetesError, createContextualError } from './ErrorHandling.js';
|
|
5
|
+
import { RetryStrategy, RETRY_PRESETS } from './RetryStrategy.js';
|
|
6
|
+
import { CircuitBreakerFactory } from './CircuitBreaker.js';
|
|
7
|
+
/**
|
|
8
|
+
* Composite error handler that chains multiple handlers
|
|
9
|
+
*/
|
|
10
|
+
export class ErrorHandlerChain {
|
|
11
|
+
handlers;
|
|
12
|
+
logger;
|
|
13
|
+
stopOnFirstHandled;
|
|
14
|
+
constructor(config) {
|
|
15
|
+
this.handlers = config.handlers;
|
|
16
|
+
this.logger = config.logger;
|
|
17
|
+
this.stopOnFirstHandled = config.stopOnFirstHandled ?? true;
|
|
18
|
+
}
|
|
19
|
+
async handle(error, context) {
|
|
20
|
+
let handled = false;
|
|
21
|
+
for (const handler of this.handlers) {
|
|
22
|
+
try {
|
|
23
|
+
// Check if handler can handle this error
|
|
24
|
+
if (handler.canHandle && !handler.canHandle(error)) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
// Let handler process the error
|
|
28
|
+
const result = await handler.handle(error, context);
|
|
29
|
+
if (result) {
|
|
30
|
+
handled = true;
|
|
31
|
+
this.logger?.debug(`Error handled by ${handler.constructor.name}`);
|
|
32
|
+
if (this.stopOnFirstHandled) {
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (handlerError) {
|
|
38
|
+
this.logger?.error(`Error in handler ${handler.constructor.name}:`, handlerError);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return handled;
|
|
42
|
+
}
|
|
43
|
+
transform(error, context) {
|
|
44
|
+
let transformedError = error;
|
|
45
|
+
for (const handler of this.handlers) {
|
|
46
|
+
if (handler.transform) {
|
|
47
|
+
try {
|
|
48
|
+
transformedError = handler.transform(transformedError, context);
|
|
49
|
+
}
|
|
50
|
+
catch (transformError) {
|
|
51
|
+
this.logger?.error(`Error in transform ${handler.constructor.name}:`, transformError);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return transformedError;
|
|
56
|
+
}
|
|
57
|
+
canHandle(error) {
|
|
58
|
+
return this.handlers.some((h) => !h.canHandle || h.canHandle(error));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Add a handler to the chain
|
|
62
|
+
*/
|
|
63
|
+
addHandler(handler) {
|
|
64
|
+
this.handlers.push(handler);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Remove a handler from the chain
|
|
68
|
+
*/
|
|
69
|
+
removeHandler(handler) {
|
|
70
|
+
const index = this.handlers.indexOf(handler);
|
|
71
|
+
if (index !== -1) {
|
|
72
|
+
this.handlers.splice(index, 1);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Logging error handler
|
|
78
|
+
*/
|
|
79
|
+
export class LoggingErrorHandler {
|
|
80
|
+
logger;
|
|
81
|
+
logLevel;
|
|
82
|
+
constructor(logger, logLevel = 'error') {
|
|
83
|
+
this.logger = logger;
|
|
84
|
+
this.logLevel = logLevel;
|
|
85
|
+
}
|
|
86
|
+
handle(error, context) {
|
|
87
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
88
|
+
const details = {
|
|
89
|
+
error: error instanceof Error ? error.stack : error,
|
|
90
|
+
context,
|
|
91
|
+
};
|
|
92
|
+
this.logger[this.logLevel](message, details);
|
|
93
|
+
return false; // Don't stop propagation
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Retry error handler with configurable strategy
|
|
98
|
+
*/
|
|
99
|
+
export class RetryErrorHandler {
|
|
100
|
+
retryStrategy;
|
|
101
|
+
constructor(retryConfig = RETRY_PRESETS.STANDARD, logger) {
|
|
102
|
+
this.retryStrategy = new RetryStrategy(retryConfig, logger);
|
|
103
|
+
}
|
|
104
|
+
canHandle(error) {
|
|
105
|
+
if (error instanceof KubernetesError) {
|
|
106
|
+
return error.retryable;
|
|
107
|
+
}
|
|
108
|
+
return true; // Attempt retry for other errors
|
|
109
|
+
}
|
|
110
|
+
async handle(_error, _context) {
|
|
111
|
+
// This handler doesn't directly handle errors but provides retry capability
|
|
112
|
+
// It should be used in conjunction with operation execution
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get the retry strategy for use in operations
|
|
117
|
+
*/
|
|
118
|
+
getRetryStrategy() {
|
|
119
|
+
return this.retryStrategy;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Circuit breaker error handler
|
|
124
|
+
*/
|
|
125
|
+
export class CircuitBreakerErrorHandler {
|
|
126
|
+
circuitBreakerFactory;
|
|
127
|
+
defaultConfig;
|
|
128
|
+
constructor(defaultConfig, logger) {
|
|
129
|
+
this.circuitBreakerFactory = new CircuitBreakerFactory(logger);
|
|
130
|
+
this.defaultConfig = {
|
|
131
|
+
failureThreshold: 5,
|
|
132
|
+
successThreshold: 2,
|
|
133
|
+
failureCountWindow: 60000,
|
|
134
|
+
resetTimeout: 30000,
|
|
135
|
+
...defaultConfig,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
handle(_error, context) {
|
|
139
|
+
if (context?.operation) {
|
|
140
|
+
// Circuit breaker will track this failure internally
|
|
141
|
+
// when execute() was called
|
|
142
|
+
this.getCircuitBreaker(context.operation);
|
|
143
|
+
}
|
|
144
|
+
return false; // Don't stop propagation
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Get or create a circuit breaker for an operation
|
|
148
|
+
*/
|
|
149
|
+
getCircuitBreaker(operationName) {
|
|
150
|
+
return this.circuitBreakerFactory.getOrCreate({
|
|
151
|
+
...this.defaultConfig,
|
|
152
|
+
name: operationName,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get circuit breaker factory
|
|
157
|
+
*/
|
|
158
|
+
getFactory() {
|
|
159
|
+
return this.circuitBreakerFactory;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Cleanup resources
|
|
163
|
+
*/
|
|
164
|
+
dispose() {
|
|
165
|
+
this.circuitBreakerFactory.dispose();
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Transformation error handler that enriches errors with context
|
|
170
|
+
*/
|
|
171
|
+
export class ContextEnrichmentHandler {
|
|
172
|
+
handle(_error, _context) {
|
|
173
|
+
return false; // Just transform, don't handle
|
|
174
|
+
}
|
|
175
|
+
transform(error, context) {
|
|
176
|
+
if (context && error instanceof KubernetesError) {
|
|
177
|
+
return createContextualError(error, context);
|
|
178
|
+
}
|
|
179
|
+
return error;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Rate limit error handler with backoff
|
|
184
|
+
*/
|
|
185
|
+
export class RateLimitHandler {
|
|
186
|
+
logger;
|
|
187
|
+
rateLimits = new Map();
|
|
188
|
+
constructor(logger) {
|
|
189
|
+
this.logger = logger;
|
|
190
|
+
}
|
|
191
|
+
canHandle(error) {
|
|
192
|
+
return error instanceof KubernetesError && error.code === 'RATE_LIMIT_ERROR';
|
|
193
|
+
}
|
|
194
|
+
async handle(error, context) {
|
|
195
|
+
if (error instanceof KubernetesError && error.details?.retryAfter) {
|
|
196
|
+
const key = context?.operation || 'default';
|
|
197
|
+
const retryAfter = error.details.retryAfter * 1000; // Convert to ms
|
|
198
|
+
this.rateLimits.set(key, {
|
|
199
|
+
resetTime: Date.now() + retryAfter,
|
|
200
|
+
retryAfter,
|
|
201
|
+
});
|
|
202
|
+
this.logger?.warn(`Rate limited for operation '${key}'. Retry after ${retryAfter}ms`);
|
|
203
|
+
// Wait for the specified time
|
|
204
|
+
await new Promise((resolve) => setTimeout(resolve, retryAfter));
|
|
205
|
+
return true; // Handled by waiting
|
|
206
|
+
}
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Check if operation is currently rate limited
|
|
211
|
+
*/
|
|
212
|
+
isRateLimited(operation) {
|
|
213
|
+
const limit = this.rateLimits.get(operation);
|
|
214
|
+
if (!limit)
|
|
215
|
+
return false;
|
|
216
|
+
if (Date.now() >= limit.resetTime) {
|
|
217
|
+
this.rateLimits.delete(operation);
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Get remaining wait time for rate limited operation
|
|
224
|
+
*/
|
|
225
|
+
getRemainingWaitTime(operation) {
|
|
226
|
+
const limit = this.rateLimits.get(operation);
|
|
227
|
+
if (!limit)
|
|
228
|
+
return 0;
|
|
229
|
+
const remaining = limit.resetTime - Date.now();
|
|
230
|
+
return Math.max(0, remaining);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Default error handler factory
|
|
235
|
+
*/
|
|
236
|
+
export class ErrorHandlerFactory {
|
|
237
|
+
static createDefault(logger) {
|
|
238
|
+
return new ErrorHandlerChain({
|
|
239
|
+
handlers: [
|
|
240
|
+
new LoggingErrorHandler(logger || console),
|
|
241
|
+
new ContextEnrichmentHandler(),
|
|
242
|
+
new RateLimitHandler(logger),
|
|
243
|
+
],
|
|
244
|
+
logger,
|
|
245
|
+
stopOnFirstHandled: false,
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
static createWithRetry(retryConfig, logger) {
|
|
249
|
+
const chain = this.createDefault(logger);
|
|
250
|
+
chain.addHandler(new RetryErrorHandler(retryConfig, logger));
|
|
251
|
+
return chain;
|
|
252
|
+
}
|
|
253
|
+
static createWithCircuitBreaker(circuitConfig, logger) {
|
|
254
|
+
const chain = this.createDefault(logger);
|
|
255
|
+
chain.addHandler(new CircuitBreakerErrorHandler(circuitConfig, logger));
|
|
256
|
+
return chain;
|
|
257
|
+
}
|
|
258
|
+
static createComplete(retryConfig, circuitConfig, logger) {
|
|
259
|
+
const retryHandler = new RetryErrorHandler(retryConfig, logger);
|
|
260
|
+
const circuitHandler = new CircuitBreakerErrorHandler(circuitConfig, logger);
|
|
261
|
+
const chain = new ErrorHandlerChain({
|
|
262
|
+
handlers: [
|
|
263
|
+
new LoggingErrorHandler(logger || console),
|
|
264
|
+
new ContextEnrichmentHandler(),
|
|
265
|
+
new RateLimitHandler(logger),
|
|
266
|
+
retryHandler,
|
|
267
|
+
circuitHandler,
|
|
268
|
+
],
|
|
269
|
+
logger,
|
|
270
|
+
stopOnFirstHandled: false,
|
|
271
|
+
});
|
|
272
|
+
return { chain, retryHandler, circuitHandler };
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Fallback recovery strategy
|
|
277
|
+
*/
|
|
278
|
+
export class FallbackRecovery {
|
|
279
|
+
fallbackValue;
|
|
280
|
+
condition;
|
|
281
|
+
constructor(fallbackValue, condition) {
|
|
282
|
+
this.fallbackValue = fallbackValue;
|
|
283
|
+
this.condition = condition;
|
|
284
|
+
}
|
|
285
|
+
async recover(error, _context) {
|
|
286
|
+
if (this.condition && !this.condition(error)) {
|
|
287
|
+
throw error;
|
|
288
|
+
}
|
|
289
|
+
if (typeof this.fallbackValue === 'function') {
|
|
290
|
+
return this.fallbackValue();
|
|
291
|
+
}
|
|
292
|
+
return this.fallbackValue;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Cache-based recovery strategy
|
|
297
|
+
*/
|
|
298
|
+
export class CacheRecovery {
|
|
299
|
+
cacheKey;
|
|
300
|
+
ttlMs;
|
|
301
|
+
cache = new Map();
|
|
302
|
+
constructor(cacheKey, ttlMs = 300000) {
|
|
303
|
+
this.cacheKey = cacheKey;
|
|
304
|
+
this.ttlMs = ttlMs;
|
|
305
|
+
}
|
|
306
|
+
async recover(error, context) {
|
|
307
|
+
const key = this.cacheKey(context);
|
|
308
|
+
const cached = this.cache.get(key);
|
|
309
|
+
if (cached && Date.now() - cached.timestamp < this.ttlMs) {
|
|
310
|
+
return cached.value;
|
|
311
|
+
}
|
|
312
|
+
throw error; // No valid cache entry
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Store value in cache
|
|
316
|
+
*/
|
|
317
|
+
store(value, context) {
|
|
318
|
+
const key = this.cacheKey(context);
|
|
319
|
+
this.cache.set(key, { value, timestamp: Date.now() });
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Clear cache
|
|
323
|
+
*/
|
|
324
|
+
clear() {
|
|
325
|
+
this.cache.clear();
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
//# sourceMappingURL=ErrorHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorHandler.js","sourceRoot":"","sources":["../../../src/kubernetes/ErrorHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kubernetes Client Error Handling Module
|
|
3
|
+
*
|
|
4
|
+
* This module provides a comprehensive error handling system for Kubernetes operations,
|
|
5
|
+
* including typed errors, monitoring, and conversion utilities.
|
|
6
|
+
*/
|
|
7
|
+
import { Logger } from 'winston';
|
|
8
|
+
/**
|
|
9
|
+
* Base error class for all Kubernetes-related errors
|
|
10
|
+
*/
|
|
11
|
+
export declare class KubernetesError extends Error {
|
|
12
|
+
readonly code: string;
|
|
13
|
+
readonly statusCode?: number;
|
|
14
|
+
readonly details: Record<string, any>;
|
|
15
|
+
readonly retryable: boolean;
|
|
16
|
+
readonly timestamp: Date;
|
|
17
|
+
constructor(message: string, code: string, statusCode?: number, retryable?: boolean, details?: Record<string, any>);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Error thrown when authentication fails
|
|
21
|
+
*/
|
|
22
|
+
export declare class AuthenticationError extends KubernetesError {
|
|
23
|
+
constructor(message: string, details?: Record<string, any>);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Error thrown when authorization fails
|
|
27
|
+
*/
|
|
28
|
+
export declare class AuthorizationError extends KubernetesError {
|
|
29
|
+
constructor(message: string, details?: Record<string, any>);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Error thrown when a resource is not found
|
|
33
|
+
*/
|
|
34
|
+
export declare class ResourceNotFoundError extends KubernetesError {
|
|
35
|
+
constructor(message: string, details?: Record<string, any>);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Error thrown when a resource already exists (conflict)
|
|
39
|
+
*/
|
|
40
|
+
export declare class ResourceConflictError extends KubernetesError {
|
|
41
|
+
constructor(message: string, details?: Record<string, any>);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Error thrown when request validation fails
|
|
45
|
+
*/
|
|
46
|
+
export declare class ValidationError extends KubernetesError {
|
|
47
|
+
constructor(message: string, details?: Record<string, any>);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Error thrown when the server is unavailable
|
|
51
|
+
*/
|
|
52
|
+
export declare class ServerUnavailableError extends KubernetesError {
|
|
53
|
+
constructor(message: string, details?: Record<string, any>);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Error thrown when a timeout occurs
|
|
57
|
+
*/
|
|
58
|
+
export declare class TimeoutError extends KubernetesError {
|
|
59
|
+
constructor(message: string, details?: Record<string, any>);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Error thrown when rate limiting is encountered
|
|
63
|
+
*/
|
|
64
|
+
export declare class RateLimitError extends KubernetesError {
|
|
65
|
+
constructor(message: string, retryAfter?: number, details?: Record<string, any>);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Error thrown for network-related issues
|
|
69
|
+
*/
|
|
70
|
+
export declare class NetworkError extends KubernetesError {
|
|
71
|
+
constructor(message: string, details?: Record<string, any>);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Convert Kubernetes API errors to typed errors
|
|
75
|
+
*/
|
|
76
|
+
export declare function convertApiError(error: any): KubernetesError;
|
|
77
|
+
/**
|
|
78
|
+
* Error statistics tracking
|
|
79
|
+
*/
|
|
80
|
+
export interface ErrorStats {
|
|
81
|
+
total: number;
|
|
82
|
+
byType: Record<string, number>;
|
|
83
|
+
byStatusCode: Record<number, number>;
|
|
84
|
+
retryable: number;
|
|
85
|
+
nonRetryable: number;
|
|
86
|
+
lastError?: {
|
|
87
|
+
message: string;
|
|
88
|
+
code: string;
|
|
89
|
+
timestamp: Date;
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Error monitor for tracking and analyzing errors
|
|
94
|
+
*/
|
|
95
|
+
export declare class ErrorMonitor {
|
|
96
|
+
private logger?;
|
|
97
|
+
private stats;
|
|
98
|
+
private errorLog;
|
|
99
|
+
private readonly maxLogSize;
|
|
100
|
+
constructor(logger?: Logger | undefined);
|
|
101
|
+
/**
|
|
102
|
+
* Record an error
|
|
103
|
+
*/
|
|
104
|
+
recordError(error: KubernetesError, operation: string): void;
|
|
105
|
+
/**
|
|
106
|
+
* Get error statistics
|
|
107
|
+
*/
|
|
108
|
+
getStats(): ErrorStats;
|
|
109
|
+
/**
|
|
110
|
+
* Get recent errors
|
|
111
|
+
*/
|
|
112
|
+
getRecentErrors(limit?: number): Array<{
|
|
113
|
+
error: KubernetesError;
|
|
114
|
+
operation: string;
|
|
115
|
+
timestamp: Date;
|
|
116
|
+
}>;
|
|
117
|
+
/**
|
|
118
|
+
* Clear statistics
|
|
119
|
+
*/
|
|
120
|
+
clearStats(): void;
|
|
121
|
+
/**
|
|
122
|
+
* Get error rate for a specific time window
|
|
123
|
+
*/
|
|
124
|
+
getErrorRate(windowMs?: number): number;
|
|
125
|
+
/**
|
|
126
|
+
* Check if a specific error type is trending
|
|
127
|
+
*/
|
|
128
|
+
isErrorTrending(errorType: string, threshold?: number, windowMs?: number): boolean;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Error context for enhanced error information
|
|
132
|
+
*/
|
|
133
|
+
export interface ErrorContext {
|
|
134
|
+
operation: string;
|
|
135
|
+
resource?: {
|
|
136
|
+
kind: string;
|
|
137
|
+
name?: string;
|
|
138
|
+
namespace?: string;
|
|
139
|
+
};
|
|
140
|
+
cluster?: string;
|
|
141
|
+
user?: string;
|
|
142
|
+
additionalInfo?: Record<string, any>;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Enhanced error with context
|
|
146
|
+
*/
|
|
147
|
+
export declare function createContextualError(baseError: KubernetesError, context: ErrorContext): KubernetesError;
|
|
148
|
+
//# sourceMappingURL=ErrorHandling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorHandling.d.ts","sourceRoot":"","sources":["../../../src/kubernetes/ErrorHandling.ts"],"names":[],"mappings":"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"}
|