-
-
Kubernetes Resources
-
View and monitor your Kubernetes resources
-
-
-
-
- Connected to Kubernetes
-
+
+ {pageHeader}
-
+
Pods ({pods.length})
Deployments ({deployments.length})
StatefulSets ({statefulSets.length})
@@ -232,302 +186,75 @@ export default function K8sResourcesPage() {
-
-
- Pods
- Running pods in the minikura namespace
-
-
- {pods.length === 0 ? (
- No pods found
- ) : (
-
-
-
-
- Name
- Status
- Ready
- Restarts
- Node
- Age
-
-
-
- {pods.map((pod) => (
-
- {pod.name}
- {getStatusBadge(pod.status)}
- {pod.ready}
- {pod.restarts}
-
- {pod.nodeName || "-"}
-
- {pod.age}
-
- ))}
-
-
-
- )}
-
-
+
-
-
- Deployments
- Deployments in the minikura namespace
-
-
- {deployments.length === 0 ? (
- No deployments found
- ) : (
-
-
-
-
- Name
- Ready
- Up-to-date
- Available
- Age
-
-
-
- {deployments.map((deployment) => (
-
- {deployment.name}
- {deployment.ready}
- {deployment.upToDate ?? deployment.updated}
- {deployment.available ?? 0}
-
- {deployment.age}
-
-
- ))}
-
-
-
- )}
-
-
+
-
-
- StatefulSets
- StatefulSets in the minikura namespace
-
-
- {statefulSets.length === 0 ? (
- No statefulsets found
- ) : (
-
-
-
-
- Name
- Ready
- Desired
- Current
- Age
-
-
-
- {statefulSets.map((statefulSet) => (
-
- {statefulSet.name}
- {statefulSet.ready}
- {statefulSet.desired}
- {statefulSet.current}
-
- {statefulSet.age}
-
-
- ))}
-
-
-
- )}
-
-
+
-
-
- Services
- Services in the minikura namespace
-
-
- {services.length === 0 ? (
- No services found
- ) : (
-
-
-
-
- Name
- Type
- Cluster IP
- External IP
- Ports
- Age
-
-
-
- {services.map((service) => (
-
- {service.name}
-
- {service.type}
-
-
- {service.clusterIP}
-
-
- {service.externalIP}
-
-
- {service.ports}
-
-
- {service.age}
-
-
- ))}
-
-
-
- )}
-
-
+
-
-
- ConfigMaps
- ConfigMaps in the minikura namespace
-
-
- {configMaps.length === 0 ? (
- No configmaps found
- ) : (
-
-
-
-
- Name
- Data Keys
- Age
-
-
-
- {configMaps.map((cm) => (
-
- {cm.name}
- {cm.data}
- {cm.age}
-
- ))}
-
-
-
- )}
-
-
+
-
-
- Minecraft Servers
- Custom Minecraft server resources
-
-
- {minecraftServers.length === 0 ? (
- No Minecraft servers found
- ) : (
-
-
-
-
- Name
- Status
- Age
-
-
-
- {minecraftServers.map((server) => (
-
- {server.name}
-
- {server.status?.phase ? (
- getStatusBadge(server.status.phase)
- ) : (
- Unknown
- )}
-
-
- {server.age}
-
-
- ))}
-
-
-
- )}
-
-
+
-
-
- Reverse Proxy Servers
- Custom reverse proxy server resources
-
-
- {reverseProxyServers.length === 0 ? (
- No reverse proxy servers found
- ) : (
-
-
-
-
- Name
- Status
- Age
-
-
-
- {reverseProxyServers.map((server) => (
-
- {server.name}
-
- {server.status?.phase ? (
- getStatusBadge(server.status.phase)
- ) : (
- Unknown
- )}
-
-
- {server.age}
-
-
- ))}
-
-
-
- )}
-
-
+
-
+
);
}
diff --git a/apps/web/components/k8s/k8s-phase-badge.tsx b/apps/web/components/k8s/k8s-phase-badge.tsx
new file mode 100644
index 0000000..b263559
--- /dev/null
+++ b/apps/web/components/k8s/k8s-phase-badge.tsx
@@ -0,0 +1,17 @@
+import { StatusBadge, type StatusTone } from "@/components/status-badge";
+
+const phaseTones: Record