diff --git a/src/pages/Kubernetes/KubernetesPage.tsx b/src/pages/Kubernetes/KubernetesPage.tsx index 7cfcac60..e910eca2 100644 --- a/src/pages/Kubernetes/KubernetesPage.tsx +++ b/src/pages/Kubernetes/KubernetesPage.tsx @@ -1,25 +1,24 @@ import React, { useState, useEffect } from "react"; import { useKubernetesStore } from "@/stores/kubernetesStore"; -import { ClusterList } from "@/components/Kubernetes/ClusterList"; + import { PortForwardList } from "@/components/Kubernetes/PortForwardList"; -import { AddClusterModal } from "@/components/Kubernetes/AddClusterModal"; import { PortForwardForm } from "@/components/Kubernetes/PortForwardForm"; import { ResourceBrowser } from "@/components/Kubernetes/ResourceBrowser"; -import type { ClusterInfo, PortForwardResponse } from "@/lib/tauriCommands"; +import type { PortForwardResponse, KubeconfigInfo, PortForwardRequest } from "@/lib/tauriCommands"; import { - listClustersCmd, - removeClusterCmd, listPortForwardsCmd, stopPortForwardCmd, deletePortForwardCmd, + listKubeconfigsCmd, + activateKubeconfigCmd, + startPortForwardCmd, } from "@/lib/tauriCommands"; export function KubernetesPage() { - const { clusters, addCluster, removeCluster, selectedClusterId } = useKubernetesStore(); + const { selectedClusterId } = useKubernetesStore(); + const [kubeconfigs, setKubeconfigs] = useState([]); const [portForwards, setPortForwards] = useState([]); const [isLoading, setIsLoading] = useState(true); - const [isAddClusterOpen, setIsAddClusterOpen] = useState(false); - const [isStartPortForwardOpen, setIsStartPortForwardOpen] = useState(false); useEffect(() => { loadData(); @@ -28,12 +27,12 @@ export function KubernetesPage() { const loadData = async () => { setIsLoading(true); try { - const [clustersData, portForwardsData] = await Promise.all([ - listClustersCmd(), + const [kubeconfigsData, portForwardsData] = await Promise.all([ + listKubeconfigsCmd(), listPortForwardsCmd(), ]); - clustersData.forEach(addCluster); + setKubeconfigs(kubeconfigsData); setPortForwards(portForwardsData); } catch (err) { console.error("Failed to load data:", err); @@ -42,13 +41,13 @@ export function KubernetesPage() { } }; - const handleRemoveCluster = async (clusterId: string) => { + const handleActivateKubeconfig = async (id: string) => { try { - await removeClusterCmd(clusterId); - removeCluster(clusterId); + await activateKubeconfigCmd(id); + await loadData(); } catch (err) { - console.error("Failed to remove cluster:", err); - alert("Failed to remove cluster"); + console.error("Failed to activate kubeconfig:", err); + alert("Failed to activate kubeconfig"); } }; @@ -72,12 +71,14 @@ export function KubernetesPage() { } }; - const handleAddCluster = (cluster: ClusterInfo) => { - addCluster(cluster); - }; - - const handleStartPortForward = (portForward: PortForwardResponse) => { - setPortForwards((prev) => [...prev, portForward]); + const handleStartPortForward = async (portForward: PortForwardRequest) => { + try { + const result = await startPortForwardCmd(portForward); + setPortForwards((prev) => [...prev, result]); + } catch (err) { + console.error("Failed to start port forward:", err); + alert("Failed to start port forward"); + } }; if (isLoading) { @@ -100,40 +101,94 @@ export function KubernetesPage() {

- {/* Cluster Management Section */} + {/* Cluster Management Section - Uses kubeconfig files from Settings */}
-

Clusters

- +

Clusters (from kubeconfig files)

+
+ +
- setIsAddClusterOpen(true)} - onRemove={handleRemoveCluster} - /> + {kubeconfigs.length === 0 ? ( +
+
+ + + +
+

No kubeconfig files uploaded

+

+ Upload kubeconfig files in Settings → Kubeconfig to manage Kubernetes clusters +

+ +
+ ) : ( +
+ {kubeconfigs.map((config) => ( +
+
+
+
+

{config.name}

+ {config.is_active && ( + + Active + + )} +
+
+
+ Context: {config.context} +
+ {config.cluster_url && ( +
+ Cluster: {config.cluster_url} +
+ )} +
+
+
+ {!config.is_active && ( + + )} +
+
+
+ ))} +
+ )}
{/* Port Forwarding Section */}

Port Forwarding

-
setIsStartPortForwardOpen(true)} + onStart={() => {}} onStop={handleStopPortForward} onDelete={handleDeletePortForward} /> @@ -146,20 +201,8 @@ export function KubernetesPage() {
)} - - {/* Add Cluster Modal */} - setIsAddClusterOpen(false)} - onAdd={handleAddCluster} - /> - - {/* Port Forward Form */} - setIsStartPortForwardOpen(false)} - onStart={handleStartPortForward} - /> ); } + +