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,606 @@
|
|
|
1
|
+
# Kubernetes Resource Operations API Documentation
|
|
2
|
+
|
|
3
|
+
This document provides comprehensive documentation for the Kubernetes Resource Operations API, which offers a high-level interface for managing Kubernetes resources.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
1. [Getting Started](#getting-started)
|
|
8
|
+
2. [Resource Operations](#resource-operations)
|
|
9
|
+
3. [Pod Operations](#pod-operations)
|
|
10
|
+
4. [Service Operations](#service-operations)
|
|
11
|
+
5. [Deployment Operations](#deployment-operations)
|
|
12
|
+
6. [ConfigMap Operations](#configmap-operations)
|
|
13
|
+
7. [Secret Operations](#secret-operations)
|
|
14
|
+
8. [Custom Resource Operations](#custom-resource-operations)
|
|
15
|
+
9. [Utility Functions](#utility-functions)
|
|
16
|
+
10. [Error Handling](#error-handling)
|
|
17
|
+
11. [Watch Operations](#watch-operations)
|
|
18
|
+
|
|
19
|
+
## Getting Started
|
|
20
|
+
|
|
21
|
+
First, create a Kubernetes client and access resource operations:
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
import { KubernetesClient } from './KubernetesClient';
|
|
25
|
+
|
|
26
|
+
// Create client with kubeconfig
|
|
27
|
+
const client = KubernetesClient.fromKubeConfig();
|
|
28
|
+
|
|
29
|
+
// Access resource operations
|
|
30
|
+
const resources = client.resources;
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Resource Operations
|
|
34
|
+
|
|
35
|
+
All resource operations follow a consistent interface with these common methods:
|
|
36
|
+
|
|
37
|
+
- `create(resource, options?)` - Create a new resource
|
|
38
|
+
- `get(name, options?)` - Get a resource by name
|
|
39
|
+
- `update(resource, options?)` - Update an existing resource
|
|
40
|
+
- `patch(name, patch, options?)` - Patch a resource
|
|
41
|
+
- `delete(name, options?)` - Delete a resource
|
|
42
|
+
- `list(options?)` - List resources
|
|
43
|
+
- `watch(callback, options?)` - Watch resources for changes
|
|
44
|
+
|
|
45
|
+
### Common Options
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
interface ResourceOperationOptions {
|
|
49
|
+
namespace?: string; // Namespace for the operation
|
|
50
|
+
labelSelector?: string; // Label selector for filtering
|
|
51
|
+
fieldSelector?: string; // Field selector for filtering
|
|
52
|
+
limit?: number; // Maximum number of results
|
|
53
|
+
continueToken?: string; // Continue token for pagination
|
|
54
|
+
resourceVersion?: string; // Resource version for optimistic concurrency
|
|
55
|
+
timeoutSeconds?: number; // Timeout for the operation
|
|
56
|
+
propagationPolicy?: 'Foreground' | 'Background' | 'Orphan';
|
|
57
|
+
gracePeriodSeconds?: number; // Grace period for deletion
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Pod Operations
|
|
62
|
+
|
|
63
|
+
### Create a Pod
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
import * as k8s from '@kubernetes/client-node';
|
|
67
|
+
|
|
68
|
+
const pod: k8s.V1Pod = {
|
|
69
|
+
apiVersion: 'v1',
|
|
70
|
+
kind: 'Pod',
|
|
71
|
+
metadata: {
|
|
72
|
+
name: 'my-pod',
|
|
73
|
+
namespace: 'default',
|
|
74
|
+
labels: {
|
|
75
|
+
app: 'my-app'
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
spec: {
|
|
79
|
+
containers: [{
|
|
80
|
+
name: 'nginx',
|
|
81
|
+
image: 'nginx:latest',
|
|
82
|
+
ports: [{
|
|
83
|
+
containerPort: 80
|
|
84
|
+
}]
|
|
85
|
+
}]
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
const createdPod = await resources.pod.create(pod);
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Get Pod Logs
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
// Get logs from a pod
|
|
96
|
+
const logs = await resources.pod.getLogs('my-pod', {
|
|
97
|
+
namespace: 'default',
|
|
98
|
+
container: 'nginx',
|
|
99
|
+
tailLines: 100,
|
|
100
|
+
timestamps: true
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
// Stream logs in real-time
|
|
104
|
+
const stopStreaming = resources.pod.streamLogs(
|
|
105
|
+
'my-pod',
|
|
106
|
+
(data) => console.log(data),
|
|
107
|
+
{
|
|
108
|
+
namespace: 'default',
|
|
109
|
+
follow: true,
|
|
110
|
+
tailLines: 10
|
|
111
|
+
}
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
// Stop streaming when done
|
|
115
|
+
stopStreaming();
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Execute Commands in Pod
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
const result = await resources.pod.exec('my-pod', ['ls', '-la'], {
|
|
122
|
+
namespace: 'default',
|
|
123
|
+
container: 'nginx'
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
console.log('stdout:', result.stdout);
|
|
127
|
+
console.log('stderr:', result.stderr);
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### List Pods with Filters
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
// List all pods in a namespace
|
|
134
|
+
const pods = await resources.pod.list({
|
|
135
|
+
namespace: 'default'
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
// List pods with label selector
|
|
139
|
+
const filteredPods = await resources.pod.list({
|
|
140
|
+
namespace: 'default',
|
|
141
|
+
labelSelector: 'app=my-app,env=production'
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
// List pods with field selector
|
|
145
|
+
const runningPods = await resources.pod.list({
|
|
146
|
+
namespace: 'default',
|
|
147
|
+
fieldSelector: 'status.phase=Running'
|
|
148
|
+
});
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Service Operations
|
|
152
|
+
|
|
153
|
+
### Create a Service
|
|
154
|
+
|
|
155
|
+
```typescript
|
|
156
|
+
const service: k8s.V1Service = {
|
|
157
|
+
apiVersion: 'v1',
|
|
158
|
+
kind: 'Service',
|
|
159
|
+
metadata: {
|
|
160
|
+
name: 'my-service',
|
|
161
|
+
namespace: 'default'
|
|
162
|
+
},
|
|
163
|
+
spec: {
|
|
164
|
+
selector: {
|
|
165
|
+
app: 'my-app'
|
|
166
|
+
},
|
|
167
|
+
ports: [{
|
|
168
|
+
protocol: 'TCP',
|
|
169
|
+
port: 80,
|
|
170
|
+
targetPort: 8080
|
|
171
|
+
}],
|
|
172
|
+
type: 'ClusterIP'
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
const createdService = await resources.service.create(service);
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Create Service from Pod
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
// Automatically create a service for a pod
|
|
183
|
+
const service = await resources.service.createFromPod(pod, 80, {
|
|
184
|
+
namespace: 'default',
|
|
185
|
+
serviceName: 'my-pod-service',
|
|
186
|
+
serviceType: 'NodePort'
|
|
187
|
+
});
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Get Service Endpoints
|
|
191
|
+
|
|
192
|
+
```typescript
|
|
193
|
+
const endpoints = await resources.service.getEndpoints('my-service', {
|
|
194
|
+
namespace: 'default'
|
|
195
|
+
});
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Deployment Operations
|
|
199
|
+
|
|
200
|
+
### Create a Deployment
|
|
201
|
+
|
|
202
|
+
```typescript
|
|
203
|
+
const deployment: k8s.V1Deployment = {
|
|
204
|
+
apiVersion: 'apps/v1',
|
|
205
|
+
kind: 'Deployment',
|
|
206
|
+
metadata: {
|
|
207
|
+
name: 'my-deployment',
|
|
208
|
+
namespace: 'default'
|
|
209
|
+
},
|
|
210
|
+
spec: {
|
|
211
|
+
replicas: 3,
|
|
212
|
+
selector: {
|
|
213
|
+
matchLabels: {
|
|
214
|
+
app: 'my-app'
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
template: {
|
|
218
|
+
metadata: {
|
|
219
|
+
labels: {
|
|
220
|
+
app: 'my-app'
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
spec: {
|
|
224
|
+
containers: [{
|
|
225
|
+
name: 'nginx',
|
|
226
|
+
image: 'nginx:1.14.2',
|
|
227
|
+
ports: [{
|
|
228
|
+
containerPort: 80
|
|
229
|
+
}]
|
|
230
|
+
}]
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
const createdDeployment = await resources.deployment.create(deployment);
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### Scale Deployment
|
|
240
|
+
|
|
241
|
+
```typescript
|
|
242
|
+
// Scale to 5 replicas
|
|
243
|
+
await resources.deployment.scale('my-deployment', 5, {
|
|
244
|
+
namespace: 'default'
|
|
245
|
+
});
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Update Deployment Image
|
|
249
|
+
|
|
250
|
+
```typescript
|
|
251
|
+
await resources.deployment.updateImage(
|
|
252
|
+
'my-deployment',
|
|
253
|
+
'nginx',
|
|
254
|
+
'nginx:1.16.0',
|
|
255
|
+
{ namespace: 'default' }
|
|
256
|
+
);
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### Restart Deployment
|
|
260
|
+
|
|
261
|
+
```typescript
|
|
262
|
+
await resources.deployment.restart('my-deployment', {
|
|
263
|
+
namespace: 'default'
|
|
264
|
+
});
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Rollback Deployment
|
|
268
|
+
|
|
269
|
+
```typescript
|
|
270
|
+
await resources.deployment.rollback('my-deployment', {
|
|
271
|
+
namespace: 'default'
|
|
272
|
+
});
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Wait for Deployment Ready
|
|
276
|
+
|
|
277
|
+
```typescript
|
|
278
|
+
const isReady = await resources.deployment.waitForReady('my-deployment', {
|
|
279
|
+
namespace: 'default',
|
|
280
|
+
timeoutSeconds: 300
|
|
281
|
+
});
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
## ConfigMap Operations
|
|
285
|
+
|
|
286
|
+
### Create ConfigMap from Data
|
|
287
|
+
|
|
288
|
+
```typescript
|
|
289
|
+
const configMap = await resources.configMap.createFromData(
|
|
290
|
+
'my-config',
|
|
291
|
+
{
|
|
292
|
+
'config.yaml': 'key: value\nother: data',
|
|
293
|
+
'app.properties': 'server.port=8080'
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
namespace: 'default',
|
|
297
|
+
labels: { app: 'my-app' }
|
|
298
|
+
}
|
|
299
|
+
);
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### Update ConfigMap Values
|
|
303
|
+
|
|
304
|
+
```typescript
|
|
305
|
+
// Add or update a key
|
|
306
|
+
await resources.configMap.setKey('my-config', 'new-key', 'new-value', {
|
|
307
|
+
namespace: 'default'
|
|
308
|
+
});
|
|
309
|
+
|
|
310
|
+
// Remove a key
|
|
311
|
+
await resources.configMap.removeKey('my-config', 'old-key', {
|
|
312
|
+
namespace: 'default'
|
|
313
|
+
});
|
|
314
|
+
|
|
315
|
+
// Get a specific value
|
|
316
|
+
const value = await resources.configMap.getValue('my-config', 'config.yaml', {
|
|
317
|
+
namespace: 'default'
|
|
318
|
+
});
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
## Secret Operations
|
|
322
|
+
|
|
323
|
+
### Create Different Types of Secrets
|
|
324
|
+
|
|
325
|
+
```typescript
|
|
326
|
+
// Create Opaque secret
|
|
327
|
+
const secret = await resources.secret.createOpaque(
|
|
328
|
+
'my-secret',
|
|
329
|
+
{
|
|
330
|
+
username: 'admin',
|
|
331
|
+
password: 'secret123'
|
|
332
|
+
},
|
|
333
|
+
{ namespace: 'default' }
|
|
334
|
+
);
|
|
335
|
+
|
|
336
|
+
// Create TLS secret
|
|
337
|
+
const tlsSecret = await resources.secret.createTLS(
|
|
338
|
+
'tls-secret',
|
|
339
|
+
tlsCertContent,
|
|
340
|
+
tlsKeyContent,
|
|
341
|
+
{ namespace: 'default' }
|
|
342
|
+
);
|
|
343
|
+
|
|
344
|
+
// Create Docker registry secret
|
|
345
|
+
const dockerSecret = await resources.secret.createDockerRegistry(
|
|
346
|
+
'docker-secret',
|
|
347
|
+
'docker.io',
|
|
348
|
+
'username',
|
|
349
|
+
'password',
|
|
350
|
+
'email@example.com',
|
|
351
|
+
{ namespace: 'default' }
|
|
352
|
+
);
|
|
353
|
+
|
|
354
|
+
// Create Basic Auth secret
|
|
355
|
+
const basicAuthSecret = await resources.secret.createBasicAuth(
|
|
356
|
+
'basic-auth',
|
|
357
|
+
'username',
|
|
358
|
+
'password',
|
|
359
|
+
{ namespace: 'default' }
|
|
360
|
+
);
|
|
361
|
+
|
|
362
|
+
// Create SSH Auth secret
|
|
363
|
+
const sshSecret = await resources.secret.createSSHAuth(
|
|
364
|
+
'ssh-secret',
|
|
365
|
+
privateKeyContent,
|
|
366
|
+
{ namespace: 'default' }
|
|
367
|
+
);
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### Work with Secret Data
|
|
371
|
+
|
|
372
|
+
```typescript
|
|
373
|
+
// Get decoded secret data
|
|
374
|
+
const decodedData = await resources.secret.getDecodedData('my-secret', {
|
|
375
|
+
namespace: 'default'
|
|
376
|
+
});
|
|
377
|
+
|
|
378
|
+
// Get specific decoded value
|
|
379
|
+
const password = await resources.secret.getDecodedValue('my-secret', 'password', {
|
|
380
|
+
namespace: 'default'
|
|
381
|
+
});
|
|
382
|
+
|
|
383
|
+
// Update secret key
|
|
384
|
+
await resources.secret.setKey('my-secret', 'new-password', 'newSecret456', {
|
|
385
|
+
namespace: 'default'
|
|
386
|
+
});
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
## Custom Resource Operations
|
|
390
|
+
|
|
391
|
+
### Create Custom Resource Client
|
|
392
|
+
|
|
393
|
+
```typescript
|
|
394
|
+
// For a namespaced custom resource
|
|
395
|
+
const crdClient = resources.custom(
|
|
396
|
+
'example.com', // group
|
|
397
|
+
'v1', // version
|
|
398
|
+
'myresources', // plural
|
|
399
|
+
true // namespaced
|
|
400
|
+
);
|
|
401
|
+
|
|
402
|
+
// For a cluster-scoped custom resource
|
|
403
|
+
const clusterCrdClient = resources.custom(
|
|
404
|
+
'example.com',
|
|
405
|
+
'v1',
|
|
406
|
+
'clusterresources',
|
|
407
|
+
false
|
|
408
|
+
);
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
### Work with Custom Resources
|
|
412
|
+
|
|
413
|
+
```typescript
|
|
414
|
+
// Create custom resource
|
|
415
|
+
const customResource = {
|
|
416
|
+
apiVersion: 'example.com/v1',
|
|
417
|
+
kind: 'MyResource',
|
|
418
|
+
metadata: {
|
|
419
|
+
name: 'my-custom-resource',
|
|
420
|
+
namespace: 'default'
|
|
421
|
+
},
|
|
422
|
+
spec: {
|
|
423
|
+
// Custom spec fields
|
|
424
|
+
foo: 'bar',
|
|
425
|
+
replicas: 3
|
|
426
|
+
}
|
|
427
|
+
};
|
|
428
|
+
|
|
429
|
+
const created = await crdClient.create(customResource);
|
|
430
|
+
|
|
431
|
+
// Update status subresource
|
|
432
|
+
await crdClient.updateStatus('my-custom-resource', {
|
|
433
|
+
phase: 'Running',
|
|
434
|
+
message: 'All replicas are ready'
|
|
435
|
+
}, { namespace: 'default' });
|
|
436
|
+
|
|
437
|
+
// Check if CRD exists
|
|
438
|
+
const crdExists = await crdClient.crdExists();
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
## Utility Functions
|
|
442
|
+
|
|
443
|
+
### Label Selector Builder
|
|
444
|
+
|
|
445
|
+
```typescript
|
|
446
|
+
import { LabelSelector } from './utils/ResourceUtils';
|
|
447
|
+
|
|
448
|
+
const selector = new LabelSelector()
|
|
449
|
+
.equals('app', 'my-app')
|
|
450
|
+
.notEquals('env', 'dev')
|
|
451
|
+
.in('tier', ['frontend', 'backend'])
|
|
452
|
+
.exists('version')
|
|
453
|
+
.build();
|
|
454
|
+
// Result: "app=my-app,env!=dev,tier in (frontend,backend),version"
|
|
455
|
+
|
|
456
|
+
const pods = await resources.pod.list({
|
|
457
|
+
labelSelector: selector
|
|
458
|
+
});
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
### Field Selector Builder
|
|
462
|
+
|
|
463
|
+
```typescript
|
|
464
|
+
import { FieldSelector } from './utils/ResourceUtils';
|
|
465
|
+
|
|
466
|
+
const selector = new FieldSelector()
|
|
467
|
+
.namespace('production')
|
|
468
|
+
.phase('Running')
|
|
469
|
+
.field('spec.nodeName', 'node-1')
|
|
470
|
+
.build();
|
|
471
|
+
// Result: "metadata.namespace=production,status.phase=Running,spec.nodeName=node-1"
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
### Patch Builder
|
|
475
|
+
|
|
476
|
+
```typescript
|
|
477
|
+
import { PatchBuilder } from './utils/ResourceUtils';
|
|
478
|
+
|
|
479
|
+
const patch = new PatchBuilder()
|
|
480
|
+
.replace('/spec/replicas', 5)
|
|
481
|
+
.add('/metadata/labels/version', 'v2')
|
|
482
|
+
.remove('/metadata/annotations/old-annotation')
|
|
483
|
+
.build();
|
|
484
|
+
|
|
485
|
+
await resources.deployment.patch('my-deployment', patch);
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
### Metadata Utilities
|
|
489
|
+
|
|
490
|
+
```typescript
|
|
491
|
+
import { MetadataUtils } from './utils/ResourceUtils';
|
|
492
|
+
|
|
493
|
+
// Generate unique name
|
|
494
|
+
const name = MetadataUtils.generateName('pod'); // e.g., "pod-a3x7f"
|
|
495
|
+
|
|
496
|
+
// Add labels to resource
|
|
497
|
+
MetadataUtils.addLabels(pod, {
|
|
498
|
+
app: 'my-app',
|
|
499
|
+
version: 'v1'
|
|
500
|
+
});
|
|
501
|
+
|
|
502
|
+
// Add annotations
|
|
503
|
+
MetadataUtils.addAnnotations(pod, {
|
|
504
|
+
'kubernetes.io/description': 'My pod description'
|
|
505
|
+
});
|
|
506
|
+
|
|
507
|
+
// Add owner reference
|
|
508
|
+
MetadataUtils.addOwnerReference(pod, deployment, true, true);
|
|
509
|
+
|
|
510
|
+
// Check labels/annotations
|
|
511
|
+
const hasLabel = MetadataUtils.hasLabel(pod, 'app', 'my-app');
|
|
512
|
+
const age = MetadataUtils.formatAge(pod); // e.g., "2d", "3h", "45m"
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
### Container Utilities
|
|
516
|
+
|
|
517
|
+
```typescript
|
|
518
|
+
import { ContainerUtils } from './utils/ResourceUtils';
|
|
519
|
+
|
|
520
|
+
// Create container
|
|
521
|
+
const container = ContainerUtils.createContainer('nginx', 'nginx:latest', {
|
|
522
|
+
command: ['/bin/sh'],
|
|
523
|
+
args: ['-c', 'echo Hello'],
|
|
524
|
+
ports: [{ containerPort: 80 }]
|
|
525
|
+
});
|
|
526
|
+
|
|
527
|
+
// Add environment variables
|
|
528
|
+
ContainerUtils.addEnvVar(container, 'ENV_VAR', 'value');
|
|
529
|
+
ContainerUtils.addEnvVar(container, 'SECRET_VAR', undefined, {
|
|
530
|
+
secretKeyRef: {
|
|
531
|
+
name: 'my-secret',
|
|
532
|
+
key: 'password'
|
|
533
|
+
}
|
|
534
|
+
});
|
|
535
|
+
|
|
536
|
+
// Set resources
|
|
537
|
+
ContainerUtils.setResources(container,
|
|
538
|
+
{ cpu: '100m', memory: '128Mi' }, // requests
|
|
539
|
+
{ cpu: '500m', memory: '512Mi' } // limits
|
|
540
|
+
);
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
## Error Handling
|
|
544
|
+
|
|
545
|
+
All operations throw `KubernetesOperationError` on failure:
|
|
546
|
+
|
|
547
|
+
```typescript
|
|
548
|
+
import { KubernetesOperationError } from './ResourceOperations';
|
|
549
|
+
|
|
550
|
+
try {
|
|
551
|
+
await resources.pod.get('non-existent-pod');
|
|
552
|
+
} catch (error) {
|
|
553
|
+
if (error instanceof KubernetesOperationError) {
|
|
554
|
+
console.error('Operation:', error.operation);
|
|
555
|
+
console.error('Resource:', error.resource);
|
|
556
|
+
console.error('Status Code:', error.statusCode);
|
|
557
|
+
console.error('Message:', error.message);
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
## Watch Operations
|
|
563
|
+
|
|
564
|
+
Watch resources for real-time updates:
|
|
565
|
+
|
|
566
|
+
```typescript
|
|
567
|
+
import { WatchEventType } from './ResourceOperations';
|
|
568
|
+
|
|
569
|
+
// Watch all pods in a namespace
|
|
570
|
+
const stopWatching = resources.pod.watch(
|
|
571
|
+
(event) => {
|
|
572
|
+
switch (event.type) {
|
|
573
|
+
case WatchEventType.ADDED:
|
|
574
|
+
console.log('Pod added:', event.object.metadata?.name);
|
|
575
|
+
break;
|
|
576
|
+
case WatchEventType.MODIFIED:
|
|
577
|
+
console.log('Pod modified:', event.object.metadata?.name);
|
|
578
|
+
break;
|
|
579
|
+
case WatchEventType.DELETED:
|
|
580
|
+
console.log('Pod deleted:', event.object.metadata?.name);
|
|
581
|
+
break;
|
|
582
|
+
case WatchEventType.ERROR:
|
|
583
|
+
console.error('Watch error:', event.object);
|
|
584
|
+
break;
|
|
585
|
+
}
|
|
586
|
+
},
|
|
587
|
+
{
|
|
588
|
+
namespace: 'default',
|
|
589
|
+
labelSelector: 'app=my-app'
|
|
590
|
+
}
|
|
591
|
+
);
|
|
592
|
+
|
|
593
|
+
// Stop watching when done
|
|
594
|
+
stopWatching();
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
## Best Practices
|
|
598
|
+
|
|
599
|
+
1. **Always handle errors**: Kubernetes operations can fail for various reasons
|
|
600
|
+
2. **Use namespaces**: Specify namespaces explicitly for better isolation
|
|
601
|
+
3. **Set resource limits**: Always set resource requests and limits for containers
|
|
602
|
+
4. **Use labels effectively**: Use consistent labeling for resource organization
|
|
603
|
+
5. **Watch responsibly**: Stop watchers when no longer needed to avoid resource leaks
|
|
604
|
+
6. **Paginate large lists**: Use limit and continue tokens for large result sets
|
|
605
|
+
7. **Use patch for partial updates**: More efficient than full resource updates
|
|
606
|
+
8. **Validate resources**: Ensure resources conform to Kubernetes API specifications
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
export { KubernetesClient, KubernetesClientConfig, AuthMethod } from './KubernetesClient.js';
|
|
2
|
+
|
|
3
|
+
// Export connection pooling
|
|
4
|
+
export {
|
|
5
|
+
ConnectionPool,
|
|
6
|
+
ConnectionPoolConfig,
|
|
7
|
+
ConnectionEntry,
|
|
8
|
+
ConnectionState,
|
|
9
|
+
} from './ConnectionPool.js';
|
|
10
|
+
|
|
11
|
+
export { ConnectionManager, ConnectionManagerConfig, ClusterStats } from './ConnectionManager.js';
|
|
12
|
+
|
|
13
|
+
// Export resource operations
|
|
14
|
+
export { ResourceOperations } from './ResourceOperations.js';
|
|
15
|
+
|
|
16
|
+
// Export base resource operations classes and interfaces
|
|
17
|
+
export {
|
|
18
|
+
ResourceOperationOptions,
|
|
19
|
+
IResourceOperations,
|
|
20
|
+
BaseResourceOperations,
|
|
21
|
+
WatchEvent,
|
|
22
|
+
WatchEventType,
|
|
23
|
+
WatchCallback,
|
|
24
|
+
KubernetesOperationError,
|
|
25
|
+
} from './BaseResourceOperations.js';
|
|
26
|
+
|
|
27
|
+
// Export error handling
|
|
28
|
+
export {
|
|
29
|
+
KubernetesError,
|
|
30
|
+
AuthenticationError,
|
|
31
|
+
AuthorizationError,
|
|
32
|
+
ResourceNotFoundError,
|
|
33
|
+
ResourceConflictError,
|
|
34
|
+
ValidationError,
|
|
35
|
+
ServerUnavailableError,
|
|
36
|
+
TimeoutError,
|
|
37
|
+
RateLimitError,
|
|
38
|
+
NetworkError,
|
|
39
|
+
ErrorMonitor,
|
|
40
|
+
ErrorStats,
|
|
41
|
+
ErrorContext,
|
|
42
|
+
convertApiError,
|
|
43
|
+
createContextualError,
|
|
44
|
+
} from './ErrorHandling.js';
|
|
45
|
+
|
|
46
|
+
// Export retry strategy
|
|
47
|
+
export {
|
|
48
|
+
RetryStrategy,
|
|
49
|
+
RetryConfig,
|
|
50
|
+
RetryContext,
|
|
51
|
+
RetryResult,
|
|
52
|
+
RetryBuilder,
|
|
53
|
+
RETRY_PRESETS,
|
|
54
|
+
DEFAULT_RETRY_CONFIG,
|
|
55
|
+
createRetryStrategy,
|
|
56
|
+
Retryable,
|
|
57
|
+
} from './RetryStrategy.js';
|
|
58
|
+
|
|
59
|
+
// Export circuit breaker
|
|
60
|
+
export {
|
|
61
|
+
CircuitBreaker,
|
|
62
|
+
CircuitBreakerConfig,
|
|
63
|
+
CircuitBreakerFactory,
|
|
64
|
+
CircuitState,
|
|
65
|
+
CircuitStats,
|
|
66
|
+
DEFAULT_CIRCUIT_CONFIG,
|
|
67
|
+
WithCircuitBreaker,
|
|
68
|
+
} from './CircuitBreaker.js';
|
|
69
|
+
|
|
70
|
+
// Export error handler
|
|
71
|
+
export {
|
|
72
|
+
IErrorHandler,
|
|
73
|
+
ErrorHandlerChain,
|
|
74
|
+
ErrorHandlerChainConfig,
|
|
75
|
+
LoggingErrorHandler,
|
|
76
|
+
RetryErrorHandler,
|
|
77
|
+
CircuitBreakerErrorHandler,
|
|
78
|
+
ContextEnrichmentHandler,
|
|
79
|
+
RateLimitHandler,
|
|
80
|
+
ErrorHandlerFactory,
|
|
81
|
+
IErrorRecovery,
|
|
82
|
+
FallbackRecovery,
|
|
83
|
+
CacheRecovery,
|
|
84
|
+
} from './ErrorHandler.js';
|
|
85
|
+
|
|
86
|
+
// Export retryable operation
|
|
87
|
+
export {
|
|
88
|
+
RetryableOperation,
|
|
89
|
+
RetryableOperationConfig,
|
|
90
|
+
RetryableOperationFactory,
|
|
91
|
+
OperationResult,
|
|
92
|
+
RetryableMethod,
|
|
93
|
+
} from './RetryableOperation.js';
|
|
94
|
+
|
|
95
|
+
// Export specific resource operations
|
|
96
|
+
export { PodOperations, PodOperationOptions } from './resources/PodOperations.js';
|
|
97
|
+
export { ServiceOperations } from './resources/ServiceOperations.js';
|
|
98
|
+
export {
|
|
99
|
+
DeploymentOperations,
|
|
100
|
+
DeploymentOperationOptions,
|
|
101
|
+
} from './resources/DeploymentOperations.js';
|
|
102
|
+
export { ConfigMapOperations } from './resources/ConfigMapOperations.js';
|
|
103
|
+
export { SecretOperations, SecretType } from './resources/SecretOperations.js';
|
|
104
|
+
export { CustomResourceOperations } from './resources/CustomResourceOperations.js';
|
|
105
|
+
|
|
106
|
+
// Export utilities
|
|
107
|
+
export {
|
|
108
|
+
LabelSelector,
|
|
109
|
+
FieldSelector,
|
|
110
|
+
PatchBuilder,
|
|
111
|
+
MetadataUtils,
|
|
112
|
+
ContainerUtils,
|
|
113
|
+
PodTemplateUtils,
|
|
114
|
+
ServiceUtils,
|
|
115
|
+
DeploymentUtils,
|
|
116
|
+
} from './utils/ResourceUtils.js';
|