@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.
- package/README.md +67 -0
- package/package.json +80 -0
- package/src/App.tsx +1538 -0
- package/src/RadarApp.tsx +145 -0
- package/src/api/apiResources.ts +28 -0
- package/src/api/client.ts +2583 -0
- package/src/api/config.ts +116 -0
- package/src/api/traffic.ts +139 -0
- package/src/components/ConnectionErrorView.tsx +272 -0
- package/src/components/ContextSwitcher.tsx +481 -0
- package/src/components/DebugOverlay.tsx +94 -0
- package/src/components/UserMenu.tsx +87 -0
- package/src/components/audit/AuditSettingsDialog.tsx +162 -0
- package/src/components/audit/AuditView.tsx +123 -0
- package/src/components/cost/CostTrendChart.tsx +388 -0
- package/src/components/cost/CostView.tsx +545 -0
- package/src/components/dock/BottomDock.tsx +96 -0
- package/src/components/dock/DockContext.tsx +11 -0
- package/src/components/dock/LocalTerminalTab.tsx +22 -0
- package/src/components/dock/LogsTab.tsx +26 -0
- package/src/components/dock/NodeTerminalTab.tsx +50 -0
- package/src/components/dock/TerminalTab.tsx +42 -0
- package/src/components/dock/TrafficFlowListTab.tsx +18 -0
- package/src/components/dock/WorkloadLogsTab.tsx +23 -0
- package/src/components/dock/index.ts +2 -0
- package/src/components/gitops/GitOpsActions.tsx +1 -0
- package/src/components/gitops/GitOpsStatusBadge.tsx +1 -0
- package/src/components/gitops/ManagedResourcesList.tsx +1 -0
- package/src/components/gitops/SyncCountdown.tsx +1 -0
- package/src/components/gitops/index.ts +4 -0
- package/src/components/helm/ChartBrowser.tsx +580 -0
- package/src/components/helm/HelmReleaseDrawer.tsx +774 -0
- package/src/components/helm/HelmView.tsx +475 -0
- package/src/components/helm/InstallWizard.tsx +1060 -0
- package/src/components/helm/ManifestDiffViewer.tsx +91 -0
- package/src/components/helm/ManifestViewer.tsx +61 -0
- package/src/components/helm/OwnedResources.tsx +465 -0
- package/src/components/helm/RevisionHistory.tsx +167 -0
- package/src/components/helm/ValuesDiffPreview.tsx +190 -0
- package/src/components/helm/ValuesViewer.tsx +365 -0
- package/src/components/helm/helm-utils.ts +37 -0
- package/src/components/home/ActivitySummary.tsx +262 -0
- package/src/components/home/CertificateHealthCard.tsx +105 -0
- package/src/components/home/ClusterHealthCard.tsx +483 -0
- package/src/components/home/CostCard.tsx +112 -0
- package/src/components/home/HealthRing.tsx +1 -0
- package/src/components/home/HelmSummary.tsx +129 -0
- package/src/components/home/HomeView.tsx +224 -0
- package/src/components/home/MCPSetupDialog.tsx +417 -0
- package/src/components/home/NetworkPolicyCoverageCard.tsx +109 -0
- package/src/components/home/TopologyPreview.tsx +219 -0
- package/src/components/home/TrafficSummary.tsx +154 -0
- package/src/components/logs/JsonLogLine.tsx +1 -0
- package/src/components/logs/LogCore.tsx +2 -0
- package/src/components/logs/LogsViewer.tsx +44 -0
- package/src/components/logs/WorkloadLogsViewer.tsx +40 -0
- package/src/components/logs/useLogBuffer.ts +2 -0
- package/src/components/logs/useLogSearch.ts +1 -0
- package/src/components/portforward/PortForwardButton.tsx +375 -0
- package/src/components/portforward/PortForwardManager.tsx +871 -0
- package/src/components/resource/PrometheusCharts.tsx +687 -0
- package/src/components/resource-drawer/ResourceDrawer.tsx +214 -0
- package/src/components/resources/ImageFilesystemModal.tsx +745 -0
- package/src/components/resources/PodFilesystemModal.tsx +407 -0
- package/src/components/resources/ResourceDetailDrawer.tsx +43 -0
- package/src/components/resources/ResourcesView.tsx +190 -0
- package/src/components/resources/drawer-components.tsx +1 -0
- package/src/components/resources/file-browser-utils.ts +35 -0
- package/src/components/resources/renderers/AlertRenderer.tsx +1 -0
- package/src/components/resources/renderers/ArgoApplicationRenderer.tsx +17 -0
- package/src/components/resources/renderers/CNPGBackupRenderer.tsx +1 -0
- package/src/components/resources/renderers/CNPGClusterRenderer.tsx +1 -0
- package/src/components/resources/renderers/CNPGPoolerRenderer.tsx +1 -0
- package/src/components/resources/renderers/CNPGScheduledBackupRenderer.tsx +1 -0
- package/src/components/resources/renderers/CertificateRenderer.tsx +1 -0
- package/src/components/resources/renderers/CertificateRequestRenderer.tsx +1 -0
- package/src/components/resources/renderers/ChallengeRenderer.tsx +1 -0
- package/src/components/resources/renderers/ClusterComplianceReportRenderer.tsx +1 -0
- package/src/components/resources/renderers/ClusterExternalSecretRenderer.tsx +1 -0
- package/src/components/resources/renderers/ClusterIssuerRenderer.tsx +1 -0
- package/src/components/resources/renderers/ConfigAuditReportRenderer.tsx +1 -0
- package/src/components/resources/renderers/ConfigMapRenderer.tsx +1 -0
- package/src/components/resources/renderers/CronJobRenderer.tsx +1 -0
- package/src/components/resources/renderers/EventRenderer.tsx +1 -0
- package/src/components/resources/renderers/ExposedSecretReportRenderer.tsx +1 -0
- package/src/components/resources/renderers/ExternalSecretRenderer.tsx +1 -0
- package/src/components/resources/renderers/FluxHelmReleaseRenderer.tsx +1 -0
- package/src/components/resources/renderers/GRPCRouteRenderer.tsx +1 -0
- package/src/components/resources/renderers/GatewayClassRenderer.tsx +1 -0
- package/src/components/resources/renderers/GatewayRenderer.tsx +1 -0
- package/src/components/resources/renderers/GenericRenderer.tsx +1 -0
- package/src/components/resources/renderers/GitRepositoryRenderer.tsx +1 -0
- package/src/components/resources/renderers/HPARenderer.tsx +1 -0
- package/src/components/resources/renderers/HTTPRouteRenderer.tsx +1 -0
- package/src/components/resources/renderers/HelmRepositoryRenderer.tsx +1 -0
- package/src/components/resources/renderers/IngressClassRenderer.tsx +1 -0
- package/src/components/resources/renderers/IngressRenderer.tsx +1 -0
- package/src/components/resources/renderers/IstioAuthorizationPolicyRenderer.tsx +1 -0
- package/src/components/resources/renderers/IstioDestinationRuleRenderer.tsx +1 -0
- package/src/components/resources/renderers/IstioGatewayRenderer.tsx +1 -0
- package/src/components/resources/renderers/IstioPeerAuthenticationRenderer.tsx +1 -0
- package/src/components/resources/renderers/IstioServiceEntryRenderer.tsx +1 -0
- package/src/components/resources/renderers/IstioVirtualServiceRenderer.tsx +1 -0
- package/src/components/resources/renderers/JobRenderer.tsx +1 -0
- package/src/components/resources/renderers/KarpenterEC2NodeClassRenderer.tsx +1 -0
- package/src/components/resources/renderers/KarpenterNodeClaimRenderer.tsx +1 -0
- package/src/components/resources/renderers/KarpenterNodePoolRenderer.tsx +1 -0
- package/src/components/resources/renderers/KedaScaledJobRenderer.tsx +1 -0
- package/src/components/resources/renderers/KedaScaledObjectRenderer.tsx +1 -0
- package/src/components/resources/renderers/KedaTriggerAuthRenderer.tsx +1 -0
- package/src/components/resources/renderers/KnativeConfigurationRenderer.tsx +1 -0
- package/src/components/resources/renderers/KnativeEventingRenderer.tsx +1 -0
- package/src/components/resources/renderers/KnativeFlowRenderer.tsx +1 -0
- package/src/components/resources/renderers/KnativeNetworkingRenderer.tsx +1 -0
- package/src/components/resources/renderers/KnativeRevisionRenderer.tsx +1 -0
- package/src/components/resources/renderers/KnativeRouteRenderer.tsx +1 -0
- package/src/components/resources/renderers/KnativeServiceRenderer.tsx +1 -0
- package/src/components/resources/renderers/KnativeSourceRenderer.tsx +1 -0
- package/src/components/resources/renderers/KustomizationRenderer.tsx +1 -0
- package/src/components/resources/renderers/KyvernoPolicyReportRenderer.tsx +1 -0
- package/src/components/resources/renderers/LeaseRenderer.tsx +1 -0
- package/src/components/resources/renderers/NetworkPolicyRenderer.tsx +1 -0
- package/src/components/resources/renderers/NodeRenderer.tsx +44 -0
- package/src/components/resources/renderers/OCIRepositoryRenderer.tsx +1 -0
- package/src/components/resources/renderers/OrderRenderer.tsx +1 -0
- package/src/components/resources/renderers/PVCRenderer.tsx +1 -0
- package/src/components/resources/renderers/PersistentVolumeRenderer.tsx +1 -0
- package/src/components/resources/renderers/PodDisruptionBudgetRenderer.tsx +1 -0
- package/src/components/resources/renderers/PodMonitorRenderer.tsx +1 -0
- package/src/components/resources/renderers/PodRenderer.tsx +94 -0
- package/src/components/resources/renderers/PriorityClassRenderer.tsx +1 -0
- package/src/components/resources/renderers/PrometheusRuleRenderer.tsx +1 -0
- package/src/components/resources/renderers/ReplicaSetRenderer.tsx +1 -0
- package/src/components/resources/renderers/RoleBindingRenderer.tsx +1 -0
- package/src/components/resources/renderers/RoleRenderer.tsx +1 -0
- package/src/components/resources/renderers/RolloutRenderer.tsx +1 -0
- package/src/components/resources/renderers/RuntimeClassRenderer.tsx +1 -0
- package/src/components/resources/renderers/SbomReportRenderer.tsx +1 -0
- package/src/components/resources/renderers/SealedSecretRenderer.tsx +1 -0
- package/src/components/resources/renderers/SecretRenderer.tsx +1 -0
- package/src/components/resources/renderers/SecretStoreRenderer.tsx +1 -0
- package/src/components/resources/renderers/ServiceAccountRenderer.tsx +1 -0
- package/src/components/resources/renderers/ServiceMonitorRenderer.tsx +1 -0
- package/src/components/resources/renderers/ServiceRenderer.tsx +26 -0
- package/src/components/resources/renderers/SimpleRouteRenderer.tsx +1 -0
- package/src/components/resources/renderers/StorageClassRenderer.tsx +1 -0
- package/src/components/resources/renderers/TraefikIngressRouteRenderer.tsx +1 -0
- package/src/components/resources/renderers/VPARenderer.tsx +1 -0
- package/src/components/resources/renderers/VeleroBSLRenderer.tsx +1 -0
- package/src/components/resources/renderers/VeleroBackupRenderer.tsx +1 -0
- package/src/components/resources/renderers/VeleroRestoreRenderer.tsx +1 -0
- package/src/components/resources/renderers/VeleroScheduleRenderer.tsx +1 -0
- package/src/components/resources/renderers/VeleroVSLRenderer.tsx +1 -0
- package/src/components/resources/renderers/VulnerabilityReportRenderer.tsx +1 -0
- package/src/components/resources/renderers/WebhookConfigRenderer.tsx +1 -0
- package/src/components/resources/renderers/WorkflowRenderer.tsx +1 -0
- package/src/components/resources/renderers/WorkflowTemplateRenderer.tsx +1 -0
- package/src/components/resources/renderers/WorkloadRenderer.tsx +52 -0
- package/src/components/resources/renderers/argo-cells.tsx +1 -0
- package/src/components/resources/renderers/certmanager-cells.tsx +1 -0
- package/src/components/resources/renderers/cnpg-cells.tsx +1 -0
- package/src/components/resources/renderers/eso-cells.tsx +1 -0
- package/src/components/resources/renderers/flux-cells.tsx +1 -0
- package/src/components/resources/renderers/index.ts +91 -0
- package/src/components/resources/renderers/istio-cells.tsx +1 -0
- package/src/components/resources/renderers/karpenter-cells.tsx +1 -0
- package/src/components/resources/renderers/keda-cells.tsx +1 -0
- package/src/components/resources/renderers/knative-cells.tsx +1 -0
- package/src/components/resources/renderers/kyverno-cells.tsx +1 -0
- package/src/components/resources/renderers/prometheus-cells.tsx +1 -0
- package/src/components/resources/renderers/traefik-cells.tsx +1 -0
- package/src/components/resources/renderers/trivy-cells.tsx +1 -0
- package/src/components/resources/renderers/trivy-shared.tsx +1 -0
- package/src/components/resources/renderers/velero-cells.tsx +1 -0
- package/src/components/resources/resource-utils-argo.ts +2 -0
- package/src/components/resources/resource-utils-certmanager.ts +2 -0
- package/src/components/resources/resource-utils-cnpg.ts +2 -0
- package/src/components/resources/resource-utils-eso.ts +2 -0
- package/src/components/resources/resource-utils-flux.ts +2 -0
- package/src/components/resources/resource-utils-istio.ts +2 -0
- package/src/components/resources/resource-utils-karpenter.ts +2 -0
- package/src/components/resources/resource-utils-keda.ts +2 -0
- package/src/components/resources/resource-utils-knative.ts +2 -0
- package/src/components/resources/resource-utils-kyverno.ts +2 -0
- package/src/components/resources/resource-utils-prometheus.ts +2 -0
- package/src/components/resources/resource-utils-traefik.ts +1 -0
- package/src/components/resources/resource-utils-trivy.ts +2 -0
- package/src/components/resources/resource-utils-velero.ts +2 -0
- package/src/components/resources/resource-utils.ts +5 -0
- package/src/components/settings/SettingsDialog.tsx +537 -0
- package/src/components/shared/CreateResourceDialog.tsx +17 -0
- package/src/components/shared/EditableYamlView.tsx +24 -0
- package/src/components/shared/LargeClusterNamespacePicker.tsx +70 -0
- package/src/components/shared/ResourceRendererDispatch.tsx +31 -0
- package/src/components/timeline/DiffViewer.tsx +1 -0
- package/src/components/timeline/TimelineList.tsx +69 -0
- package/src/components/timeline/TimelineSwimlanes.tsx +1308 -0
- package/src/components/timeline/TimelineView.tsx +157 -0
- package/src/components/timeline/shared.tsx +1 -0
- package/src/components/traffic/TrafficFilterSidebar.tsx +571 -0
- package/src/components/traffic/TrafficFlowList.tsx +415 -0
- package/src/components/traffic/TrafficFlowListContext.tsx +68 -0
- package/src/components/traffic/TrafficGraph.tsx +1546 -0
- package/src/components/traffic/TrafficView.tsx +1213 -0
- package/src/components/traffic/TrafficWizard.tsx +386 -0
- package/src/components/traffic/index.ts +3 -0
- package/src/components/ui/CodeViewer.tsx +8 -0
- package/src/components/ui/CommandPalette.tsx +460 -0
- package/src/components/ui/ConfirmDialog.tsx +1 -0
- package/src/components/ui/DiagnosticsOverlay.tsx +619 -0
- package/src/components/ui/ErrorBoundary.tsx +46 -0
- package/src/components/ui/ForceDeleteConfirmDialog.tsx +1 -0
- package/src/components/ui/Markdown.tsx +108 -0
- package/src/components/ui/MetricsChart.tsx +1 -0
- package/src/components/ui/NamespaceSelector.tsx +436 -0
- package/src/components/ui/ResourceBar.tsx +1 -0
- package/src/components/ui/ShortcutHelpOverlay.tsx +301 -0
- package/src/components/ui/Toast.tsx +1 -0
- package/src/components/ui/Tooltip.tsx +1 -0
- package/src/components/ui/UpdateNotification.tsx +299 -0
- package/src/components/ui/YamlEditor.tsx +1 -0
- package/src/components/workload/WorkloadView.tsx +532 -0
- package/src/context/ConnectionContext.tsx +173 -0
- package/src/context/ContextSwitchContext.tsx +56 -0
- package/src/context/NavCustomization.tsx +62 -0
- package/src/context/ThemeContext.tsx +97 -0
- package/src/contexts/CapabilitiesContext.tsx +130 -0
- package/src/hooks/useAnimatedUnmount.ts +1 -0
- package/src/hooks/useDesktopDownload.ts +41 -0
- package/src/hooks/useEventSource.ts +262 -0
- package/src/hooks/useFavorites.ts +69 -0
- package/src/hooks/useKeyboardShortcuts.tsx +7 -0
- package/src/hooks/useRefreshAnimation.ts +1 -0
- package/src/index.css +243 -0
- package/src/index.ts +17 -0
- package/src/main.tsx +158 -0
- package/src/types/gitops.ts +2 -0
- package/src/types.ts +3 -0
- package/src/utils/animation.ts +2 -0
- package/src/utils/badge-colors.ts +2 -0
- package/src/utils/context-name.ts +2 -0
- package/src/utils/desktop-download.ts +66 -0
- package/src/utils/desktop-open-folder.ts +21 -0
- package/src/utils/format.ts +2 -0
- package/src/utils/log-format.ts +12 -0
- package/src/utils/navigation.ts +23 -0
- package/src/utils/resource-hierarchy.ts +2 -0
- package/src/utils/resource-icons.ts +2 -0
- package/src/utils/skeleton-yaml.ts +2 -0
- package/src/utils/traffic-colors.ts +54 -0
- 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'
|