@skyhook-io/radar-app 0.1.1

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 (251) hide show
  1. package/README.md +67 -0
  2. package/package.json +80 -0
  3. package/src/App.tsx +1538 -0
  4. package/src/RadarApp.tsx +145 -0
  5. package/src/api/apiResources.ts +28 -0
  6. package/src/api/client.ts +2583 -0
  7. package/src/api/config.ts +116 -0
  8. package/src/api/traffic.ts +139 -0
  9. package/src/components/ConnectionErrorView.tsx +272 -0
  10. package/src/components/ContextSwitcher.tsx +481 -0
  11. package/src/components/DebugOverlay.tsx +94 -0
  12. package/src/components/UserMenu.tsx +87 -0
  13. package/src/components/audit/AuditSettingsDialog.tsx +162 -0
  14. package/src/components/audit/AuditView.tsx +123 -0
  15. package/src/components/cost/CostTrendChart.tsx +388 -0
  16. package/src/components/cost/CostView.tsx +545 -0
  17. package/src/components/dock/BottomDock.tsx +96 -0
  18. package/src/components/dock/DockContext.tsx +11 -0
  19. package/src/components/dock/LocalTerminalTab.tsx +22 -0
  20. package/src/components/dock/LogsTab.tsx +26 -0
  21. package/src/components/dock/NodeTerminalTab.tsx +50 -0
  22. package/src/components/dock/TerminalTab.tsx +42 -0
  23. package/src/components/dock/TrafficFlowListTab.tsx +18 -0
  24. package/src/components/dock/WorkloadLogsTab.tsx +23 -0
  25. package/src/components/dock/index.ts +2 -0
  26. package/src/components/gitops/GitOpsActions.tsx +1 -0
  27. package/src/components/gitops/GitOpsStatusBadge.tsx +1 -0
  28. package/src/components/gitops/ManagedResourcesList.tsx +1 -0
  29. package/src/components/gitops/SyncCountdown.tsx +1 -0
  30. package/src/components/gitops/index.ts +4 -0
  31. package/src/components/helm/ChartBrowser.tsx +580 -0
  32. package/src/components/helm/HelmReleaseDrawer.tsx +774 -0
  33. package/src/components/helm/HelmView.tsx +475 -0
  34. package/src/components/helm/InstallWizard.tsx +1060 -0
  35. package/src/components/helm/ManifestDiffViewer.tsx +91 -0
  36. package/src/components/helm/ManifestViewer.tsx +61 -0
  37. package/src/components/helm/OwnedResources.tsx +465 -0
  38. package/src/components/helm/RevisionHistory.tsx +167 -0
  39. package/src/components/helm/ValuesDiffPreview.tsx +190 -0
  40. package/src/components/helm/ValuesViewer.tsx +365 -0
  41. package/src/components/helm/helm-utils.ts +37 -0
  42. package/src/components/home/ActivitySummary.tsx +262 -0
  43. package/src/components/home/CertificateHealthCard.tsx +105 -0
  44. package/src/components/home/ClusterHealthCard.tsx +483 -0
  45. package/src/components/home/CostCard.tsx +112 -0
  46. package/src/components/home/HealthRing.tsx +1 -0
  47. package/src/components/home/HelmSummary.tsx +129 -0
  48. package/src/components/home/HomeView.tsx +224 -0
  49. package/src/components/home/MCPSetupDialog.tsx +417 -0
  50. package/src/components/home/NetworkPolicyCoverageCard.tsx +109 -0
  51. package/src/components/home/TopologyPreview.tsx +219 -0
  52. package/src/components/home/TrafficSummary.tsx +154 -0
  53. package/src/components/logs/JsonLogLine.tsx +1 -0
  54. package/src/components/logs/LogCore.tsx +2 -0
  55. package/src/components/logs/LogsViewer.tsx +44 -0
  56. package/src/components/logs/WorkloadLogsViewer.tsx +40 -0
  57. package/src/components/logs/useLogBuffer.ts +2 -0
  58. package/src/components/logs/useLogSearch.ts +1 -0
  59. package/src/components/portforward/PortForwardButton.tsx +375 -0
  60. package/src/components/portforward/PortForwardManager.tsx +871 -0
  61. package/src/components/resource/PrometheusCharts.tsx +687 -0
  62. package/src/components/resource-drawer/ResourceDrawer.tsx +214 -0
  63. package/src/components/resources/ImageFilesystemModal.tsx +745 -0
  64. package/src/components/resources/PodFilesystemModal.tsx +407 -0
  65. package/src/components/resources/ResourceDetailDrawer.tsx +43 -0
  66. package/src/components/resources/ResourcesView.tsx +190 -0
  67. package/src/components/resources/drawer-components.tsx +1 -0
  68. package/src/components/resources/file-browser-utils.ts +35 -0
  69. package/src/components/resources/renderers/AlertRenderer.tsx +1 -0
  70. package/src/components/resources/renderers/ArgoApplicationRenderer.tsx +17 -0
  71. package/src/components/resources/renderers/CNPGBackupRenderer.tsx +1 -0
  72. package/src/components/resources/renderers/CNPGClusterRenderer.tsx +1 -0
  73. package/src/components/resources/renderers/CNPGPoolerRenderer.tsx +1 -0
  74. package/src/components/resources/renderers/CNPGScheduledBackupRenderer.tsx +1 -0
  75. package/src/components/resources/renderers/CertificateRenderer.tsx +1 -0
  76. package/src/components/resources/renderers/CertificateRequestRenderer.tsx +1 -0
  77. package/src/components/resources/renderers/ChallengeRenderer.tsx +1 -0
  78. package/src/components/resources/renderers/ClusterComplianceReportRenderer.tsx +1 -0
  79. package/src/components/resources/renderers/ClusterExternalSecretRenderer.tsx +1 -0
  80. package/src/components/resources/renderers/ClusterIssuerRenderer.tsx +1 -0
  81. package/src/components/resources/renderers/ConfigAuditReportRenderer.tsx +1 -0
  82. package/src/components/resources/renderers/ConfigMapRenderer.tsx +1 -0
  83. package/src/components/resources/renderers/CronJobRenderer.tsx +1 -0
  84. package/src/components/resources/renderers/EventRenderer.tsx +1 -0
  85. package/src/components/resources/renderers/ExposedSecretReportRenderer.tsx +1 -0
  86. package/src/components/resources/renderers/ExternalSecretRenderer.tsx +1 -0
  87. package/src/components/resources/renderers/FluxHelmReleaseRenderer.tsx +1 -0
  88. package/src/components/resources/renderers/GRPCRouteRenderer.tsx +1 -0
  89. package/src/components/resources/renderers/GatewayClassRenderer.tsx +1 -0
  90. package/src/components/resources/renderers/GatewayRenderer.tsx +1 -0
  91. package/src/components/resources/renderers/GenericRenderer.tsx +1 -0
  92. package/src/components/resources/renderers/GitRepositoryRenderer.tsx +1 -0
  93. package/src/components/resources/renderers/HPARenderer.tsx +1 -0
  94. package/src/components/resources/renderers/HTTPRouteRenderer.tsx +1 -0
  95. package/src/components/resources/renderers/HelmRepositoryRenderer.tsx +1 -0
  96. package/src/components/resources/renderers/IngressClassRenderer.tsx +1 -0
  97. package/src/components/resources/renderers/IngressRenderer.tsx +1 -0
  98. package/src/components/resources/renderers/IstioAuthorizationPolicyRenderer.tsx +1 -0
  99. package/src/components/resources/renderers/IstioDestinationRuleRenderer.tsx +1 -0
  100. package/src/components/resources/renderers/IstioGatewayRenderer.tsx +1 -0
  101. package/src/components/resources/renderers/IstioPeerAuthenticationRenderer.tsx +1 -0
  102. package/src/components/resources/renderers/IstioServiceEntryRenderer.tsx +1 -0
  103. package/src/components/resources/renderers/IstioVirtualServiceRenderer.tsx +1 -0
  104. package/src/components/resources/renderers/JobRenderer.tsx +1 -0
  105. package/src/components/resources/renderers/KarpenterEC2NodeClassRenderer.tsx +1 -0
  106. package/src/components/resources/renderers/KarpenterNodeClaimRenderer.tsx +1 -0
  107. package/src/components/resources/renderers/KarpenterNodePoolRenderer.tsx +1 -0
  108. package/src/components/resources/renderers/KedaScaledJobRenderer.tsx +1 -0
  109. package/src/components/resources/renderers/KedaScaledObjectRenderer.tsx +1 -0
  110. package/src/components/resources/renderers/KedaTriggerAuthRenderer.tsx +1 -0
  111. package/src/components/resources/renderers/KnativeConfigurationRenderer.tsx +1 -0
  112. package/src/components/resources/renderers/KnativeEventingRenderer.tsx +1 -0
  113. package/src/components/resources/renderers/KnativeFlowRenderer.tsx +1 -0
  114. package/src/components/resources/renderers/KnativeNetworkingRenderer.tsx +1 -0
  115. package/src/components/resources/renderers/KnativeRevisionRenderer.tsx +1 -0
  116. package/src/components/resources/renderers/KnativeRouteRenderer.tsx +1 -0
  117. package/src/components/resources/renderers/KnativeServiceRenderer.tsx +1 -0
  118. package/src/components/resources/renderers/KnativeSourceRenderer.tsx +1 -0
  119. package/src/components/resources/renderers/KustomizationRenderer.tsx +1 -0
  120. package/src/components/resources/renderers/KyvernoPolicyReportRenderer.tsx +1 -0
  121. package/src/components/resources/renderers/LeaseRenderer.tsx +1 -0
  122. package/src/components/resources/renderers/NetworkPolicyRenderer.tsx +1 -0
  123. package/src/components/resources/renderers/NodeRenderer.tsx +44 -0
  124. package/src/components/resources/renderers/OCIRepositoryRenderer.tsx +1 -0
  125. package/src/components/resources/renderers/OrderRenderer.tsx +1 -0
  126. package/src/components/resources/renderers/PVCRenderer.tsx +1 -0
  127. package/src/components/resources/renderers/PersistentVolumeRenderer.tsx +1 -0
  128. package/src/components/resources/renderers/PodDisruptionBudgetRenderer.tsx +1 -0
  129. package/src/components/resources/renderers/PodMonitorRenderer.tsx +1 -0
  130. package/src/components/resources/renderers/PodRenderer.tsx +94 -0
  131. package/src/components/resources/renderers/PriorityClassRenderer.tsx +1 -0
  132. package/src/components/resources/renderers/PrometheusRuleRenderer.tsx +1 -0
  133. package/src/components/resources/renderers/ReplicaSetRenderer.tsx +1 -0
  134. package/src/components/resources/renderers/RoleBindingRenderer.tsx +1 -0
  135. package/src/components/resources/renderers/RoleRenderer.tsx +1 -0
  136. package/src/components/resources/renderers/RolloutRenderer.tsx +1 -0
  137. package/src/components/resources/renderers/RuntimeClassRenderer.tsx +1 -0
  138. package/src/components/resources/renderers/SbomReportRenderer.tsx +1 -0
  139. package/src/components/resources/renderers/SealedSecretRenderer.tsx +1 -0
  140. package/src/components/resources/renderers/SecretRenderer.tsx +1 -0
  141. package/src/components/resources/renderers/SecretStoreRenderer.tsx +1 -0
  142. package/src/components/resources/renderers/ServiceAccountRenderer.tsx +1 -0
  143. package/src/components/resources/renderers/ServiceMonitorRenderer.tsx +1 -0
  144. package/src/components/resources/renderers/ServiceRenderer.tsx +26 -0
  145. package/src/components/resources/renderers/SimpleRouteRenderer.tsx +1 -0
  146. package/src/components/resources/renderers/StorageClassRenderer.tsx +1 -0
  147. package/src/components/resources/renderers/TraefikIngressRouteRenderer.tsx +1 -0
  148. package/src/components/resources/renderers/VPARenderer.tsx +1 -0
  149. package/src/components/resources/renderers/VeleroBSLRenderer.tsx +1 -0
  150. package/src/components/resources/renderers/VeleroBackupRenderer.tsx +1 -0
  151. package/src/components/resources/renderers/VeleroRestoreRenderer.tsx +1 -0
  152. package/src/components/resources/renderers/VeleroScheduleRenderer.tsx +1 -0
  153. package/src/components/resources/renderers/VeleroVSLRenderer.tsx +1 -0
  154. package/src/components/resources/renderers/VulnerabilityReportRenderer.tsx +1 -0
  155. package/src/components/resources/renderers/WebhookConfigRenderer.tsx +1 -0
  156. package/src/components/resources/renderers/WorkflowRenderer.tsx +1 -0
  157. package/src/components/resources/renderers/WorkflowTemplateRenderer.tsx +1 -0
  158. package/src/components/resources/renderers/WorkloadRenderer.tsx +52 -0
  159. package/src/components/resources/renderers/argo-cells.tsx +1 -0
  160. package/src/components/resources/renderers/certmanager-cells.tsx +1 -0
  161. package/src/components/resources/renderers/cnpg-cells.tsx +1 -0
  162. package/src/components/resources/renderers/eso-cells.tsx +1 -0
  163. package/src/components/resources/renderers/flux-cells.tsx +1 -0
  164. package/src/components/resources/renderers/index.ts +91 -0
  165. package/src/components/resources/renderers/istio-cells.tsx +1 -0
  166. package/src/components/resources/renderers/karpenter-cells.tsx +1 -0
  167. package/src/components/resources/renderers/keda-cells.tsx +1 -0
  168. package/src/components/resources/renderers/knative-cells.tsx +1 -0
  169. package/src/components/resources/renderers/kyverno-cells.tsx +1 -0
  170. package/src/components/resources/renderers/prometheus-cells.tsx +1 -0
  171. package/src/components/resources/renderers/traefik-cells.tsx +1 -0
  172. package/src/components/resources/renderers/trivy-cells.tsx +1 -0
  173. package/src/components/resources/renderers/trivy-shared.tsx +1 -0
  174. package/src/components/resources/renderers/velero-cells.tsx +1 -0
  175. package/src/components/resources/resource-utils-argo.ts +2 -0
  176. package/src/components/resources/resource-utils-certmanager.ts +2 -0
  177. package/src/components/resources/resource-utils-cnpg.ts +2 -0
  178. package/src/components/resources/resource-utils-eso.ts +2 -0
  179. package/src/components/resources/resource-utils-flux.ts +2 -0
  180. package/src/components/resources/resource-utils-istio.ts +2 -0
  181. package/src/components/resources/resource-utils-karpenter.ts +2 -0
  182. package/src/components/resources/resource-utils-keda.ts +2 -0
  183. package/src/components/resources/resource-utils-knative.ts +2 -0
  184. package/src/components/resources/resource-utils-kyverno.ts +2 -0
  185. package/src/components/resources/resource-utils-prometheus.ts +2 -0
  186. package/src/components/resources/resource-utils-traefik.ts +1 -0
  187. package/src/components/resources/resource-utils-trivy.ts +2 -0
  188. package/src/components/resources/resource-utils-velero.ts +2 -0
  189. package/src/components/resources/resource-utils.ts +5 -0
  190. package/src/components/settings/SettingsDialog.tsx +537 -0
  191. package/src/components/shared/CreateResourceDialog.tsx +17 -0
  192. package/src/components/shared/EditableYamlView.tsx +24 -0
  193. package/src/components/shared/LargeClusterNamespacePicker.tsx +70 -0
  194. package/src/components/shared/ResourceRendererDispatch.tsx +31 -0
  195. package/src/components/timeline/DiffViewer.tsx +1 -0
  196. package/src/components/timeline/TimelineList.tsx +69 -0
  197. package/src/components/timeline/TimelineSwimlanes.tsx +1308 -0
  198. package/src/components/timeline/TimelineView.tsx +157 -0
  199. package/src/components/timeline/shared.tsx +1 -0
  200. package/src/components/traffic/TrafficFilterSidebar.tsx +571 -0
  201. package/src/components/traffic/TrafficFlowList.tsx +415 -0
  202. package/src/components/traffic/TrafficFlowListContext.tsx +68 -0
  203. package/src/components/traffic/TrafficGraph.tsx +1546 -0
  204. package/src/components/traffic/TrafficView.tsx +1213 -0
  205. package/src/components/traffic/TrafficWizard.tsx +386 -0
  206. package/src/components/traffic/index.ts +3 -0
  207. package/src/components/ui/CodeViewer.tsx +8 -0
  208. package/src/components/ui/CommandPalette.tsx +460 -0
  209. package/src/components/ui/ConfirmDialog.tsx +1 -0
  210. package/src/components/ui/DiagnosticsOverlay.tsx +619 -0
  211. package/src/components/ui/ErrorBoundary.tsx +46 -0
  212. package/src/components/ui/ForceDeleteConfirmDialog.tsx +1 -0
  213. package/src/components/ui/Markdown.tsx +108 -0
  214. package/src/components/ui/MetricsChart.tsx +1 -0
  215. package/src/components/ui/NamespaceSelector.tsx +436 -0
  216. package/src/components/ui/ResourceBar.tsx +1 -0
  217. package/src/components/ui/ShortcutHelpOverlay.tsx +301 -0
  218. package/src/components/ui/Toast.tsx +1 -0
  219. package/src/components/ui/Tooltip.tsx +1 -0
  220. package/src/components/ui/UpdateNotification.tsx +299 -0
  221. package/src/components/ui/YamlEditor.tsx +1 -0
  222. package/src/components/workload/WorkloadView.tsx +532 -0
  223. package/src/context/ConnectionContext.tsx +173 -0
  224. package/src/context/ContextSwitchContext.tsx +56 -0
  225. package/src/context/NavCustomization.tsx +62 -0
  226. package/src/context/ThemeContext.tsx +97 -0
  227. package/src/contexts/CapabilitiesContext.tsx +130 -0
  228. package/src/hooks/useAnimatedUnmount.ts +1 -0
  229. package/src/hooks/useDesktopDownload.ts +41 -0
  230. package/src/hooks/useEventSource.ts +262 -0
  231. package/src/hooks/useFavorites.ts +69 -0
  232. package/src/hooks/useKeyboardShortcuts.tsx +7 -0
  233. package/src/hooks/useRefreshAnimation.ts +1 -0
  234. package/src/index.css +243 -0
  235. package/src/index.ts +17 -0
  236. package/src/main.tsx +158 -0
  237. package/src/types/gitops.ts +2 -0
  238. package/src/types.ts +3 -0
  239. package/src/utils/animation.ts +2 -0
  240. package/src/utils/badge-colors.ts +2 -0
  241. package/src/utils/context-name.ts +2 -0
  242. package/src/utils/desktop-download.ts +66 -0
  243. package/src/utils/desktop-open-folder.ts +21 -0
  244. package/src/utils/format.ts +2 -0
  245. package/src/utils/log-format.ts +12 -0
  246. package/src/utils/navigation.ts +23 -0
  247. package/src/utils/resource-hierarchy.ts +2 -0
  248. package/src/utils/resource-icons.ts +2 -0
  249. package/src/utils/skeleton-yaml.ts +2 -0
  250. package/src/utils/traffic-colors.ts +54 -0
  251. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,17 @@
