import { useState } from 'react'; import { useParams } from 'react-router-dom'; import { Card, CardHeader, CardTitle, CardDescription, CardContent } from '../../components/ui/card'; import { Button } from '../../components/ui/button'; import { Skeleton } from '../../components/ui/skeleton'; import { DownloadButton } from '../../components/DownloadButton'; import { CopyButton } from '../../components/CopyButton'; import { ConfigViewer } from '../../components/ConfigViewer'; import { FileText, AlertTriangle, RefreshCw } from 'lucide-react'; import { useKubeconfig, useTalosconfig, useRegenerateKubeconfig } from '../../hooks/useClusterAccess'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '../../components/ui/dialog'; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../components/ui/collapsible'; export function ClusterAccessPage() { const { instanceId } = useParams<{ instanceId: string }>(); const [showKubeconfigPreview, setShowKubeconfigPreview] = useState(false); const [showTalosconfigPreview, setShowTalosconfigPreview] = useState(false); const [showRegenerateDialog, setShowRegenerateDialog] = useState(false); const { data: kubeconfig, isLoading: kubeconfigLoading, refetch: refetchKubeconfig } = useKubeconfig(instanceId); const { data: talosconfig, isLoading: talosconfigLoading } = useTalosconfig(instanceId); const regenerateMutation = useRegenerateKubeconfig(instanceId); const handleRegenerate = async () => { await regenerateMutation.mutateAsync(); await refetchKubeconfig(); setShowRegenerateDialog(false); }; if (!instanceId) { return (
No instance selected
Download kubeconfig and talosconfig files
Usage:
kubectl --kubeconfig={instanceId}-kubeconfig.yaml get nodes
Or set as default:
export KUBECONFIG=~/.kube/{instanceId}-kubeconfig.yaml
Kubeconfig not available
Generate cluster configuration first
Usage:
talosctl --talosconfig={instanceId}-talosconfig.yaml get members
Or set as default:
export TALOSCONFIG=~/.talos/{instanceId}-talosconfig.yaml
Talosconfig not available
Generate cluster configuration first