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.
Files changed (454) hide show
  1. package/.prettierrc.json +11 -0
  2. package/CHANGELOG.md +55 -0
  3. package/LICENSE +21 -0
  4. package/README.md +251 -0
  5. package/RELEASE.md +154 -0
  6. package/TODO.md +0 -0
  7. package/bin/kubeview-mcp.js +274 -0
  8. package/bin/setup.js +368 -0
  9. package/dist/src/cli/cli.d.ts +3 -0
  10. package/dist/src/cli/cli.d.ts.map +1 -0
  11. package/dist/src/cli/cli.js +23 -0
  12. package/dist/src/cli/cli.js.map +1 -0
  13. package/dist/src/index.d.ts +8 -0
  14. package/dist/src/index.d.ts.map +1 -0
  15. package/dist/src/index.js +45 -0
  16. package/dist/src/index.js.map +1 -0
  17. package/dist/src/kubernetes/BaseResourceOperations.d.ts +155 -0
  18. package/dist/src/kubernetes/BaseResourceOperations.d.ts.map +1 -0
  19. package/dist/src/kubernetes/BaseResourceOperations.js +136 -0
  20. package/dist/src/kubernetes/BaseResourceOperations.js.map +1 -0
  21. package/dist/src/kubernetes/CircuitBreaker.d.ts +182 -0
  22. package/dist/src/kubernetes/CircuitBreaker.d.ts.map +1 -0
  23. package/dist/src/kubernetes/CircuitBreaker.js +369 -0
  24. package/dist/src/kubernetes/CircuitBreaker.js.map +1 -0
  25. package/dist/src/kubernetes/ConnectionManager.d.ts +60 -0
  26. package/dist/src/kubernetes/ConnectionManager.d.ts.map +1 -0
  27. package/dist/src/kubernetes/ConnectionManager.js +77 -0
  28. package/dist/src/kubernetes/ConnectionManager.js.map +1 -0
  29. package/dist/src/kubernetes/ConnectionPool.d.ts +183 -0
  30. package/dist/src/kubernetes/ConnectionPool.d.ts.map +1 -0
  31. package/dist/src/kubernetes/ConnectionPool.js +437 -0
  32. package/dist/src/kubernetes/ConnectionPool.js.map +1 -0
  33. package/dist/src/kubernetes/ErrorHandler.d.ts +172 -0
  34. package/dist/src/kubernetes/ErrorHandler.d.ts.map +1 -0
  35. package/dist/src/kubernetes/ErrorHandler.js +328 -0
  36. package/dist/src/kubernetes/ErrorHandler.js.map +1 -0
  37. package/dist/src/kubernetes/ErrorHandling.d.ts +148 -0
  38. package/dist/src/kubernetes/ErrorHandling.d.ts.map +1 -0
  39. package/dist/src/kubernetes/ErrorHandling.js +304 -0
  40. package/dist/src/kubernetes/ErrorHandling.js.map +1 -0
  41. package/dist/src/kubernetes/KubernetesClient.d.ts +162 -0
  42. package/dist/src/kubernetes/KubernetesClient.d.ts.map +1 -0
  43. package/dist/src/kubernetes/KubernetesClient.js +382 -0
  44. package/dist/src/kubernetes/KubernetesClient.js.map +1 -0
  45. package/dist/src/kubernetes/ResourceOperations.d.ts +69 -0
  46. package/dist/src/kubernetes/ResourceOperations.d.ts.map +1 -0
  47. package/dist/src/kubernetes/ResourceOperations.js +99 -0
  48. package/dist/src/kubernetes/ResourceOperations.js.map +1 -0
  49. package/dist/src/kubernetes/RetryStrategy.d.ts +137 -0
  50. package/dist/src/kubernetes/RetryStrategy.d.ts.map +1 -0
  51. package/dist/src/kubernetes/RetryStrategy.js +277 -0
  52. package/dist/src/kubernetes/RetryStrategy.js.map +1 -0
  53. package/dist/src/kubernetes/RetryableOperation.d.ts +118 -0
  54. package/dist/src/kubernetes/RetryableOperation.d.ts.map +1 -0
  55. package/dist/src/kubernetes/RetryableOperation.js +233 -0
  56. package/dist/src/kubernetes/RetryableOperation.js.map +1 -0
  57. package/dist/src/kubernetes/index.d.ts +18 -0
  58. package/dist/src/kubernetes/index.d.ts.map +1 -0
  59. package/dist/src/kubernetes/index.js +28 -0
  60. package/dist/src/kubernetes/index.js.map +1 -0
  61. package/dist/src/kubernetes/resources/ConfigMapOperations.d.ts +60 -0
  62. package/dist/src/kubernetes/resources/ConfigMapOperations.d.ts.map +1 -0
  63. package/dist/src/kubernetes/resources/ConfigMapOperations.js +306 -0
  64. package/dist/src/kubernetes/resources/ConfigMapOperations.js.map +1 -0
  65. package/dist/src/kubernetes/resources/CustomResourceOperations.d.ts +55 -0
  66. package/dist/src/kubernetes/resources/CustomResourceOperations.d.ts.map +1 -0
  67. package/dist/src/kubernetes/resources/CustomResourceOperations.js +363 -0
  68. package/dist/src/kubernetes/resources/CustomResourceOperations.js.map +1 -0
  69. package/dist/src/kubernetes/resources/DeploymentOperations.d.ts +66 -0
  70. package/dist/src/kubernetes/resources/DeploymentOperations.d.ts.map +1 -0
  71. package/dist/src/kubernetes/resources/DeploymentOperations.js +234 -0
  72. package/dist/src/kubernetes/resources/DeploymentOperations.js.map +1 -0
  73. package/dist/src/kubernetes/resources/IngressOperations.d.ts +60 -0
  74. package/dist/src/kubernetes/resources/IngressOperations.d.ts.map +1 -0
  75. package/dist/src/kubernetes/resources/IngressOperations.js +224 -0
  76. package/dist/src/kubernetes/resources/IngressOperations.js.map +1 -0
  77. package/dist/src/kubernetes/resources/MetricOperations.d.ts +218 -0
  78. package/dist/src/kubernetes/resources/MetricOperations.d.ts.map +1 -0
  79. package/dist/src/kubernetes/resources/MetricOperations.js +893 -0
  80. package/dist/src/kubernetes/resources/MetricOperations.js.map +1 -0
  81. package/dist/src/kubernetes/resources/NamespaceOperations.d.ts +38 -0
  82. package/dist/src/kubernetes/resources/NamespaceOperations.d.ts.map +1 -0
  83. package/dist/src/kubernetes/resources/NamespaceOperations.js +101 -0
  84. package/dist/src/kubernetes/resources/NamespaceOperations.js.map +1 -0
  85. package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.d.ts +109 -0
  86. package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.d.ts.map +1 -0
  87. package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.js +383 -0
  88. package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.js.map +1 -0
  89. package/dist/src/kubernetes/resources/PersistentVolumeOperations.d.ts +97 -0
  90. package/dist/src/kubernetes/resources/PersistentVolumeOperations.d.ts.map +1 -0
  91. package/dist/src/kubernetes/resources/PersistentVolumeOperations.js +321 -0
  92. package/dist/src/kubernetes/resources/PersistentVolumeOperations.js.map +1 -0
  93. package/dist/src/kubernetes/resources/PodOperations.d.ts +99 -0
  94. package/dist/src/kubernetes/resources/PodOperations.d.ts.map +1 -0
  95. package/dist/src/kubernetes/resources/PodOperations.js +333 -0
  96. package/dist/src/kubernetes/resources/PodOperations.js.map +1 -0
  97. package/dist/src/kubernetes/resources/SecretOperations.d.ts +71 -0
  98. package/dist/src/kubernetes/resources/SecretOperations.d.ts.map +1 -0
  99. package/dist/src/kubernetes/resources/SecretOperations.js +254 -0
  100. package/dist/src/kubernetes/resources/SecretOperations.js.map +1 -0
  101. package/dist/src/kubernetes/resources/ServiceOperations.d.ts +64 -0
  102. package/dist/src/kubernetes/resources/ServiceOperations.d.ts.map +1 -0
  103. package/dist/src/kubernetes/resources/ServiceOperations.js +232 -0
  104. package/dist/src/kubernetes/resources/ServiceOperations.js.map +1 -0
  105. package/dist/src/kubernetes/utils/ResourceUtils.d.ts +238 -0
  106. package/dist/src/kubernetes/utils/ResourceUtils.d.ts.map +1 -0
  107. package/dist/src/kubernetes/utils/ResourceUtils.js +439 -0
  108. package/dist/src/kubernetes/utils/ResourceUtils.js.map +1 -0
  109. package/dist/src/plugins/ArgoCDToolsPlugin.d.ts +45 -0
  110. package/dist/src/plugins/ArgoCDToolsPlugin.d.ts.map +1 -0
  111. package/dist/src/plugins/ArgoCDToolsPlugin.js +155 -0
  112. package/dist/src/plugins/ArgoCDToolsPlugin.js.map +1 -0
  113. package/dist/src/plugins/ArgoToolsPlugin.d.ts +45 -0
  114. package/dist/src/plugins/ArgoToolsPlugin.d.ts.map +1 -0
  115. package/dist/src/plugins/ArgoToolsPlugin.js +149 -0
  116. package/dist/src/plugins/ArgoToolsPlugin.js.map +1 -0
  117. package/dist/src/plugins/HelmToolsPlugin.d.ts +41 -0
  118. package/dist/src/plugins/HelmToolsPlugin.d.ts.map +1 -0
  119. package/dist/src/plugins/HelmToolsPlugin.js +146 -0
  120. package/dist/src/plugins/HelmToolsPlugin.js.map +1 -0
  121. package/dist/src/plugins/KubernetesToolsPlugin.d.ts +44 -0
  122. package/dist/src/plugins/KubernetesToolsPlugin.d.ts.map +1 -0
  123. package/dist/src/plugins/KubernetesToolsPlugin.js +159 -0
  124. package/dist/src/plugins/KubernetesToolsPlugin.js.map +1 -0
  125. package/dist/src/plugins/SamplePlugin.d.ts +12 -0
  126. package/dist/src/plugins/SamplePlugin.d.ts.map +1 -0
  127. package/dist/src/plugins/SamplePlugin.js +51 -0
  128. package/dist/src/plugins/SamplePlugin.js.map +1 -0
  129. package/dist/src/plugins/index.d.ts +5 -0
  130. package/dist/src/plugins/index.d.ts.map +1 -0
  131. package/dist/src/plugins/index.js +5 -0
  132. package/dist/src/plugins/index.js.map +1 -0
  133. package/dist/src/server/MCPServer.d.ts +93 -0
  134. package/dist/src/server/MCPServer.d.ts.map +1 -0
  135. package/dist/src/server/MCPServer.js +398 -0
  136. package/dist/src/server/MCPServer.js.map +1 -0
  137. package/dist/src/tools/argo/ArgoCronListTool.d.ts +10 -0
  138. package/dist/src/tools/argo/ArgoCronListTool.d.ts.map +1 -0
  139. package/dist/src/tools/argo/ArgoCronListTool.js +70 -0
  140. package/dist/src/tools/argo/ArgoCronListTool.js.map +1 -0
  141. package/dist/src/tools/argo/ArgoGetTool.d.ts +10 -0
  142. package/dist/src/tools/argo/ArgoGetTool.d.ts.map +1 -0
  143. package/dist/src/tools/argo/ArgoGetTool.js +80 -0
  144. package/dist/src/tools/argo/ArgoGetTool.js.map +1 -0
  145. package/dist/src/tools/argo/ArgoListTool.d.ts +10 -0
  146. package/dist/src/tools/argo/ArgoListTool.d.ts.map +1 -0
  147. package/dist/src/tools/argo/ArgoListTool.js +133 -0
  148. package/dist/src/tools/argo/ArgoListTool.js.map +1 -0
  149. package/dist/src/tools/argo/ArgoLogsTool.d.ts +10 -0
  150. package/dist/src/tools/argo/ArgoLogsTool.d.ts.map +1 -0
  151. package/dist/src/tools/argo/ArgoLogsTool.js +117 -0
  152. package/dist/src/tools/argo/ArgoLogsTool.js.map +1 -0
  153. package/dist/src/tools/argo/BaseTool.d.ts +60 -0
  154. package/dist/src/tools/argo/BaseTool.d.ts.map +1 -0
  155. package/dist/src/tools/argo/BaseTool.js +51 -0
  156. package/dist/src/tools/argo/BaseTool.js.map +1 -0
  157. package/dist/src/tools/argo/index.d.ts +7 -0
  158. package/dist/src/tools/argo/index.d.ts.map +1 -0
  159. package/dist/src/tools/argo/index.js +6 -0
  160. package/dist/src/tools/argo/index.js.map +1 -0
  161. package/dist/src/tools/argocd/ArgoCDAppGetTool.d.ts +10 -0
  162. package/dist/src/tools/argocd/ArgoCDAppGetTool.d.ts.map +1 -0
  163. package/dist/src/tools/argocd/ArgoCDAppGetTool.js +97 -0
  164. package/dist/src/tools/argocd/ArgoCDAppGetTool.js.map +1 -0
  165. package/dist/src/tools/argocd/ArgoCDAppHistoryTool.d.ts +10 -0
  166. package/dist/src/tools/argocd/ArgoCDAppHistoryTool.d.ts.map +1 -0
  167. package/dist/src/tools/argocd/ArgoCDAppHistoryTool.js +80 -0
  168. package/dist/src/tools/argocd/ArgoCDAppHistoryTool.js.map +1 -0
  169. package/dist/src/tools/argocd/ArgoCDAppListTool.d.ts +10 -0
  170. package/dist/src/tools/argocd/ArgoCDAppListTool.d.ts.map +1 -0
  171. package/dist/src/tools/argocd/ArgoCDAppListTool.js +128 -0
  172. package/dist/src/tools/argocd/ArgoCDAppListTool.js.map +1 -0
  173. package/dist/src/tools/argocd/ArgoCDAppLogsTool.d.ts +10 -0
  174. package/dist/src/tools/argocd/ArgoCDAppLogsTool.d.ts.map +1 -0
  175. package/dist/src/tools/argocd/ArgoCDAppLogsTool.js +143 -0
  176. package/dist/src/tools/argocd/ArgoCDAppLogsTool.js.map +1 -0
  177. package/dist/src/tools/argocd/ArgoCDAppResourcesTool.d.ts +10 -0
  178. package/dist/src/tools/argocd/ArgoCDAppResourcesTool.d.ts.map +1 -0
  179. package/dist/src/tools/argocd/ArgoCDAppResourcesTool.js +123 -0
  180. package/dist/src/tools/argocd/ArgoCDAppResourcesTool.js.map +1 -0
  181. package/dist/src/tools/argocd/BaseTool.d.ts +71 -0
  182. package/dist/src/tools/argocd/BaseTool.d.ts.map +1 -0
  183. package/dist/src/tools/argocd/BaseTool.js +62 -0
  184. package/dist/src/tools/argocd/BaseTool.js.map +1 -0
  185. package/dist/src/tools/argocd/index.d.ts +8 -0
  186. package/dist/src/tools/argocd/index.d.ts.map +1 -0
  187. package/dist/src/tools/argocd/index.js +7 -0
  188. package/dist/src/tools/argocd/index.js.map +1 -0
  189. package/dist/src/tools/helm/BaseTool.d.ts +51 -0
  190. package/dist/src/tools/helm/BaseTool.d.ts.map +1 -0
  191. package/dist/src/tools/helm/BaseTool.js +42 -0
  192. package/dist/src/tools/helm/BaseTool.js.map +1 -0
  193. package/dist/src/tools/helm/HelmGetHooksTool.d.ts +10 -0
  194. package/dist/src/tools/helm/HelmGetHooksTool.d.ts.map +1 -0
  195. package/dist/src/tools/helm/HelmGetHooksTool.js +38 -0
  196. package/dist/src/tools/helm/HelmGetHooksTool.js.map +1 -0
  197. package/dist/src/tools/helm/HelmGetManifestTool.d.ts +10 -0
  198. package/dist/src/tools/helm/HelmGetManifestTool.d.ts.map +1 -0
  199. package/dist/src/tools/helm/HelmGetManifestTool.js +38 -0
  200. package/dist/src/tools/helm/HelmGetManifestTool.js.map +1 -0
  201. package/dist/src/tools/helm/HelmGetNotesTool.d.ts +10 -0
  202. package/dist/src/tools/helm/HelmGetNotesTool.d.ts.map +1 -0
  203. package/dist/src/tools/helm/HelmGetNotesTool.js +38 -0
  204. package/dist/src/tools/helm/HelmGetNotesTool.js.map +1 -0
  205. package/dist/src/tools/helm/HelmGetResourcesTool.d.ts +13 -0
  206. package/dist/src/tools/helm/HelmGetResourcesTool.d.ts.map +1 -0
  207. package/dist/src/tools/helm/HelmGetResourcesTool.js +124 -0
  208. package/dist/src/tools/helm/HelmGetResourcesTool.js.map +1 -0
  209. package/dist/src/tools/helm/HelmGetValuesTool.d.ts +10 -0
  210. package/dist/src/tools/helm/HelmGetValuesTool.d.ts.map +1 -0
  211. package/dist/src/tools/helm/HelmGetValuesTool.js +54 -0
  212. package/dist/src/tools/helm/HelmGetValuesTool.js.map +1 -0
  213. package/dist/src/tools/helm/HelmHistoryTool.d.ts +10 -0
  214. package/dist/src/tools/helm/HelmHistoryTool.d.ts.map +1 -0
  215. package/dist/src/tools/helm/HelmHistoryTool.js +49 -0
  216. package/dist/src/tools/helm/HelmHistoryTool.js.map +1 -0
  217. package/dist/src/tools/helm/HelmListTool.d.ts +10 -0
  218. package/dist/src/tools/helm/HelmListTool.d.ts.map +1 -0
  219. package/dist/src/tools/helm/HelmListTool.js +107 -0
  220. package/dist/src/tools/helm/HelmListTool.js.map +1 -0
  221. package/dist/src/tools/helm/HelmListWithResourcesTool.d.ts +14 -0
  222. package/dist/src/tools/helm/HelmListWithResourcesTool.d.ts.map +1 -0
  223. package/dist/src/tools/helm/HelmListWithResourcesTool.js +175 -0
  224. package/dist/src/tools/helm/HelmListWithResourcesTool.js.map +1 -0
  225. package/dist/src/tools/helm/HelmStatusTool.d.ts +10 -0
  226. package/dist/src/tools/helm/HelmStatusTool.d.ts.map +1 -0
  227. package/dist/src/tools/helm/HelmStatusTool.js +54 -0
  228. package/dist/src/tools/helm/HelmStatusTool.js.map +1 -0
  229. package/dist/src/tools/helm/index.d.ts +12 -0
  230. package/dist/src/tools/helm/index.d.ts.map +1 -0
  231. package/dist/src/tools/helm/index.js +11 -0
  232. package/dist/src/tools/helm/index.js.map +1 -0
  233. package/dist/src/tools/kubernetes/BaseTool.d.ts +48 -0
  234. package/dist/src/tools/kubernetes/BaseTool.d.ts.map +1 -0
  235. package/dist/src/tools/kubernetes/BaseTool.js +55 -0
  236. package/dist/src/tools/kubernetes/BaseTool.js.map +1 -0
  237. package/dist/src/tools/kubernetes/GetConfigMapTool.d.ts +11 -0
  238. package/dist/src/tools/kubernetes/GetConfigMapTool.d.ts.map +1 -0
  239. package/dist/src/tools/kubernetes/GetConfigMapTool.js +28 -0
  240. package/dist/src/tools/kubernetes/GetConfigMapTool.js.map +1 -0
  241. package/dist/src/tools/kubernetes/GetContainerLogsTool.d.ts +15 -0
  242. package/dist/src/tools/kubernetes/GetContainerLogsTool.d.ts.map +1 -0
  243. package/dist/src/tools/kubernetes/GetContainerLogsTool.js +119 -0
  244. package/dist/src/tools/kubernetes/GetContainerLogsTool.js.map +1 -0
  245. package/dist/src/tools/kubernetes/GetDeploymentsTool.d.ts +11 -0
  246. package/dist/src/tools/kubernetes/GetDeploymentsTool.d.ts.map +1 -0
  247. package/dist/src/tools/kubernetes/GetDeploymentsTool.js +30 -0
  248. package/dist/src/tools/kubernetes/GetDeploymentsTool.js.map +1 -0
  249. package/dist/src/tools/kubernetes/GetEventsTool.d.ts +11 -0
  250. package/dist/src/tools/kubernetes/GetEventsTool.d.ts.map +1 -0
  251. package/dist/src/tools/kubernetes/GetEventsTool.js +123 -0
  252. package/dist/src/tools/kubernetes/GetEventsTool.js.map +1 -0
  253. package/dist/src/tools/kubernetes/GetIngressTool.d.ts +11 -0
  254. package/dist/src/tools/kubernetes/GetIngressTool.d.ts.map +1 -0
  255. package/dist/src/tools/kubernetes/GetIngressTool.js +35 -0
  256. package/dist/src/tools/kubernetes/GetIngressTool.js.map +1 -0
  257. package/dist/src/tools/kubernetes/GetMetricsTool.d.ts +11 -0
  258. package/dist/src/tools/kubernetes/GetMetricsTool.d.ts.map +1 -0
  259. package/dist/src/tools/kubernetes/GetMetricsTool.js +40 -0
  260. package/dist/src/tools/kubernetes/GetMetricsTool.js.map +1 -0
  261. package/dist/src/tools/kubernetes/GetNamespacesTool.d.ts +11 -0
  262. package/dist/src/tools/kubernetes/GetNamespacesTool.d.ts.map +1 -0
  263. package/dist/src/tools/kubernetes/GetNamespacesTool.js +33 -0
  264. package/dist/src/tools/kubernetes/GetNamespacesTool.js.map +1 -0
  265. package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.d.ts +11 -0
  266. package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.d.ts.map +1 -0
  267. package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.js +92 -0
  268. package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.js.map +1 -0
  269. package/dist/src/tools/kubernetes/GetPersistentVolumesTool.d.ts +11 -0
  270. package/dist/src/tools/kubernetes/GetPersistentVolumesTool.d.ts.map +1 -0
  271. package/dist/src/tools/kubernetes/GetPersistentVolumesTool.js +88 -0
  272. package/dist/src/tools/kubernetes/GetPersistentVolumesTool.js.map +1 -0
  273. package/dist/src/tools/kubernetes/GetPodMetricsTool.d.ts +11 -0
  274. package/dist/src/tools/kubernetes/GetPodMetricsTool.d.ts.map +1 -0
  275. package/dist/src/tools/kubernetes/GetPodMetricsTool.js +100 -0
  276. package/dist/src/tools/kubernetes/GetPodMetricsTool.js.map +1 -0
  277. package/dist/src/tools/kubernetes/GetPodsTool.d.ts +11 -0
  278. package/dist/src/tools/kubernetes/GetPodsTool.d.ts.map +1 -0
  279. package/dist/src/tools/kubernetes/GetPodsTool.js +35 -0
  280. package/dist/src/tools/kubernetes/GetPodsTool.js.map +1 -0
  281. package/dist/src/tools/kubernetes/GetResourceTool.d.ts +12 -0
  282. package/dist/src/tools/kubernetes/GetResourceTool.d.ts.map +1 -0
  283. package/dist/src/tools/kubernetes/GetResourceTool.js +79 -0
  284. package/dist/src/tools/kubernetes/GetResourceTool.js.map +1 -0
  285. package/dist/src/tools/kubernetes/GetSecretsTool.d.ts +11 -0
  286. package/dist/src/tools/kubernetes/GetSecretsTool.d.ts.map +1 -0
  287. package/dist/src/tools/kubernetes/GetSecretsTool.js +49 -0
  288. package/dist/src/tools/kubernetes/GetSecretsTool.js.map +1 -0
  289. package/dist/src/tools/kubernetes/GetServicesTool.d.ts +11 -0
  290. package/dist/src/tools/kubernetes/GetServicesTool.d.ts.map +1 -0
  291. package/dist/src/tools/kubernetes/GetServicesTool.js +35 -0
  292. package/dist/src/tools/kubernetes/GetServicesTool.js.map +1 -0
  293. package/dist/src/tools/kubernetes/index.d.ts +17 -0
  294. package/dist/src/tools/kubernetes/index.d.ts.map +1 -0
  295. package/dist/src/tools/kubernetes/index.js +16 -0
  296. package/dist/src/tools/kubernetes/index.js.map +1 -0
  297. package/dist/src/utils/CliUtils.d.ts +24 -0
  298. package/dist/src/utils/CliUtils.d.ts.map +1 -0
  299. package/dist/src/utils/CliUtils.js +159 -0
  300. package/dist/src/utils/CliUtils.js.map +1 -0
  301. package/dist/tests/__mocks__/@kubernetes/client-node.d.ts +34 -0
  302. package/dist/tests/__mocks__/@kubernetes/client-node.d.ts.map +1 -0
  303. package/dist/tests/__mocks__/@kubernetes/client-node.js +20 -0
  304. package/dist/tests/__mocks__/@kubernetes/client-node.js.map +1 -0
  305. package/dist/tests/argo/ArgoGetTool.test.d.ts +2 -0
  306. package/dist/tests/argo/ArgoGetTool.test.d.ts.map +1 -0
  307. package/dist/tests/argo/ArgoGetTool.test.js +141 -0
  308. package/dist/tests/argo/ArgoGetTool.test.js.map +1 -0
  309. package/dist/tests/helm/BaseTool.test.d.ts +2 -0
  310. package/dist/tests/helm/BaseTool.test.d.ts.map +1 -0
  311. package/dist/tests/helm/BaseTool.test.js +241 -0
  312. package/dist/tests/helm/BaseTool.test.js.map +1 -0
  313. package/dist/tests/index.test.d.ts +2 -0
  314. package/dist/tests/index.test.d.ts.map +1 -0
  315. package/dist/tests/index.test.js +7 -0
  316. package/dist/tests/index.test.js.map +1 -0
  317. package/dist/tests/kubernetes/ConfigMapOperations.test.d.ts +2 -0
  318. package/dist/tests/kubernetes/ConfigMapOperations.test.d.ts.map +1 -0
  319. package/dist/tests/kubernetes/ConfigMapOperations.test.js +460 -0
  320. package/dist/tests/kubernetes/ConfigMapOperations.test.js.map +1 -0
  321. package/dist/tests/kubernetes/ConnectionManager.test.d.ts +2 -0
  322. package/dist/tests/kubernetes/ConnectionManager.test.d.ts.map +1 -0
  323. package/dist/tests/kubernetes/ConnectionManager.test.js +97 -0
  324. package/dist/tests/kubernetes/ConnectionManager.test.js.map +1 -0
  325. package/dist/tests/kubernetes/ConnectionPool.test.d.ts +2 -0
  326. package/dist/tests/kubernetes/ConnectionPool.test.d.ts.map +1 -0
  327. package/dist/tests/kubernetes/ConnectionPool.test.js +328 -0
  328. package/dist/tests/kubernetes/ConnectionPool.test.js.map +1 -0
  329. package/dist/tests/kubernetes/DeploymentOperations.test.d.ts +2 -0
  330. package/dist/tests/kubernetes/DeploymentOperations.test.d.ts.map +1 -0
  331. package/dist/tests/kubernetes/DeploymentOperations.test.js +196 -0
  332. package/dist/tests/kubernetes/DeploymentOperations.test.js.map +1 -0
  333. package/dist/tests/kubernetes/ErrorHandling.test.d.ts +2 -0
  334. package/dist/tests/kubernetes/ErrorHandling.test.d.ts.map +1 -0
  335. package/dist/tests/kubernetes/ErrorHandling.test.js +329 -0
  336. package/dist/tests/kubernetes/ErrorHandling.test.js.map +1 -0
  337. package/dist/tests/kubernetes/GetPodMetricsTool.test.d.ts +2 -0
  338. package/dist/tests/kubernetes/GetPodMetricsTool.test.d.ts.map +1 -0
  339. package/dist/tests/kubernetes/GetPodMetricsTool.test.js +150 -0
  340. package/dist/tests/kubernetes/GetPodMetricsTool.test.js.map +1 -0
  341. package/dist/tests/kubernetes/KubernetesClient.test.d.ts +2 -0
  342. package/dist/tests/kubernetes/KubernetesClient.test.d.ts.map +1 -0
  343. package/dist/tests/kubernetes/KubernetesClient.test.js +371 -0
  344. package/dist/tests/kubernetes/KubernetesClient.test.js.map +1 -0
  345. package/dist/tests/kubernetes/MetricOperations.parsing.test.d.ts +2 -0
  346. package/dist/tests/kubernetes/MetricOperations.parsing.test.d.ts.map +1 -0
  347. package/dist/tests/kubernetes/MetricOperations.parsing.test.js +49 -0
  348. package/dist/tests/kubernetes/MetricOperations.parsing.test.js.map +1 -0
  349. package/dist/tests/kubernetes/NamespaceOperations.test.d.ts +2 -0
  350. package/dist/tests/kubernetes/NamespaceOperations.test.d.ts.map +1 -0
  351. package/dist/tests/kubernetes/NamespaceOperations.test.js +115 -0
  352. package/dist/tests/kubernetes/NamespaceOperations.test.js.map +1 -0
  353. package/dist/tests/kubernetes/PodOperations.test.d.ts +2 -0
  354. package/dist/tests/kubernetes/PodOperations.test.d.ts.map +1 -0
  355. package/dist/tests/kubernetes/PodOperations.test.js +209 -0
  356. package/dist/tests/kubernetes/PodOperations.test.js.map +1 -0
  357. package/dist/tests/kubernetes/RetryStrategy.test.d.ts +2 -0
  358. package/dist/tests/kubernetes/RetryStrategy.test.d.ts.map +1 -0
  359. package/dist/tests/kubernetes/RetryStrategy.test.js +419 -0
  360. package/dist/tests/kubernetes/RetryStrategy.test.js.map +1 -0
  361. package/dist/tests/kubernetes/ServiceOperations.test.d.ts +2 -0
  362. package/dist/tests/kubernetes/ServiceOperations.test.d.ts.map +1 -0
  363. package/dist/tests/kubernetes/ServiceOperations.test.js +159 -0
  364. package/dist/tests/kubernetes/ServiceOperations.test.js.map +1 -0
  365. package/dist/tests/plugins/KubernetesToolsPlugin.test.d.ts +2 -0
  366. package/dist/tests/plugins/KubernetesToolsPlugin.test.d.ts.map +1 -0
  367. package/dist/tests/plugins/KubernetesToolsPlugin.test.js +153 -0
  368. package/dist/tests/plugins/KubernetesToolsPlugin.test.js.map +1 -0
  369. package/dist/tests/server/MCPServer.integration.test.d.ts +2 -0
  370. package/dist/tests/server/MCPServer.integration.test.d.ts.map +1 -0
  371. package/dist/tests/server/MCPServer.integration.test.js +244 -0
  372. package/dist/tests/server/MCPServer.integration.test.js.map +1 -0
  373. package/dist/tests/server/MCPServer.test.d.ts +2 -0
  374. package/dist/tests/server/MCPServer.test.d.ts.map +1 -0
  375. package/dist/tests/server/MCPServer.test.js +257 -0
  376. package/dist/tests/server/MCPServer.test.js.map +1 -0
  377. package/package.json +85 -0
  378. package/src/cli/cli.ts +25 -0
  379. package/src/cli/run-command.js +391 -0
  380. package/src/index.ts +46 -0
  381. package/src/kubernetes/BaseResourceOperations.ts +286 -0
  382. package/src/kubernetes/CircuitBreaker.ts +485 -0
  383. package/src/kubernetes/ConnectionManager.ts +114 -0
  384. package/src/kubernetes/ConnectionPool.ts +551 -0
  385. package/src/kubernetes/ErrorHandler.ts +436 -0
  386. package/src/kubernetes/ErrorHandling.ts +401 -0
  387. package/src/kubernetes/KubernetesClient.ts +500 -0
  388. package/src/kubernetes/README.md +349 -0
  389. package/src/kubernetes/ResourceOperations.ts +116 -0
  390. package/src/kubernetes/RetryStrategy.ts +365 -0
  391. package/src/kubernetes/RetryableOperation.ts +313 -0
  392. package/src/kubernetes/docs/ResourceOperations.md +606 -0
  393. package/src/kubernetes/index.ts +116 -0
  394. package/src/kubernetes/resources/ConfigMapOperations.ts +367 -0
  395. package/src/kubernetes/resources/CustomResourceOperations.ts +392 -0
  396. package/src/kubernetes/resources/DeploymentOperations.ts +294 -0
  397. package/src/kubernetes/resources/IngressOperations.ts +277 -0
  398. package/src/kubernetes/resources/MetricOperations.ts +1159 -0
  399. package/src/kubernetes/resources/NamespaceOperations.ts +129 -0
  400. package/src/kubernetes/resources/PersistentVolumeClaimOperations.ts +516 -0
  401. package/src/kubernetes/resources/PersistentVolumeOperations.ts +438 -0
  402. package/src/kubernetes/resources/PodOperations.ts +417 -0
  403. package/src/kubernetes/resources/SecretOperations.ts +304 -0
  404. package/src/kubernetes/resources/ServiceOperations.ts +283 -0
  405. package/src/kubernetes/utils/ResourceUtils.ts +553 -0
  406. package/src/plugins/ArgoCDToolsPlugin.ts +189 -0
  407. package/src/plugins/ArgoToolsPlugin.ts +180 -0
  408. package/src/plugins/HelmToolsPlugin.ts +180 -0
  409. package/src/plugins/KubernetesToolsPlugin.ts +198 -0
  410. package/src/plugins/SamplePlugin.ts +60 -0
  411. package/src/plugins/index.ts +4 -0
  412. package/src/server/MCPServer.ts +500 -0
  413. package/src/tools/argo/ArgoCronListTool.ts +78 -0
  414. package/src/tools/argo/ArgoGetTool.ts +91 -0
  415. package/src/tools/argo/ArgoListTool.ts +143 -0
  416. package/src/tools/argo/ArgoLogsTool.ts +131 -0
  417. package/src/tools/argo/BaseTool.ts +69 -0
  418. package/src/tools/argo/index.ts +6 -0
  419. package/src/tools/argocd/ArgoCDAppGetTool.ts +109 -0
  420. package/src/tools/argocd/ArgoCDAppHistoryTool.ts +91 -0
  421. package/src/tools/argocd/ArgoCDAppListTool.ts +144 -0
  422. package/src/tools/argocd/ArgoCDAppLogsTool.ts +162 -0
  423. package/src/tools/argocd/ArgoCDAppResourcesTool.ts +139 -0
  424. package/src/tools/argocd/BaseTool.ts +83 -0
  425. package/src/tools/argocd/index.ts +7 -0
  426. package/src/tools/helm/BaseTool.ts +60 -0
  427. package/src/tools/helm/HelmGetHooksTool.ts +44 -0
  428. package/src/tools/helm/HelmGetManifestTool.ts +44 -0
  429. package/src/tools/helm/HelmGetNotesTool.ts +44 -0
  430. package/src/tools/helm/HelmGetResourcesTool.ts +140 -0
  431. package/src/tools/helm/HelmGetValuesTool.ts +62 -0
  432. package/src/tools/helm/HelmHistoryTool.ts +56 -0
  433. package/src/tools/helm/HelmListTool.ts +107 -0
  434. package/src/tools/helm/HelmListWithResourcesTool.ts +194 -0
  435. package/src/tools/helm/HelmStatusTool.ts +62 -0
  436. package/src/tools/helm/index.ts +11 -0
  437. package/src/tools/kubernetes/BaseTool.ts +76 -0
  438. package/src/tools/kubernetes/GetConfigMapTool.ts +33 -0
  439. package/src/tools/kubernetes/GetContainerLogsTool.ts +140 -0
  440. package/src/tools/kubernetes/GetDeploymentsTool.ts +33 -0
  441. package/src/tools/kubernetes/GetEventsTool.ts +133 -0
  442. package/src/tools/kubernetes/GetIngressTool.ts +39 -0
  443. package/src/tools/kubernetes/GetMetricsTool.ts +53 -0
  444. package/src/tools/kubernetes/GetNamespacesTool.ts +36 -0
  445. package/src/tools/kubernetes/GetPersistentVolumeClaimsTool.ts +113 -0
  446. package/src/tools/kubernetes/GetPersistentVolumesTool.ts +107 -0
  447. package/src/tools/kubernetes/GetPodMetricsTool.ts +113 -0
  448. package/src/tools/kubernetes/GetPodsTool.ts +39 -0
  449. package/src/tools/kubernetes/GetResourceTool.ts +90 -0
  450. package/src/tools/kubernetes/GetSecretsTool.ts +55 -0
  451. package/src/tools/kubernetes/GetServicesTool.ts +39 -0
  452. package/src/tools/kubernetes/index.ts +16 -0
  453. package/src/utils/CliUtils.ts +207 -0
  454. 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';