1
+ import { ArgoApplicationRenderer as BaseArgoApplicationRenderer } from '@skyhook-io/k8s-ui/components/resources/renderers/ArgoApplicationRenderer'
2
+ import { useArgoTerminate } from '../../../api/client'
3
+
4
+ interface ArgoApplicationRendererProps {
5
+ data: any
6
+ }
7
+
8
+ export function ArgoApplicationRenderer({ data }: ArgoApplicationRendererProps) {
9
+ const terminateMutation = useArgoTerminate()
10
+ return (
11
+ <BaseArgoApplicationRenderer
12
+ data={data}
13
+ onTerminate={(params) => terminateMutation.mutate(params)}
14
+ isTerminating={terminateMutation.isPending}
15
+ />
16
+ )
17
+ }
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/CNPGBackupRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/CNPGClusterRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/CNPGPoolerRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/CNPGScheduledBackupRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/CertificateRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/CertificateRequestRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/ChallengeRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/ClusterComplianceReportRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/ClusterExternalSecretRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/ClusterIssuerRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/ConfigAuditReportRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/ConfigMapRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/CronJobRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/EventRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/ExposedSecretReportRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/ExternalSecretRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/FluxHelmReleaseRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/GRPCRouteRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/GatewayClassRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/GatewayRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/GenericRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/GitRepositoryRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/HPARenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/HTTPRouteRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/HelmRepositoryRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/IngressClassRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/IngressRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/IstioAuthorizationPolicyRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/IstioDestinationRuleRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/IstioGatewayRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/IstioPeerAuthenticationRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/IstioServiceEntryRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/IstioVirtualServiceRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/JobRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KarpenterEC2NodeClassRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KarpenterNodeClaimRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KarpenterNodePoolRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KedaScaledJobRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KedaScaledObjectRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KedaTriggerAuthRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KnativeConfigurationRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KnativeEventingRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KnativeFlowRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KnativeNetworkingRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KnativeRevisionRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KnativeRouteRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KnativeServiceRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KnativeSourceRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KustomizationRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/KyvernoPolicyReportRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/LeaseRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/NetworkPolicyRenderer'
@@ -0,0 +1,44 @@
1
+ import { NodeRenderer as BaseNodeRenderer } from '@skyhook-io/k8s-ui/components/resources/renderers/NodeRenderer'
2
+ import { useNavigate } from 'react-router-dom'
3
+ import { useNodeMetrics, useNodeMetricsHistory, usePrometheusResourceMetrics, usePrometheusStatus } from '../../../api/client'
4
+ import { serializeColumnFilters } from '../resource-utils'
5
+
6
+ interface NodeRendererProps {
7
+ data: any
8
+ relationships?: { pods?: any[] }
9
+ }
10
+
11
+ export function NodeRenderer({ data, relationships }: NodeRendererProps) {
12
+ const navigate = useNavigate()
13
+ const nodeName = data.metadata?.name
14
+
15
+ // Fetch node metrics
16
+ const { data: metrics } = useNodeMetrics(nodeName)
17
+ const { data: metricsHistory } = useNodeMetricsHistory(nodeName)
18
+
19
+ // Determine whether to hide metrics-server section (Prometheus has data)
20
+ const { data: prometheusStatus } = usePrometheusStatus()
21
+ const prometheusConnected = prometheusStatus?.connected === true
22
+ const { data: prometheusCPU, isLoading: prometheusCPULoading, error: prometheusCPUError } = usePrometheusResourceMetrics(
23
+ 'Node', '', nodeName ?? '', 'cpu', '1h', prometheusConnected,
24
+ )
25
+ const prometheusHasCPU = !prometheusCPUError && (prometheusCPU?.result?.series?.some(
26
+ s => s.dataPoints?.length > 0,
27
+ ) ?? false)
28
+ const hideMetricsServer = prometheusHasCPU || (prometheusConnected && prometheusCPULoading)
29
+
30
+ return (
31
+ <BaseNodeRenderer
32
+ data={data}
33
+ relationships={relationships}
34
+ onViewPods={nodeName ? () => {
35
+ const params = new URLSearchParams()
36
+ params.set('filters', serializeColumnFilters({ node: [nodeName] }))
37
+ navigate(`/resources/pods?${params.toString()}`)
38
+ } : undefined}
39
+ metrics={metrics}
40
+ metricsHistory={metricsHistory}
41
+ hideMetricsServer={hideMetricsServer}
42
+ />
43
+ )
44
+ }
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/OCIRepositoryRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/OrderRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/PVCRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/PersistentVolumeRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/PodDisruptionBudgetRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/PodMonitorRenderer'
@@ -0,0 +1,94 @@
1
+ import { PodRenderer as BasePodRenderer } from '@skyhook-io/k8s-ui/components/resources/renderers/PodRenderer'
2
+ import type { CopyHandler } from '@skyhook-io/k8s-ui/components/ui/drawer-components'
3
+ import type { ResolvedEnvFrom } from '@skyhook-io/k8s-ui'
4
+ import { useOpenTerminal, useOpenLogs } from '../../dock'
5
+ import { useNamespacedCapabilities } from '../../../contexts/CapabilitiesContext'
6
+ import { usePodMetrics, usePodMetricsHistory, usePrometheusResourceMetrics, usePrometheusStatus } from '../../../api/client'
7
+ import { PortForwardInlineButton } from '../../portforward/PortForwardButton'
8
+ import { ImageFilesystemModal } from '../ImageFilesystemModal'
9
+ import { PodFilesystemModal } from '../PodFilesystemModal'
10
+
11
+ interface PodRendererProps {
12
+ data: any
13
+ onCopy: CopyHandler
14
+ copied: string | null
15
+ onNavigate?: (ref: { kind: string; namespace: string; name: string }) => void
16
+ onOpenLogs?: (podName: string, containerName: string) => void
17
+ resolvedEnvFrom?: ResolvedEnvFrom
18
+ }
19
+
20
+ export function PodRenderer({ data, onCopy, copied, onNavigate, onOpenLogs, resolvedEnvFrom }: PodRendererProps) {
21
+ const namespace = data.metadata?.namespace
22
+ const podName = data.metadata?.name
23
+
24
+ const openTerminal = useOpenTerminal()
25
+ const openLogsPanel = useOpenLogs()
26
+
27
+ // Capabilities (namespace-scoped: re-checks RBAC if globally denied)
28
+ const { canExec, canViewLogs, canPortForward } = useNamespacedCapabilities(namespace)
29
+
30
+ // Metrics
31
+ const { data: metrics } = usePodMetrics(namespace, podName)
32
+ const { data: metricsHistory } = usePodMetricsHistory(namespace, podName)
33
+
34
+ // Hide metrics-server section when Prometheus has CPU data
35
+ const { data: prometheusStatus } = usePrometheusStatus()
36
+ const prometheusConnected = prometheusStatus?.connected === true
37
+ const { data: prometheusCPU, isLoading: prometheusCPULoading, error: prometheusCPUError } = usePrometheusResourceMetrics(
38
+ 'Pod', namespace ?? '', podName ?? '', 'cpu', '1h', prometheusConnected,
39
+ )
40
+ const prometheusHasCPU = !prometheusCPUError && (prometheusCPU?.result?.series?.some(
41
+ s => s.dataPoints?.length > 0,
42
+ ) ?? false)
43
+ const hideMetricsServer = prometheusHasCPU || (prometheusConnected && prometheusCPULoading)
44
+
45
+ return (
46
+ <BasePodRenderer
47
+ data={data}
48
+ onCopy={onCopy}
49
+ copied={copied}
50
+ onNavigate={onNavigate}
51
+ onOpenLogs={onOpenLogs}
52
+ resolvedEnvFrom={resolvedEnvFrom}
53
+ canExec={canExec}
54
+ canViewLogs={canViewLogs}
55
+ canPortForward={canPortForward}
56
+ onOpenTerminal={(params) => openTerminal(params)}
57
+ onOpenLogsPanel={(params) => openLogsPanel(params)}
58
+ renderPortAction={({ namespace: ns, podName: pod, port, protocol, disabled }) => (
59
+ <PortForwardInlineButton
60
+ namespace={ns}
61
+ podName={pod}
62
+ port={port}
63
+ protocol={protocol}
64
+ disabled={disabled}
65
+ />
66
+ )}
67
+ metrics={metrics}
68
+ metricsHistory={metricsHistory}
69
+ hideMetricsServer={hideMetricsServer}
70
+ renderImageBrowser={({ image, namespace: ns, podName: pod, pullSecrets, onClose, onSwitchToPodFiles }) => (
71
+ <ImageFilesystemModal
72
+ open={true}
73
+ onClose={onClose}
74
+ image={image}
75
+ namespace={ns}
76
+ podName={pod}
77
+ pullSecrets={pullSecrets}
78
+ onSwitchToPodFiles={onSwitchToPodFiles}
79
+ />
80
+ )}
81
+ renderPodBrowser={({ namespace: ns, podName: pod, containers, initialContainer, onClose, onSwitchToImageFiles }) => (
82
+ <PodFilesystemModal
83
+ open={true}
84
+ onClose={onClose}
85
+ namespace={ns}
86
+ podName={pod}
87
+ containers={containers}
88
+ initialContainer={initialContainer}
89
+ onSwitchToImageFiles={onSwitchToImageFiles}
90
+ />
91
+ )}
92
+ />
93
+ )
94
+ }
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/PriorityClassRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/PrometheusRuleRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/ReplicaSetRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/RoleBindingRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/RoleRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/RolloutRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/RuntimeClassRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/SbomReportRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/SealedSecretRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/SecretRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/SecretStoreRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/ServiceAccountRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/ServiceMonitorRenderer'
@@ -0,0 +1,26 @@
1
+ import { ServiceRenderer as BaseServiceRenderer } from '@skyhook-io/k8s-ui/components/resources/renderers/ServiceRenderer'
2
+ import { PortForwardInlineButton } from '../../portforward/PortForwardButton'
3
+
4
+ interface ServiceRendererProps {
5
+ data: any
6
+ onCopy: (text: string, label: string) => void
7
+ copied: string | null
8
+ }
9
+
10
+ export function ServiceRenderer({ data, onCopy, copied }: ServiceRendererProps) {
11
+ return (
12
+ <BaseServiceRenderer
13
+ data={data}
14
+ onCopy={onCopy}
15
+ copied={copied}
16
+ renderPortAction={({ namespace, serviceName, port, protocol }) => (
17
+ <PortForwardInlineButton
18
+ namespace={namespace}
19
+ serviceName={serviceName}
20
+ port={port}
21
+ protocol={protocol}
22
+ />
23
+ )}
24
+ />
25
+ )
26
+ }
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/SimpleRouteRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/StorageClassRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/TraefikIngressRouteRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/VPARenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/VeleroBSLRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/VeleroBackupRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/VeleroRestoreRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/VeleroScheduleRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/VeleroVSLRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/VulnerabilityReportRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/WebhookConfigRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/WorkflowRenderer'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/WorkflowTemplateRenderer'
@@ -0,0 +1,52 @@
1
+ import { WorkloadRenderer as BaseWorkloadRenderer } from '@skyhook-io/k8s-ui/components/resources/renderers/WorkloadRenderer'
2
+ import { useNavigate } from 'react-router-dom'
3
+ import { useScaleWorkload } from '../../../api/client'
4
+ import { useQueryClient } from '@tanstack/react-query'
5
+
6
+ // Map plural lowercase kind to singular PascalCase for ownerReferences matching
7
+ function getOwnerKind(kind: string): string {
8
+ const kindMap: Record<string, string> = {
9
+ 'daemonsets': 'DaemonSet',
10
+ 'deployments': 'Deployment',
11
+ 'statefulsets': 'StatefulSet',
12
+ 'replicasets': 'ReplicaSet',
13
+ 'jobs': 'Job',
14
+ }
15
+ return kindMap[kind] || kind
16
+ }
17
+
18
+ interface WorkloadRendererProps {
19
+ kind: string
20
+ data: any
21
+ onNavigate?: (ref: { kind: string; namespace: string; name: string }) => void
22
+ }
23
+
24
+ export function WorkloadRenderer({ kind, data, onNavigate }: WorkloadRendererProps) {
25
+ const navigate = useNavigate()
26
+ const queryClient = useQueryClient()
27
+ const scaleMutation = useScaleWorkload()
28
+
29
+ const metadata = data.metadata || {}
30
+ const viewPodsUrl = `/resources/pods?ownerKind=${encodeURIComponent(getOwnerKind(kind))}&ownerName=${encodeURIComponent(metadata.name || '')}&namespace=${encodeURIComponent(metadata.namespace || '')}`
31
+
32
+ return (
33
+ <BaseWorkloadRenderer
34
+ kind={kind}
35
+ data={data}
36
+ onNavigate={onNavigate}
37
+ onViewPods={() => navigate(viewPodsUrl)}
38
+ onScale={async (replicas) => {
39
+ await scaleMutation.mutateAsync({
40
+ kind,
41
+ namespace: metadata.namespace,
42
+ name: metadata.name,
43
+ replicas,
44
+ })
45
+ }}
46
+ isScalePending={scaleMutation.isPending}
47
+ onRequestRefresh={() => {
48
+ queryClient.invalidateQueries({ queryKey: ['resource', kind, metadata.namespace, metadata.name] })
49
+ }}
50
+ />
51
+ )
52
+ }
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/argo-cells'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/certmanager-cells'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/cnpg-cells'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/eso-cells'
@@ -0,0 +1 @@
1
+ export * from '@skyhook-io/k8s-ui/components/resources/renderers/flux-cells'